DEV Community

Adarsh Raj
Adarsh Raj

Posted on

How many programming languages should one learn?

You should learn all of them.

One time I seen a job post that required a person to know php, python, java, ruby, C++, JavaScript, Objective-C, .Net, and COBOL.

To your point, I am highly doubtful that any one job would require you to simultaneously use so many languages. It was probably a lazy copy/paste or very poorly written job posting.

Over the years, I have learned and worked with all of those languages and am quite proficient in many, except COBOL--which I have never even encountered because it was before my time.

When I studied Computer Science at UC Berkeley, I remembered the professor for the Intro to Programming class telling a lecture hall with 300+ students that they don't teach programming languages at UC Berkeley because they expect anyone who understands the fundamentals to be able to pick up any programming language over a weekend and start running with it.

Learn all of the ones that are immediately useful to you to the point that you can become "conversationally fluent" in them.

In the OP's question details, a choice seems to be between mobile vs web, when in reality, the world of software engineering is much broader than that, i.e. the choice isn't between A or B, but A ... Z of possibilities. I had someone recently ask me how to decide between machine learning and computer security.

Here is a (non-exhaustive) list of sub-disciplines within computer science that I can think of, and some of their related programming languages:

Embedded devices - C
Mobile - iOS (Mac OS X, iPhone, iPad, Apple Watch) - Objective C, Swift
Mobile - Android - Java
Financial systems engineering - Java and C++
Ecommerce - Java
Computer Graphics (Rendering) / Gaming - C++, Unity
Computer Graphics (Vision) - ?
Data Science / Machine Learning - Python, R
Web (Backend) - too many to choose from; really depends on the shop you're working at and the stack they're already using.
Python + Django | Pylons | Flask
Ruby + Rails
JavaScript + NodeJS
C# + .Net
PHP + Laravel | CakePHP | Symphony
Databases - SQL (know ANSI SQL, and some of the tradeoffs between MySQL and PostgreSQL)
Web (Frontend) - HTML(5), CSS(3), JavaScript + a ton of JS libs
General - Unix Shell Scripting, Bash
Computer Music - ChucK
The above list is just barely scratching the surface, but hopefully is beneficial enough to the point that the reader can get started.

Top comments (1)

Collapse
 
leonardpuettmann profile image
Leonard Püttmann

In the end, a programming language is just a tool, and every tool has up and downsides as well as different use cases. Cool list, thanks for sharing