Which way is more beneficial and productive?
|
closed as not constructive by David Thornley, Walter, Mark Trapp Jun 27 '11 at 2:29
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
|
I think you need both. You have to focus on your core competencies and improve your understanding of them, but at the same time it's beneficial to look outside and see what else is out there. Exposure to other approaches and other languages is very important to make one a better developer overall. There are many ways to skin a cat, as it were, and knowing as many of them as possible will make you So, spend most of your time getting better at your chosen proficiency and spend some of your time on learning something new. |
|||||||||
|
|
There are a lot of really good arguements on both sides. Many years ago I was presented with that exact question... concentrate on my primary language and be attempt to become an "expert" OR pick up a new language and broaden my marketability. I chose to concentrate on one language. There's really not going to be a wrong answer. Both have merits, it's really going to boil down to which one fits better for you and where you want your career to go. |
|||
|
|
|
Learning new languages is mostly a means to get new concepts and increasing your efficiency with programming. Learning programming in itself is very different from learning a new language to program in. You should concentrate on making your programs better (and there are a lot of metrics for measuring that, many subjective; does not matter, take your pick on the metrics and refine them over time, use them for your education). Having said this, learning 'newer' languages (say, Which brings us to summarize on the primary question: |
|||
|
|
|
If you are already good enough with the language you are familiar, there's no good to learn very detailed, specific tricks for a little cool... it'll be totally a waste of time. However when you're quite uncomfortable with a language the suggestion is to master that language first. Besides languages there's frameworks, patterns... to learn a framework you must know a language, so for very similar languages learning them helps nothing than bring some not so funny fun. My personal opinion is you should always develop your capabilities to make faster, securer, more robust software, for more platforms, and make the time taken shorter, for that aim you may need to learn a new language, a new framework, a new IDE (that's just as important as a language), and only when you are for that purpose your investment is worthwhile. At least don't learn a new language to increase the number of languages you know. |
|||
|
|
|
Someone said "A language that does not change the way you think about programming is not worth learning". So, if you know Java, there's little gain in learning C# (or vice versa). If not for pragmatic reasons (i.e, you need it to solve a problem), i would suggest stick to one Language per Paradigma, and your schedule is still full enough ;). Specializing, on the other hand, is in my experience mostly achieved 'in the field', i.e, when working on a project, so it comes naturally. |
|||||||||||||
|
|
Dominate a programming framework (and related language), and leave some spare time for another, preferably different "domain". Example: C++ client-server, Ruby on Web |
|||
|
|
Learning a New LanguageIt depends on the purpose for which you are learning the language. If you are learning the language because it uses a different paradigm or is suited for a particular problem domain. However, if it is a language very similar to the one you already know and all you plan to do is rewrite all of your existing code in that new language, there probably isn't that much value (for instance, rewriting a python webapp in ruby) in it. Deeper Knowledge in Current LanguageIf you already feel very comfortable programming in a language, are familiar with all its idioms, and can write programs in it without having to look in the documentation for every single library call, there probably isn't much more to learn about it. If, on the other hand, your knowledge of the language is not that deep, there may be some value in learning more. Some good ways of gauging whether you are in the former or latter camp for language X are
If your answers to these questions are somewhere along the lines of "a lot", "most of them", and "yes, and it's getting annoying", it's a good indication that you've mastered the language and should move on to something new. |
|||
|
|
