BigTobster
February 20th, 2014, 05:55 PM
Question is open to everyone - regardless of where you are on the noob/veteran scale :)
I am an undergraduate and spend most of my time learning loads of stuff. I've been doing software-y stuff for a couple of years so still pretty noob-ish to some stuff but I have learned what the keyboard is, not to set fire to my laptop, etc :)Frequently, I am introduced to new languages or frameworks on my degree but generally the emphasis is on learning a new CONCEPT on that language - rather than learning a new language for the sake of it.
Examples include:
Java for OO
PHP for Server Side Management
Erlang for Concurrency/Functional languages
CSS to make shizzle pretty
etc
Personally, I have the view that this is the right way to go. Learn a single language in a particular domain as well as you can and then use that when possible. Modern translators/interpreters/witchcraft allows us to use a language which has historically been the realm of another. Using Python as a client side web language instead of HTML/Javascript is a good example here.
This gives rise to the idea of that, 95% of the time, it doesn't really matter WHICH language you choose as long as you are using a language relevant for that domain. Ruby, Python and Perl are all pretty darn similar - especially if you just want a simple general purpose language to do a bit of logic/maths/processing in. I'm not suggesting that they don't have their own pros and cons but as a rule, they all kinda balance. C and Erlang are NOT similar so one should know them both (or languages that do the same stuff they do well) to be able to don many hats.
My friend has the contrasting view that one should learn as wide a range of stuff as possible. Use every possible framework in every possible domain using every possible language. The advantage here is that you will always be prepared for any task. You will know what frameworks are suitable all of the time rather than being a bit ignorant and try to implement device drivers in Prolog or Haskell. A good software-y person should be able to don any hat at the drop of a... hat! You will always choose the right tool and you can catch up on the learning bit as you go along.
I will finally add that if you want to be/are a specialist in a certain domain, you should probably learn more than a single language for that domain. One would expect a good Database Admin to know the difference between SQLite and Oracle, for instance.
Any thoughts? Do you prefer one philosophy over the other?
I am an undergraduate and spend most of my time learning loads of stuff. I've been doing software-y stuff for a couple of years so still pretty noob-ish to some stuff but I have learned what the keyboard is, not to set fire to my laptop, etc :)Frequently, I am introduced to new languages or frameworks on my degree but generally the emphasis is on learning a new CONCEPT on that language - rather than learning a new language for the sake of it.
Examples include:
Java for OO
PHP for Server Side Management
Erlang for Concurrency/Functional languages
CSS to make shizzle pretty
etc
Personally, I have the view that this is the right way to go. Learn a single language in a particular domain as well as you can and then use that when possible. Modern translators/interpreters/witchcraft allows us to use a language which has historically been the realm of another. Using Python as a client side web language instead of HTML/Javascript is a good example here.
This gives rise to the idea of that, 95% of the time, it doesn't really matter WHICH language you choose as long as you are using a language relevant for that domain. Ruby, Python and Perl are all pretty darn similar - especially if you just want a simple general purpose language to do a bit of logic/maths/processing in. I'm not suggesting that they don't have their own pros and cons but as a rule, they all kinda balance. C and Erlang are NOT similar so one should know them both (or languages that do the same stuff they do well) to be able to don many hats.
My friend has the contrasting view that one should learn as wide a range of stuff as possible. Use every possible framework in every possible domain using every possible language. The advantage here is that you will always be prepared for any task. You will know what frameworks are suitable all of the time rather than being a bit ignorant and try to implement device drivers in Prolog or Haskell. A good software-y person should be able to don any hat at the drop of a... hat! You will always choose the right tool and you can catch up on the learning bit as you go along.
I will finally add that if you want to be/are a specialist in a certain domain, you should probably learn more than a single language for that domain. One would expect a good Database Admin to know the difference between SQLite and Oracle, for instance.
Any thoughts? Do you prefer one philosophy over the other?