It's time to ditch Medium for good! 🌈⚡️

Introducing Devblog by Hashnode. Blog on your domain for FREE. Highly customizable and optimized for developers.

Learn more

As an experienced developer, if you were to start all over again what would be the first programing language to learn?

Write your answer…

16 answers

I would start with JavaScript to start building actual things fast.

I started with C++ building console applications with no real use 😕

Show all replies

There is Qt built on C++. And it is awesome. I'd give much much more credit to C++

Reply to this…

Share your programming knowledge and learn from the best developers on Hashnode

Get started

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.

Although these days, I don't program in either of those two languages, just Javascript or Scala. But those fundamentals let me go into any language with ease.

Reply to this…

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.

I would go on with JavaScript and PHP, just as I actually did. Later on, I would go for C (instead of C++), because there was no Rust around, at the time.

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.

Reply to this…

If I was to do it all over again, I'd definitely choose Golang & Javascript as my first languages.

Why Golang?

  • 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 fmt will style the code automatically allowing the developer to focus on the problem statement and not be bogged down by trivialities
  • go lint can 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.

Why Javascript?

  • 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

Reply to this…

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!

Reply to this…

Load more responses