Should I learn another programming language?
Personally, I am more into management than programming but I am still developing and spend a lot of time in C# as well as a not-too-small amount of time in PHP and only the basics of Javascript.
I have then seen lots of quora type sites as well as Stack Overflow, where somebody asks the question, "should I learn Java or C#?" "Is Python better than Ruby?" and "Is Rails still relevant?". Angular, Vue, SPAs generally, static sites, AMP, CMSs etc....
I realised this is a hard question to answer. I have opinions on some parts of the answer:
1) If you are starting a new project and you are an expert in a language, stick with it - you are likely to add more value as an expert in something than having something in a "better" framework but written as a newb.
2) If you are fresh from college, have a look at the highest level of job listings and go for that - if Python is the latest and greatest and everyone's hiring for it, learn it - it gives you an edge when you have little experience to rely on.
But I realised the question is more complex than that. For example, I often hear the justification of learning Python that, "you can do everything with it" when really that is much more about the rich set of available libraries than about the language per-se. I would expect that I could do most of what Python does in .Net either with the built-in libraries or with an open source one so I'm not sure that is a genuine reason.
Performance concerns for most people are probably non-existent. I would wager that you could write a successful web application in .Net, Java, PHP, Ruby or Python and they would be within 20% of each other in terms of performance - also the cost of scaling is relatively low compared to wages so not an issue.
Tooling is a bigger issue than some people make out, depending on your platform. Objective-C and Swift might be good but XCode is awful. Eclipse is OK but a little flaky, Jetbrains make nice tooling as do Microsoft. Using a basic text editor, to me, is not OK in the modern world - let an IDE make things easier for you than you having to correctly swap between terminals and typing stuff in all the time!
Another complexity is not about whether a newb should learn language X but what about those of us who work almost exclusively in a single language that works - like C# and have done for many years? I started in PHP at a time when Python was not really a thing and Ruby was considered niche so I'm not sure I would choose PHP now, except that I know how to use it (and Yii2 is a great framework imho). There is always a danger that our skills will become antiquated although I can't imagine C#, Java or PHP going away any time in the next 20 years (when I should be retired!).
One recommendation is to do some bootcamp coding in Python, Ruby, Node etc. and see whether you like it or not. You will probably get a quick broad overview of what makes a language good (or not) and also make your CV look a bit more balanced.
What do you guys think?
I have then seen lots of quora type sites as well as Stack Overflow, where somebody asks the question, "should I learn Java or C#?" "Is Python better than Ruby?" and "Is Rails still relevant?". Angular, Vue, SPAs generally, static sites, AMP, CMSs etc....
I realised this is a hard question to answer. I have opinions on some parts of the answer:
1) If you are starting a new project and you are an expert in a language, stick with it - you are likely to add more value as an expert in something than having something in a "better" framework but written as a newb.
2) If you are fresh from college, have a look at the highest level of job listings and go for that - if Python is the latest and greatest and everyone's hiring for it, learn it - it gives you an edge when you have little experience to rely on.
But I realised the question is more complex than that. For example, I often hear the justification of learning Python that, "you can do everything with it" when really that is much more about the rich set of available libraries than about the language per-se. I would expect that I could do most of what Python does in .Net either with the built-in libraries or with an open source one so I'm not sure that is a genuine reason.
Performance concerns for most people are probably non-existent. I would wager that you could write a successful web application in .Net, Java, PHP, Ruby or Python and they would be within 20% of each other in terms of performance - also the cost of scaling is relatively low compared to wages so not an issue.
Tooling is a bigger issue than some people make out, depending on your platform. Objective-C and Swift might be good but XCode is awful. Eclipse is OK but a little flaky, Jetbrains make nice tooling as do Microsoft. Using a basic text editor, to me, is not OK in the modern world - let an IDE make things easier for you than you having to correctly swap between terminals and typing stuff in all the time!
Another complexity is not about whether a newb should learn language X but what about those of us who work almost exclusively in a single language that works - like C# and have done for many years? I started in PHP at a time when Python was not really a thing and Ruby was considered niche so I'm not sure I would choose PHP now, except that I know how to use it (and Yii2 is a great framework imho). There is always a danger that our skills will become antiquated although I can't imagine C#, Java or PHP going away any time in the next 20 years (when I should be retired!).
One recommendation is to do some bootcamp coding in Python, Ruby, Node etc. and see whether you like it or not. You will probably get a quick broad overview of what makes a language good (or not) and also make your CV look a bit more balanced.
What do you guys think?