Best Programming Language to Learn for Employability

In summary, the conversation discusses various programming languages and their applications in different fields. It is suggested that instead of focusing on one specific language, it is more beneficial to have the ability to learn and adapt to new languages quickly. Other skills that are important for success in the field include familiarity with different development environments, experience in a specific application area, knowledge of common algorithms, and familiarity with source-code management systems. It is also mentioned that there is a difference between being a programmer and a software engineer, with the latter having a higher level of skills and knowledge.
  • #1
grandpa2390
474
14
It looks like Javascript is the way things are heading. But I've also seen C++ and Python recommended. I don't want to waste time and energy; I've done enough of that. Any job I get will probably be based on my having a 4 year degree (STEM preferred and no gpa requirement) and programming knowledge. What is my best chance for success?

I thought about going back to school to learn programming. but I was surprised to see that very few of the computer science coursework is aimed at teaching someone how to program. just an introduction to C++ or object oriented programming (which I took) then off to more advanced stuff like encryption etc.
 
Physics news on Phys.org
  • #2
Employability in what field? What specialization? The preferred programming language varies greatly with the field...
 
  • Like
Likes QuantumQuest
  • #3
berkeman said:
Employability in what field? What specialization? The preferred programming language varies greatly with the field...

You're right.
Could you tell me which programming language is best for what fields? I hope this isn't an unreasonable request; I promise I'm not asking for a thesis on every single language. Just a sample?
 
  • #4
berkeman said:
Employability in what field? What specialization? The preferred programming language varies greatly with the field...

I sent an application into https://revature.com

They want beginners and will train you how to program. Seems too good to be true. But what's the worse that can happen?
 
  • #5
Well at my work (embedded device development R&D), the software development folks who are developing on Windows use C, C++, and C# mostly (plus assembly language, obviously). In my hardware group, we use C and C# and Python and Tcl/Tk and Perl mostly.

Hopefully you get good answers from folks in different fields.
 
  • Like
Likes grandpa2390
  • #6
BTW, usually when you are looking at job postings, they will specify which programming language(s) they want experience in. What have you found so far in your job searching?
 
  • #7
berkeman said:
BTW, usually when you are looking at job postings, they will specify which programming language(s) they want experience in. What have you found so far in your job searching?

This one for Revature, they wanted someone with

  • Exposure to one of the following: Java, Javascript, C++, CSS
  • Solid foundational knowledge of SQL
But I'm still trying to figure out what it is they do.
 
  • #8
My advice to this question is always it is better to learn to program than to learn any specific language. Lots of people can slap something together in the language of the moment. Not so many people can program.
 
  • Like
Likes DaveE, cobalt124, grandpa2390 and 3 others
  • #9
I think @rkr could have some valuable insights/advice for you.since he/she seems to have some experience in/ knowledge of data science.
 
  • Like
Likes grandpa2390
  • #10
Where I work we use a whole lot of Python, a small amount of Labview, and an even smaller amount of C++.
I work in printed electronics R&D.
Once you learn one language it usually isn't too difficult to catch on to others.

As for Revature, I had a phone interview with them a long while ago. They wanted significantly more programming experience than their job postings seem to imply.
 
  • Like
Likes grandpa2390
  • #11
It is hard for a student to pick one programming language most likely to be used downstream. Employability nearly always depends on programming in different languages and being able to pick up new ones quickly. Therefore, the important question is not "which programming language am I most likely to use downstream?" but rather

"Which programming language best prepares me to learn new languages to use downstream?"

C is a pretty good choice in that regard. Python is not bad. But I think you need to lose the mindset of making a living with only one or two computer languages and also that learning additional languages is somehow inefficient or a waste of time.
 
  • Like
Likes grandpa2390, DaveE, Klystron and 3 others
  • #12
Where I work, the programming is in Fortran. The computer codes do thermal-hydraulic analyses of various kinds, the source code has descended from code written in the 1960s. In some cases, graphical user interfaces have been added in C++.

