|
|
|
|
|
by nathanpc
5090 days ago
|
|
I've already been at the same place as you are at the time, "learning" as many languages as possible and having fun coding and copying code from the internet, sometime without even knowing what each line of those copied codes really did. The best advice I can give to you is: Learn one language, and get pretty good on it. You do this by learning the language by creating simple projects like RSS readers, text editors, etc. |
|
yes, learning languages is a fun pass time for me, but one thing I never do is copy and paste code from the internet without knowing what it does. If I don't understand how some code works, I don't use it.
But to address your actual advice: yes, being good at a single language/platform is important, because knowing the bare minimum of 50 tools isn't useful if you want to do something interesting. You have to have some toolset that you can turn to for big things.
But learning new languages and platforms (and I actually mean learning, as in working on at least one small project involving it) is really beneficial to your programming skills. And I don't mean learning python when you know ruby, or C# when you know java, that doesn't expand your mind at all. What I mean is learning Haskell, or Lisp, or FORTH, or an Assembly language (or C if you've been avoiding it for whatever reason) for someone that uses java mainly.
Such things will teach you new ways to approach problems no matter what environment you're in. For example, becoming comptant in Haskell or Lisp (or any primarily functional language) will teach you to separate large problems into many smaller, more approachable problems. Sure you can learn the same skill in other ways, but learning a new language is a completely viable way.
And also, nothing says that you can't have multiple platforms you're comfortable with. For example, if you enjoy web development, it's a great plus to be capable of full-stack development, knowing a reliable backend technology as well as the details of front end development is useful. I consider myself competent with the browser platform and with nodejs, and I'm working on familiarizing myself with the JVM.