Programming Languages for Software Engineer

What programming languages are best suited for software engineers that want to work at big companies like Google or Apple? I’ve heard Python is good for beginners and all around coding, meanwhile Java is a lot more prevalent in the industry. I have no previous experience with programming and want to learn a language before I go to college.

If you’re decent at coding, it doesn’t matter what languages a company uses; you’ll be able to pick up whatever they use as needed. The main goal with learning your first programming language is to learn the concepts behind programming so you can apply them to any other language you need and use it. So don’t pick a language just because a certain company uses it.

My usual recommendation is to go with Python because of its simple syntax, and that’s what I’d recommend here too. You can move on to Java or whatever other language once you get the concepts down.

CS curricula may use different programming languages, based on which is most suitable for the given task. A good software developer should be adaptable in a similar way.

C or C++ and many other languages are widely used for software development.

As others above me have said, if you learn one language well, and understand the concepts behind them, you should be able to pick up similar programming languages without much difficulty (besides learning new syntax, etc.). Python is pretty high-level and a lot of intro programming courses use Python, so it might not be a bad first language.

Google, Amazon and Apple are now in the Washington DC area. Each time they contact me about jobs, I tell them “thanks but no thanks” because the commute is too brutal for me. I can get the SAME position for the SAME money closer.

There are many opinions on which programming language is the “best” to learn, but the truth is that it’s better if you know more than one language (and is almost always expected of you) when it comes to jobs with titles such as “software engineer”.

In my opinion:

  1. JavaScript (you NEED to know this scripting language by heart.)
  2. PHP (very good learning curve, more of a scripting language, has some issues, though)
  3. Java (can be a substitute for PHP when it comes web development, also similar to C#, easy GUI dev.)
  4. C++ (widely used, might be a tie between Java, but I don't think it surpasses it.)
  5. Python (many websites are based on Python, easy to learn, machine learning, etc.)
  6. C# (not much to say about C#, very similar to Java, Windows store apps, etc.)
  7. Ruby (gaining a little more popularity, but not going to pass the others, I think.)

@econcalc

Agree with most of your post if you’re ranking the prevalence of languages, but a slight side discussion here: Why did you put PHP so high? I don’t know of any significant technology choosing to use PHP these days - most web apps opt for a MEAN stack, some Python framework, Spring etc. There’s a lot of PHP out there as legacy, but for someone picking up programming now, it wouldn’t seem to serve much use to me. PHP would clock in after Ruby in my book currently.

A bit of the same for C#, though maybe that’s just my personal distaste for Windows showing :stuck_out_tongue:

I’d put MEAN into the JavaScript category, and the only other thing left would be an alternative to MEAN, which is (due to high popularity and job market numbers) still PHP.

Spontaneously did a search on Glassdoor for PHP developer in my area. Got about 230 results within a 100 miles, while there are less than 15 for Ruby, ASP, and Python.

Not in defense of PHP, but the numbers are. Besides, Facebook, Drupal, WordPress, vBulletin (and tons of other forums) are still written in PHP (in part or entirely).

Personally, I’d go with either Node.js or Spring, but only because I’m a Java fanatic.

I disagree with the recommendation to learn javascript, which I consider an abomination of a language. :slight_smile:

FWIW, at Google, I believe 95+% of the coding is in C++, Java, or python.

@aegrlbia, if you have no previous experience, I would suggest Python as a starting language. C++ is definitely not a good starter language. Other languages will be easier to learn after you have learned the first one. Java is a bit more difficult than Python, but not as difficult at C++ for beginners.

@thshadow

Unfortunately, that abomination is way too popular to ignore. Luckily we have a lot of “safe” frameworks coming out that make it usable and able to organize a website logically and in good practices.

When it comes down to it, current practical Javascript == a good language. That said, I think !(Javascript === a good language). Who really remembers anyways.

From a PL standpoint, it is the literal worst. But practically, it’s not going anywhere unless someone creates an alternative that can overtake it, and a programmer is going to likely end up working in it. From a teaching standpoint of course, never start out in it for sure, agreed. I think @econcalc took the question more from an industry standpoint.

For the OP, as others have said, Python or Java is probably the best way to go. I always opt for recommending Python personally.

@10s4life

A lot of schools still use bad teaching languages like C++ at the intro level - it just means a much steeper learning curve in addition to making it harder to focus on the core CS concepts, which are vastly more important than what language you use. All should be fine - try to focus on concepts over the language in general, and you shouldn’t have any problems.

I don’t think using C++ necessarily means that there’s a much steeper learning curve. I’m pretty confident you can teach an effective easy-to-follow intro course in C++, Java, Lisp, whatever.

I think language is a lot less important than people make it out to be. At MIT 30 years ago, I learned in scheme (dialect of lisp) and CLU (dialect of who-knows-what). My first job was C++, never having had it in a single class, and it wasn’t a problem.

And for the record - I’ve never written a single line of javascript in my 30 year career… :slight_smile:

I’m not a fan of C++ either, but the concepts are still the same in Java (especially when it comes to data structures and algorithms).

To some degree @thshadow is right, although you can’t ignore the fact that if a language is popular, AND there are jobs out there (and definitely more than for C++), then there must be some kind of demand that can be explained. The explanation is that almost every website has JavaScript (at least in some form) integrated.

In fact, if you look at the source code in this thread alone, you’ll see that CollegeConfidental has at least 20 JavaScript scripts that have been included. Who could have written that? Probably not Santa Claus. :smiley:

What do you want to build? The programming language you work with largely depends on what you are building. For example, web developers mostly use HTML, CSS, and Javascript along with some other programming languages (Python, Ruby, PHP, etc) for server-side code. Mobile app developers mainly use Swift and Objective-C for iOS and Java for Android. Each programming language has unique advantages and disadvantages and your choice of programming language should depend on the nature of the problem you are trying to solve. So if you are just starting out, I would say that it doesn’t really matter which programming language you learn first. Just focus on learning the general concepts rather than the syntax and you should be able to quickly learn and adapt to most other programming languages. A good programming language that allows you to focus on the concepts rather than the syntax is Python because it has simple syntax and is easy to read.