So what does that mean? Engineers doing this sort of programming are expected to pick up Fortran "on the job."
 
  • #13
grandpa2390 said:
It looks like Javascript is the way things are heading. But I've also seen C++ and Python recommended. I don't want to waste time and energy; I've done enough of that. Any job I get will probably be based on my having a 4 year degree (STEM preferred and no gpa requirement) and programming knowledge. What is my best chance for success?

I thought about going back to school to learn programming. but I was surprised to see that very few of the computer science coursework is aimed at teaching someone how to program. just an introduction to C++ or object oriented programming (which I took) then off to more advanced stuff like encryption etc.

The favored computing languages change frequently and change with the project. There may be a variety of reasons why one particular project uses a particular environment.

So in my opinion the skills you need are: (1) ability to pick up a new language and (2) development environment, (3) experience with the application area you are interested in, or multiple application areas if you want to be flexible, (4) familiarity with common algorithms for solving problems in your application area, (5) familiar with source-code management systems. GIT is really popular right now, I'd consider using it on one of your own projects to get your feet wet.

(I'm sure I'll add to that list as things occur to me).

Also "programmer" vs "software engineer": I'm a math/physics guy who has done programming all my professional career. In working with talented software engineers, I learned that their skills are at a whole different level. It's not just that they're impressively fast programmers, they know a lot about how to make code reliable, how to embed and use self-testing, the effective use of alpha- and beta-testing, and a whole lot about what a disciplined development and testing process looks like that has a good chance of getting the code done right the first time.

If you can make the leap from programmer to software engineer, you'd be a heck of a valuable guy.

I mentioned development environments. Those are at least as important as the language you're using. It makes your development process easier but more important it saves huge time in tracking down and squashing bugs, if you know how to use the tools more than just basic "hit the run button".

It's also good to pick up new paradigms. As machines offer multiple parallel processors, there are programming techniques to take advantage of that, "multi-threading". And that opens up a whole new can of worms in development and debugging.

Object-oriented programming is definitely a good thing to know and use, but you should also know how to program without it just in case.

I also highly recommend, whatever you're doing, to check into forums like Stack Overflow. Not only has somebody probably solved the problem you're trying to solve, the discussion on the pros and cons of various approaches are really educational.
 
  • Like
Likes grandpa2390 and berkeman
  • #14
grandpa2390 said:
But I'm still trying to figure out what it is they do.

From their website

Our Mission
To create a pathway where university graduates with diverse backgrounds can build the knowledge, skills and abilities to reach their potential as technology professionals and leverage those talents to contribute to the growth and success of our customers.
 
  • #15
gleem said:
I think @rkr could have some valuable insights/advice for you.since he/she seems to have some experience in/ knowledge of data science.

Thanks for the tag.

berkeman said:
BTW, usually when you are looking at job postings, they will specify which programming language(s) they want experience in. What have you found so far in your job searching?

I think that this post answers your question. If you already have a set of firms you're applying to, they're in the best position to tell you. You'll have firms that prefer React to Angular, Ruby to Python, JVM (Scala, Java, Groovy) to C (C++), functional to imperative, Julia to MATLAB, R to Octave, C to Fortran.

Revature looks like one of those modern hybrid recruiting + code camp firms that make a profit from referring candidates to employers. They're incentivized to teach you because the cost of instruction is much lower than 1 successful referral, which is usually 15-30% of your first year guaranteed compensation, and firms may prefer to work with them because of a track record of placement or the foreknowledge that they're doing a more active part than simply running a LinkedIn search. There's a few respectable ones like this that only take PhDs and have high placement rate at FAANG firms, but I don't know much about Revature myself.

Here's how I think of maximizing your employability, in descending order of importance:

