What programming languages should I know to impress potential employers?
My goal is to make a very comfortable life for myself but I need to get hired for that to happen. So what should I learn? Should I just try to learn every language I can or will that be a useless effort? #computer #computer-software #computer-science #information-technology
11 answers
Dhairya’s Answer
Awesome to see you're interested in programming and computer science!
Don't listen to the advice above, with all due respect to Kelly. If she's talking about MS-DOS, which was the operating system for old microsoft computers, then it's irrelevant and outdated. If it's some proprietary assembly language, eh not worth your time.
For starters, it's almost impossible to learn all of the programming languages in the world. Honestly, what employers hiring software engineers are more interested in your ability to solve computational problems. They expect that you'll learn their chosen language and tech stack as part of the on-boarding process. So what care more about is your computer science fundamentals.
Are you familiar with foundational data structures: linked lists, arrays, hashtables, etc and common algorithms: mergesort, binary search, depth first and breadth first search, etc. Most software engineering interviews will have some sort of whiteboard challenge, where you'll be given a problem ( e.g. given a string "hello", determine it's a palindrome). You'll be asked to solve it and give the computational complexity of your solution ( i.e. big O score -> O(N), O(N^2) .. etc). You can use any language for your solution (but I'd recommend Python given its simplicity). I've listed a couple sites below but honestly there's many free resources to help you prepare for whiteboard interviews and coding challenges.
If you want to impress an employer with you language background, I'd focus on learning a couple of language that is demand. Currently, Java is still the most widely used enterprise language, followed by C, C++ and Python. Java, C and C++ are primarily used for systems and backend development. For front-end development focus on Ruby, Javascript and a popular framework like React or Angular. If you're interested in data science, machine learning and AI, python and R are your go-to language and a solid foundation in C/C++ will push you to the top.
So the TLDR:
- Focus on computer science fundamentals: data structures, algorithms, and algorithm analysis
- If you have a good idea of the type of programming you want to do, pick a language that is in demand. I've linked a list of most popular languages in 2018 based on job postings below.
Good luck and post more questions if you em!
Rupal’s Answer
Hi Samuel,
I suggest learning Javascript.
Javascript can be used to develop UI, backend, mobile app or even databases. Its one single language that fits at most of the places. And, depending on your interest, you may also want to learn javascript frameworks, for example, if you are interested in front end development then learn React or Angular framework, for backend learn NodeJS or for mobile go with React native
Peter’s Answer
Carlos’s Answer
Hi Samuel,
It does depends on the type of development you want to work on.
Within Software Development there are a few major areas that might dictate the best languages to learn, i.e. Frontend Development, Backend, Mobile, etc...
The are a few sites that will give you the trends on the software industry year after year. One I like to use is http://pypl.github.io/PYPL.html
At this moment and in my own personal opinion as professional in this area i would look into:
- Frontend UI Web Developer: Javascript, React
- Backend Developer (Microservices and Serverless): Python, GoLang
- Generic approach: Java, C#
Hope this helps
Elisa’s Answer
Great question! First, think about what you you want to engineer. Many people begin with css, html, and javascript. Java is also widely used to create complete applications that may run on a single computer or be distributed among servers and clients in a network . My advice is to learn one language deeply, rather than several languages superficially, so you develop in-depth, but transferable knowledge.
Joe’s Answer
Employers in this field are more interested in your ability to solve problems than what languages you know. Languages can be learned, but having good problem solving skills is a must. You should get all the necessary fundamentals in all your classes.
As far as languages go, I'd try to be as current as possible with the main languages (C++, Java, JavaScript). Things can move rapidly, but I think these are the major ones at the moment.
Lastly things have more recently moved towards something called "Functional Programming". I'm hoping that you'll learn more about that in college.
Leon’s Answer
I have been working in IT for over 40 years and I can tell you the first three traits listed in this website are especially true. "Be well rounded" I have an Management Informations Systems degree and I learned about computing and business. Understanding all about computers and programming is good but you need to know how they fit into a business. "Enjoy solving puzzles" When I worked on work related problems I often got the answer when I was sleeping at night in addition to the daily solutions. "Love learning" during my 40 year career I continued to learn about the latest changes in business and the computer industry. Currently I am retired and still learning more about computers. I have a Linux Mint lab of three desktop computers working with puppet.
The seven other traits are very important to a potential employer.
The Internet article:
http://www.codingdojo.com/blog/trait-of-great-programmers
Now to answer your questions about programming languages.
The Internet article:
http://www.codingdojo.com/blog/9-most-in-demand-programming-languages-of-2017
This article went where employers publish job offerings (Indeed.com). I used Indeed.com regularly during my career. I agree SQL, Java, and Python would be the first ones you should learn. I have used all three during my career although I started with Perl which has be replaced by Python.
Since SQL is the first language on the list, lets discuss SQL and NOSQL. Recently I worked for a company that used huge Tera byte MongoDB data bases. This Internet article discusses the differences.
https://insights.dice.com/2012/07/16/sql-vs-nosql-which-is-better/
Leon recommends the following next steps:
Kelly’s Answer
Nicolás’s Answer
Hi Samuel! Great question! In fact this is a question that even some people who are currently working sometimes think about.
From my experience, you shouldn't overthink about it, there are incredibly popular languages such as Java, C++ or Python, which should be enough to make you look appealing to many employers, but also in this industry as long as you understand and master the fundamentals of computer science and programming you should be good: learning a new programming language is not hard once you have the basics mastered, and many companies already know that (we often hire people who actually don't know the main language we use in the company). Focus on getting experience, on solving problems. Experience will make you way more appealing than the specific programming languages you master.
Oh! And don't try to learn all of them! Just focus on one or two, the ones you have most fun with or the ones that may look more fitting with the problem you are trying to solve! And most importantly: Have fun!
Rakesh’s Answer
Lucie’s Answer
Nice question Samuel!
There are so many roles that are programming related. So firstly put yourself questions what exactly you would like to do. Do you want to become real programmer? In which field? Or you need programming as extra tool to do some kind of analyses?
As a data analyst I do not need to have broad skills on variety of languages. What matters to me a lot is SQL coding. Python is nice to have and I see good potential to study it as well.
I used to use VBA a lot but this seems as not important anymore.
Hope this helps!