In this article I’ll explain the differences between the modern coding languages and the types of enterprise applications these coding languages are most often used for. With this information you can determine which language you want to specialize in but to spoil the rest of the article just get really good at the main coding fundamentals and you can shift between languages with ease based on your applications engineering requirements.
If you would like to join our new community of like minded python developers join our facebook group.
So which programming language should I specialize in?
This was a question I ran across on /r/learnprogramming where the original poster was concerned that during his university classes they did a little bit of each of the languages but the classes didn’t go deep enough that he felt he could say he was well skilled in a specific one of them. I’ve seen this question in many other forms on Quora as well so I wanted to give my perspective based on working in the financial industry and for working for big internet.
Selecting a coding language is similar to selecting a specific tool to finish a project. For some things you might use hammers and nails, others might be screws and a screw driver, and some projects might just require a shovel and some concrete. The language you specialize in should be determined by what kind of problems do you like to solve and what kind of applications are most interesting to you.
Apple AirPods with Charging Case (Latest Model)
Please help support this site by purchasing items after clicking through our Amazon links
If you read some survey that says the average python developer makes more then the average java developer that shouldn’t be your motivation to learn python if you don’t like the kind of work that python is generally used for.
Problem solving ability trumps choice of language
I have worked on teams where the majority of the software was written in one language and the majority of the engineers they hired had experience exclusively in other languages. Why would a large team hire such people, because the people showed strong leadership skills such as communication ability, customer obsession, productivity management, conflict resolution, and of course problem solving ability.
Good problem solving ability for developers does not only include being able to create algorithms to solve coding challenges that you would find on hackerrank or leetcode (leetcode walkthroughs). It also includes being able to recognize business and consumer problems and being able to envision a piece of software that can solve this as well as driving the proposal process and design of the components of the system that will solve that problem.
What programming language solves what kind of problems
Now that we see a single organization might have pieces of their applications in all of the languages lets dive a little deeper into the specific languages and their strengths and weaknesses.
Created in: 1979 by Bjarne Stroustrup from Bell Labs
Average US Salary: $117,000
Strengths: Low latency, custom memory management
Cons: Complex Syntax that is difficult to learn, Building and linking can get tricky
Popular Uses: Optimized business logic libraries, embedded systems, gaming physics and 3d engines, operating systems
Created in: 1995 by James Gosling from Oracle
Average US Salary: $102,000
Strengths: Platform cross compatibility, general use syntax,
Cons: Garbage collection can generate memory leaks, Java Virtual Machine requires more memory then C++ applications
Popular uses: Web applications with spring, android native applications, Nasa World wind desktop application, games such as minecraft
Created in: 1995 by netscape
adopted by Microsoft internet explorer in 1996
Average US Salary: $111,000
Pros: Enables you to code client side web site logic, NodeJS gives you the ability to use the same language for front end, back end, and desktop software, community support is huge
Cons: Requires extra vigilance in ensuring client-side security, Different browsers support different features, many different frameworks to pick and choose from (Angular, React, JQuery, Backbone, Ionic)
Popular uses: Internet web sites, cross platform phone applications using cordova, Web servers such as Paypal and Netflix
Created in: 1991 by Guido van Rossum
2000 release of 2.0 (list comprehension and garbage collection)
2008 release of 3.0
Average US Salary: $123,000
Pros: Very simple human like syntax that requires less code to do similar tasks such as input/output and file management, simple to use library management system with lots of available libraries for common tasks. Cross platform support. Enables people of all skills to automate common tasks at their jobs.
Cons: Slower runtimes then the other languages, Python Global Interpretter lock causes problems making multi-threaded applications that require shared memory. Duck typing can lead to difficult to manage code as applications get large. Not used in mobile programming
Popular uses: Corporate automation, Web servers and backends with flask or django, Artificial Intelligence and Machine learning general applications, data science with pandas and scypi, command line interfaces
Now that you have the breakdown on the most popular coding languages of 2019 this should help you make a better choice of what languages you want to focus on. Here at BeAPython.dev, I personally am working on learning more about Artificial Intelligence, Machine Learning, and general purpose Web Applications. Because of that I choose to focus on Python since I love the simplicity of the language that could enable anyone to learn it in a way to focus on core concepts of coding and less on figuring out the syntax to get things to work.
However, if more general purpose isn’t your thing and you want to create highly tuned and efficient algorithms that will run on resource light embedded boards then you should lean towards C++.
Ultimately, my recommendation is to do a few projects in all of the languages as well as working on being a better problem solver and application designer.
Anything I missed? Comment below and hope to see you come back for my other Python and Software development articles!