Should I Focus On One Programming Language Or More?
I have learned the basics Java and Visual Basic in school. Should I try to master one language or add more to my repertoire? I have been contemplating learning C# and Python. #computer-software #programming
4 answers
Hung’s Answer
The more programming languages you know, the more opportunities and job options are available for you. However, you don't want to know about a lot of languages without knowing any particular one really well. In my view, the right balance is to be very good at one or two popular languages that you like, and have passing knowledge about as many languages as possible.
Jinyoung’s Answer
By all means eventually learn more languages and frameworks but get deep into one first.
I studied CS in school and have been professionally programming for decades but even now I don't consider myself proficient in a "language" until I've spent 6-12 months doing nothing but learning and working with that ecosystem.
I used quotes around language because learning a language like Java is just the beginning of being able to use it to build anything of note. You have to come to be familiar with the Java ecosystem. The frameworks available in that language, the various libraries, servers, IDE/tools, community, etc. E.g. learning Obective-C or Swift is something like 20% of being able to ship an iOS app.
I would not peruse Visual Basic.
Java if your interested, you could spend years learning about that ecosystem.
Based on what you want to do in the short term, do some research and dive deep into that world. Learning a bunch of languages is pointless.
Moe’s Answer
Hello,
Programming languages have different strengths and are suitable for different purposes.
I find Python to be effective at getting things done quickly, especially in middleware, rapid prototyping, server-side, and cross-platform code.
Javascript (ECMAscript) on the other hand and its various libraries such as jQuery enable execution of code client (browser) side.
Languages can also favor one approach over another... Python, Java, C++ tend to focus on object oriented code, and support procedural programming. Scala, scheme and others are often used in functional programming.
Usually I find that the the language I end up using is the one with the most relevant libraries for the task at hand..
Also, languages tend to go in and out of style and also evolve over time. For example, in the course of my career, I have coded and scripted in Javascript, C++, Python, Java, C#, PHP, bash, REXX, and PowerShell. I had to learn these during the course of my career; when I was in school in the 90s we learned BASIC, Pascal, C++, PowerBuilder and Java 1.1... some of these are not used much today - but the concepts learned carry forward.
In summary, I recommend building a strong foundation in algorithms, and mastering software engineering fundamentals, use whichever language(s) come easy to you during this process rather than trying to pick up lots of different languages.. later on picking up a language will become easy..
Thanks
moe k
Pradeep’s Answer
I am a programmer and co-founder of a webdevelopment agency, so I'm speaking both from a position of an employer and programmer aiming at improving his skills.
As an employer, I prefer a master of his field to a good all-rounder. The field here doesn't mean a single programming language, but rather a set of complementary technologies.
E.g. for a webdeveloper whose main language is Ruby it is very beneficial to be competent in JavaScript as well. Knowledge of at least basics of HTML and CSS is a must-have.
It's true that learning many programming languages can teach you the basics very well, because they tend to share the same fundamentals. The problem is you don't achieve much with just the basics. And you'll be paid according to what you actually can achieve.
As a programmer, I definitely see the benefits of learning new programming languages albeit for other reasons than the ones you mentioned.
As I already said, you become better in your field by learning complementary technologies. However it doesn't mean that you shouldn't pick a language from outside of your field and learn it.
But instead of picking a language that is fundamentally similar to ones you already know, pick something fundamentally different once in a while. For example learn a functional language.
It will expose you to totally new concepts and will help you look at problems from different angles. This certainly will make you a better programmer.
Programming is not about knowing languages, but making use of them.