Ask HN: Should I learn only one language until I know it all?
So I pretty much want to learn a lot of things. I want to learn Ruby, Go, Swift, Elixir, (few more things)
I haven't really mastered one language, and I want to be able to do that. I've got some advice saying that it takes time and to keep learning.
Should I put my focus into mastering one language or have fun with the languages I want to learn and find which one I want to master?
8 comments
[ 4.1 ms ] story [ 24.8 ms ] thread"Mastery", "until I know it all", "find which ones I [like]" all kinda fit into this process, so you end up doing them all at once.
You can probably survive with Java or C# in corporate world for the rest of your career. In webdev you can probably stick to one language, but will have jump between frameworks as new ones become more popular and there's no work in old services anymore. Although that's still likely more than one language (php, js, sql for example)
If you're anywhere near systems administration, you'll have to deal with anything that comes by anyway, so shell, perl, python, ruby are going to be your friends.
If you just enjoy the programming and you want to learn more languages, then of course it's a good idea. Each new language will allow you to understand the other ones better and stop you from doing things only one way because you only know one way.
So the answer is as usual - it depends.
On the other hand, since it takes ten years to become expert, you may not want to wait before starting to learn alternatives. But as a newbie, you don't want to switch to other things too early either. You should have written a couple of non trivial programs (eg. a real application) with a language before you switch to another.
That usually means that you should be focusing on one or two languages, building enough to have "used them in anger", and then figuring out what to do.
If your java or php or sql or haskell or python suck, the reason your users can tell that they suck, is because your machine code sucks.
The simple awareness of what goes on under the hood will make you better at any language.
Aside from that its helpful to learn several distinctly different paradigms, like python, lisp, c++ and smalltalk.