should a student be diversifying or mastering programming languages? [closed]
As the question states, is it better if a student diversifies or explores when learning programming languages or should they focus only on 2-3 languages and really get to know them well?
Example of what I mean by diversifying:
Functional -> Scheme
Procedural -> C
Object Oriented -> Java
Dynamic or scripting -> Python
Other -> C++
I have a few breaks in between semesters sometimes (up to 3 months) and I'm thinking of either learning a new language or "master" those that I know right now. Which would benefit me in the future? I know some(about 3 months of self studying each) Java, C, and C++ already . If I'm not mistaken, where I live, the industry is heavy on Java, C++, and C#.
Mastery takes ten years. But if you were my student, I would advise you to develop a good working knowledge of four kinds of languages:
- Functional
- Object-oriented
- Machine-level
- Scripting
These categories are pretty loose, but if you have a good working knowledge of all four, you score well on diversity.
If you want to aim for mastery, study C as your machine-level language and Lua as your scripting language. Lua is definitely small enough to be mastered, and C is not too bad if you avoid odd corners like the true meanings of const
and volatile
. I don't know if a functional or object-oriented language that I would say is susceptible of mastery.
Summary: build carefully targeted diversity and allow mastery to come with time.
Do both. Master at least one language (probably Java or C# since those are most common in industry) and learn others languages for what they can teach you so that you can bring back to those you are forced to work with.
You can't master a language per se, you can master programming. In the end, it will rarely matter if you have to learn a new language, as you have all the basic knowledge from other projects, you just have to get used to the specific stuff of the new language.
I believe that a good programmer doesn't know every thing but he can learn every thing.
when you master a language and master "the programming" it won't take more than a week to learn another language.
but it is a good idea to take a look to new languages and be able to read and anderstand codes in many languages.
It is hard to master a language unless you are actually using it for real, this means that during your holidays you would have to write real projects - not many people can achieve that (finishing a real project in a short amount of time, while on a break from learning).
I would advise to diversify first. You will find that once you know a few different languages then any new lenguage becomes a lot easier to learn. Different types of languages also introduce you to new concepts, and may well help you decide what type of programming you really want to do. Once you have decided what you like, then work on mastering it.
It depends on where and what your intentions are (for me at least).
A student in varsity is somewhat bound to the curriculum and the course will surely lead them and bind them to the predefined learning path.
For someone in my situation (Self taught and takes Vendor certifications), the goal is employment and income and thus learning a language with the goal of finding employment is (or was) my highest priority.
It is not common to work as as a developer on a full 3 tier systems as roles are usually fragmented into at least 2 ends (front and back) so I would focus on on what you're good at out of these. (If you're an artist and graphical guy/gal focus on front end and if you're mathematical and a problem solver, focus on back end and possibly scripting).
I have thoroughly enjoyed learning Java (even with an orange sized brain tumor lurking in my brain) and found it a good enough language to take you to other languages as it has some commonalities to general programming like: functions (methods), can be written procedural (like hello world app), has standard variable declarations, has logical operators and conditional operators found in many other languages.
精彩评论