3 ms·
With all due respect, you are not going to get a valid answer here in HN. What you will get is a lot of answers trying to help but resulting in a lot of noise.
by angelgcuartero 12y ago
With all due respect, you are not going to get a valid answer here in HN. What you will get is a lot of answers trying to help but resulting in a lot of noise.
Programming is a very wide field. You can choose a lot of different things to learn and specialize. You don't need to learn everything now. You have all your life.
Now my quota of noise :D
Focus on getting a solid background, forget about the languages. Languages come and go. Operating systems too. With a good background you can learn any programming language in "almost" no time. From higher to lower level I would learn:
- Algebra (vectors, boolean, sets, etc.).
- Algorithms (recursion, tree/graph handling, etc.)
- Operating systems theory (resources, I/O, memory and process management).
OK, too generic. So, you will need to learn some language to practice your theoretical knowledge. This is what I'd like to suggest:
- At least one systems language (C, etc.) even if you never have to use it.
- At least one OO language (C++, Java, Ruby, ...).
- An interpreted scripting language is always good to know (Perl, Python, shell, ...).
- Bonus: A functional language (Lisp, Haskell, ...). It will make you a better programmer but it will alienate you to the point of seeing other non-functional programmers as low skilled blue-collar workers :P
There ain't no such things as a "best language". A programming language suits well to some tasks and not so well to others. Don't be a language racist.
I will add some non-technical subject to the pack:
- Learn how to deal with people. Not everybody is skilled in this field and it is always useful. People is very different and you will have coworkers. Try to create a smooth relationship with them. It will make your life and your coworkers' life better. A lot of techie guys underestimate this.