Well, I wouldn't change what I learned first.
In high-school I learned C:
C: which really teaches you how computer works: e.g. what happens internally when you call another function (what does it mean by 'Stack Overflow' for example), and how data is represented in memory, and of course Pointers.
In college, my first computer science class is 6.001 at MIT, which is taught in Scheme at the time.
Scheme: which really distills every core concept to utter simplicity, shows a how elements of a language is built block by block, and how different approach to computer language with pro and cons, and of course open your mind with functional programming.
If I started over and could decide now what I learned back then, it would probably be a FP language, like OCaml or Haskell, instead of Delphi.
Rust would definitely find its way into my life and replace C at some point.
Where will I go from here? I dunno. I am still not sold on anything transpiled to JS, however I am missing traits and types in JS more and more. I guess, for small projects, that stuff does not really matter, however, I would love to do big projects in Rust and only have minimal (automatic) JS bindings. Even current web-core libs still heavily rely on JS. Maybe I should take a look at Elm? Dunno. Let's see.
- It has the right balance between being a high level language that abstracts certain features away from the developer (Eg. GC, memory management) and low enough for the developer to learn important concepts (Eg. pointers).
go fmtwill style the code automatically allowing the developer to focus on the problem statement and not be bogged down by trivialities
go lintcan enforce certain best practices such as adding comments, naming variables. It's great when a tool tells you that your variable names are awkward.
- Can introduce multiple concepts around threading, event loops etc.
- REPL cycle is really fast. Doesn't hold the developer back.
- Because the web is built on it. Must learn to be remotely familiar with front-end development
- Has gotten the functional programming paradigms right.
- Great examples of how not to do things in future languages :D
Started with ActionScript and C. No regrets, I think it's still C the best language to start. Though I haven't coded in C for the last 6 years!
C gives you a better picture on how for loops works, how memory is allocated, typed variables, call by reference etc.
It's true, I've set up an Eslint rule in my projects that whenever it writes a for loop, it will show an error. But you need to know the basics!