1. Most interview processes focus on your knowledge of algorithms and data structures. Be good at solving these in your go-to language.
2. Be good with at least one (i) imperative language that has (ii) class abstractions, (iii) within the "top 20" (search TIOBE or Stackoverflow surveys). This is means one of Java, C, C++, C#, Python, Ruby, Swift or Go.
3. Pick a language where there's low activation energy for you to do fun and meaningful projects. Project experience is generally more important than knowledge of a language and its syntax per se, unless you have a niche job involving compiler or interpreter design. There's no point picking the sexiest and most popular language if you get bored of it fast and/or get little done in that language.
4. Familiarize yourself with a basic set of modern development tools: debuggers, distributed version control (git, mercurial), a decent text editor (vim, emacs, sublime, VS Code, Atom), basic UNIX/UNIX-based utilities (cd, ls, cp, rm, grep, head/tail/less, seq/awk etc.). These pay off in productivity over the course of your lifetime, and no point being amazing at everything else above and showing your interviewers that you work in Windows Notepad.
5. Once you're done with all of the above, invest some time in something orthogonal - databases (schema design, SQL), async programming, coroutines and parallelism (nodejs, F#, Haskell, Erlang, Clojure), web development frameworks (React, Bootstrap) and so on.

Only thing I may add is that my advice contradicts with the approach that most web development bootcamps take - which is to just straight into a LAMP/MEAN stack. I think that it's easy to pick that up in step 5 so you'll get there, and I strongly believe that you learn a lot of horrible habits by starting out in a JavaScript-centric world - so I would avoid that if I had a few months of extra time buffer.
 
  • Like
Likes gleem, jtbell, grandpa2390 and 2 others
  • #16
rkr said:
3. Pick a language where there's low activation energy for you to do fun and meaningful projects.
Great metaphor, and definitely an important point! :biggrin:
 
  • Like
Likes rkr and grandpa2390
  • #17
berkeman said:
Great metaphor, and definitely an important point! :biggrin:

I'm going to start with python.
 
  • Like
Likes Locrian, rkr and berkeman

1. Which programming language should I learn to increase my chances of getting a job?

The best programming language to learn for employability can vary depending on the industry and job market, but some of the most in-demand languages currently include Java, Python, and JavaScript. These languages are widely used in a variety of industries and have a high demand for skilled professionals.

2. Is it better to learn a popular language or a niche language for employability?

It's generally recommended to learn a popular language that is in high demand in the job market. This is because there will likely be more job opportunities and a larger community to support your learning and career growth. However, learning a niche language can also be beneficial if it aligns with your career goals and interests.

3. Are there any programming languages that are becoming less relevant in the job market?

Some programming languages may become less relevant over time as technology and industry needs change. This can make it more challenging to find job opportunities. However, it's important to note that even with the decline of certain languages, they may still be used in legacy systems and may still be valuable to learn for certain industries or specialized roles.

4. How can I determine which programming language is best for my career goals?

Consider your career goals and the industries and job roles you are interested in. Research the demand for certain languages in those areas and also consider the languages that are used by companies or organizations you would like to work for. It's also helpful to consider the types of projects and tasks you enjoy working on, as certain languages may be better suited for specific tasks.

5. Can I learn multiple programming languages to improve my employability?

Yes, learning multiple programming languages can improve your employability and make you a more versatile and well-rounded candidate. However, it's important to focus on mastering one language at a time before moving on to another. This will help you develop a strong foundation and understanding of each language and make it easier to learn new ones in the future.

Similar threads

  • STEM Career Guidance
Replies
2
Views
1K
  • STEM Career Guidance
Replies
18
Views
2K
  • STEM Career Guidance
Replies
5
Views
851
  • Programming and Computer Science
Replies
15
Views
1K
  • Programming and Computer Science
Replies
8
Views
875
  • STEM Career Guidance
Replies
14
Views
2K
  • STEM Career Guidance
Replies
3
Views
1K
  • STEM Career Guidance
Replies
3
Views
1K
  • Programming and Computer Science
12
Replies
397
Views
13K
  • STEM Academic Advising
Replies
12
Views
1K
Back
Top