10 Programming Languages You Should Learn

  • (5 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »

66 Replies - 8485 Views - Last Post: 26 March 2014 - 02:25 AM

#1 cfoley  Icon User is online

  • Cabbage
  • member icon

Reputation: 1987
  • View blog
  • Posts: 4,123
  • Joined: 11-December 07

10 Programming Languages You Should Learn

Post icon  Posted 15 March 2014 - 05:45 PM

*
POPULAR

Browsing DZone earlier, I came across this link:
10 Programming Languages You Should Learn in 2014

What an uninspiring list! Don't get me wrong. They are all languages that are commonly used in the workplace. You should probably have a working knowledge in some or all of them anyway. What I expected was for the article to be a little out of the box, showcase some new languages or maybe push an agenda.

What would you recommend in a list of 10 languages?

Here are my 10 languages for the aspiring science researcher. Comments, criticism and suggestions are welcome.

Spoiler


Is This A Good Question/Topic? 6
  • +

Replies To: 10 Programming Languages You Should Learn

#2 baavgai  Icon User is online

  • Dreaming Coder
  • member icon

Reputation: 5820
  • View blog
  • Posts: 12,672
  • Joined: 16-October 07

Re: 10 Programming Languages You Should Learn

Posted 15 March 2014 - 06:13 PM

As a practical list, it seems reasonable. Yes, practical isn't as sexy as the hot language du jour, but that's part of being practical. I would question both ruby and objective-c on the list. I applaud SQL.

Note, other than SQL, these languages all allow similar imperative approaches to problems. Python is slightly functional, ruby more so, but you can still loop away with never looking deeper.

I'm not up to a list of ten, but since I've kicked two off the given list, I'll add two back.
Spoiler

Was This Post Helpful? 0
  • +
  • -

#3 tlhIn`toq  Icon User is offline

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5508
  • View blog
  • Posts: 11,812
  • Joined: 02-June 10

Re: 10 Programming Languages You Should Learn

Posted 15 March 2014 - 07:28 PM

View Postcfoley, on 15 March 2014 - 06:45 PM, said:

What an uninspiring list! Don't get me wrong. They are all languages that are commonly used in the workplace.


I think the direction of the article was "should know for earning a living". Look at the site. Look at the context of the article. You don't pick up a magazine for an article on "Top ten beach bodies" then complain that they didn't feature overeaters anonymous models.

The point of the article was not to inspire the next generation of developers to go down the road less traveled.

To me, its nearly a spot-on article for earning a living. cfoley, you might be independently wealthy and therefore have all the time in the world to learn a bunch of languages that don't correspond to getting raises or landing a job, but most of us out here work to provide a living for our families. There is only so much free time after a day of work, and time with the family, household responsibilities to then pile on 'learn another language'. So it becomes necessary to prioritize. Languages that will make my life better by improving my work status and earning potential come before languages that are 'just for kicks'.

I did however think that the lack of any flavor of XML, XAML was pretty conspicuous. Everything now days uses some offshoot of XML even if it is just for serializing data, or for consuming data/services from a site which is a BIG part of a lot of programs these days. Given that 4/10 on the list were C flavors I'd maybe drop C to make a slot for XML. C++ will cover that same 'base level' C need.

This post has been edited by tlhIn`toq: 15 March 2014 - 07:30 PM

Was This Post Helpful? 0
  • +
  • -

#4 macosxnerd101  Icon User is online

  • Self-Trained Economist
  • member icon




Reputation: 10560
  • View blog
  • Posts: 39,069
  • Joined: 27-December 08

Re: 10 Programming Languages You Should Learn

Posted 15 March 2014 - 09:44 PM

Quote

cfoley, you might be independently wealthy and therefore have all the time in the world to learn a bunch of languages that don't correspond to getting raises or landing a job, but most of us out here work to provide a living for our families. There is only so much free time after a day of work, and time with the family, household responsibilities to then pile on 'learn another language'. So it becomes necessary to prioritize. Languages that will make my life better by improving my work status and earning potential come before languages that are 'just for kicks'.

I may be wrong, but I'm pretty sure cfoley is in academia at some level. Last I recall, he was pursuing his PhD in a biology/chemistry type field with a focus on computation (bioinformatics of some sort, perhaps). If you're directing your own research, you have a bit more freedom in the languages you use.
Was This Post Helpful? 0
  • +
  • -

#5 mostyfriedman  Icon User is offline

  • The Algorithmi
  • member icon

Reputation: 727
  • View blog
  • Posts: 4,473
  • Joined: 24-October 08

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 05:34 AM

I'd say

Scheme
Java
C
Haskell
Scala
Python
Bash
Was This Post Helpful? 1
  • +
  • -

#6 xclite  Icon User is online

  • LIKE A BOSS
  • member icon


Reputation: 905
  • View blog
  • Posts: 3,167
  • Joined: 12-May 09

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 05:56 AM

I do like the variety in mosty's list. The original article's title made me sigh, because every one of those I see is almost entirely heterogeneous in terms of paradigm and language strengths. It's possible to have an interesting list that still supports those without infinite free time.
Was This Post Helpful? 0
  • +
  • -

#7 tlhIn`toq  Icon User is offline

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5508
  • View blog
  • Posts: 11,812
  • Joined: 02-June 10

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 07:46 AM

View Postmacosxnerd101, on 15 March 2014 - 10:44 PM, said:

Quote

cfoley, you might be independently wealthy and therefore have all the time in the world to learn a bunch of languages that don't correspond to getting raises or landing a job, but most of us out here work to provide a living for our families. There is only so much free time after a day of work, and time with the family, household responsibilities to then pile on 'learn another language'. So it becomes necessary to prioritize. Languages that will make my life better by improving my work status and earning potential come before languages that are 'just for kicks'.

I may be wrong, but I'm pretty sure cfoley is in academia at some level. Last I recall, he was pursuing his PhD in a biology/chemistry type field with a focus on computation (bioinformatics of some sort, perhaps). If you're directing your own research, you have a bit more freedom in the languages you use.


Ahh... That explains a lot. So what you're saying is that like many that still haven't left school, there is a disconnect happening here due to a lack of real world living experience. Got it.
Was This Post Helpful? 0
  • +
  • -

#8 baavgai  Icon User is online

  • Dreaming Coder
  • member icon

Reputation: 5820
  • View blog
  • Posts: 12,672
  • Joined: 16-October 07

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 09:18 AM

*
POPULAR

@mostyfriedman: I'd thought Scala and a LISP as well.

I'll looking at this list again. Languages proficiency is rather nuanced. There's knowing a language structure and intent and then there's knowing all the framework element needed to get things cooking.

To criticize the list:

Java - this is a standard. The language itself is consistent, though the OO can be forced at times. It's handing of primitives can be wonky. The current emphasis on interfaces is good.

C - The foundational, procedural, language from which all curlies descend. This is a profoundly simple language and not OO, which is what makes it a valuable thing to learn. It also forces the programmer to consider the impact of their design in terms of resources, a consideration most languages do not burden the programmer with.

C++ - No. Simply, C++ is a giant mess of competing ideologies, where not one of them is particularly well done. This will not teach you any particularly paradigm well. It does not encompass C, as being a proficient C++ programmer generally means you're a horrid C programmer. ( To be fair, the reverse is also often true. )

C# - For .NET, yes. For design elements; this is basically Java with extra stuff. There is extra, extra stuff in C# (lambdas, etc) but without another language inspire you, you need never open that toy box.

Objective-C - This mess only has relevance in its domain. No programmer outside the Apple walled garden wants to touch this thing. Nuff said.

PHP - In an organic rise to power, this childish, kitchen sink, poorly thought out language became a standard. It won't teach you anything good, but a decent programmer should be able to pick it up with little pain, so it may be ignored.

Python - This is the gateway drug to both duck typing and, to some extent, functional programming. A fun, practical language that exists on many platforms, this one is unique enough to itself to be worth knowing. Don't let the white space thing scare you.

Ruby - Similar to Python in many respects, Ruby just never did get enough respect. It has become forever linked with the Rails behemoth and rises and falls as it does. It's a neat language in it's own right, but not enough to make room for it in a top 10 list.

Javascript - This is number 1, really. The simple, ubiquitous, browser embedded beast, Javascript is actually a subtle and powerful language. The better you understand this prototype based oddity, the better prepared you are for many modern technologies.

SQL - Distributed data stores are the foundation of modern computer systems. If it's an RDBMS, it supports SQL. This is a simple, declarative language based on relational algebra. Programmers often avoid learning this, preferring the comfortable client side language they're using. The best clients make the database server do the work and knowing this language is a must.
Was This Post Helpful? 6
  • +
  • -

#9 xclite  Icon User is online

  • LIKE A BOSS
  • member icon


Reputation: 905
  • View blog
  • Posts: 3,167
  • Joined: 12-May 09

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 09:28 AM

View PosttlhIn`toq, on 16 March 2014 - 10:46 AM, said:

View Postmacosxnerd101, on 15 March 2014 - 10:44 PM, said:

Quote

cfoley, you might be independently wealthy and therefore have all the time in the world to learn a bunch of languages that don't correspond to getting raises or landing a job, but most of us out here work to provide a living for our families. There is only so much free time after a day of work, and time with the family, household responsibilities to then pile on 'learn another language'. So it becomes necessary to prioritize. Languages that will make my life better by improving my work status and earning potential come before languages that are 'just for kicks'.

I may be wrong, but I'm pretty sure cfoley is in academia at some level. Last I recall, he was pursuing his PhD in a biology/chemistry type field with a focus on computation (bioinformatics of some sort, perhaps). If you're directing your own research, you have a bit more freedom in the languages you use.


Ahh... That explains a lot. So what you're saying is that like many that still haven't left school, there is a disconnect happening here due to a lack of real world living experience. Got it.

This may be a little unfair - there are large sections of the industry where working software engineers can and do choose languages to use instead of the typical "Java/C#" program.
Was This Post Helpful? 0
  • +
  • -

#10 tlhIn`toq  Icon User is offline

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5508
  • View blog
  • Posts: 11,812
  • Joined: 02-June 10

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 09:55 AM

Maybe. Maybe not. Depends on how you define 'large'. If you mean a decent number of people, then maybe. If you mean a decent percentage of the industry, then probably not. I couldn't give you number but looking through the job postings for coders will show a person the languages needed to earn a living. My advice to anyone trying to decide on what languages they need to learn is to:

Spend one afternoon scrubbing through every developer hiring/head hunter site you can like Monster etc. Make a score card comparing the languages wanted.
Look at the type of company and the work they do. If it is someplace you would want to work and a job you can see yourself doing for 10 years, then add a point for those languages.

Your mileage may very. Objects in mirrors are closer than they appear. But... Having just gone through this 6 months ago I found that the modern, progressive places that didn't beat their people to death like gaming houses do, or small start-ups that expect you to eat sleep live and breath for them 24/7... Established places that are forward thinking, follow a good Agile method, have a product line I'd be proud to put my name on, have health insurance and so on... In other words real companies that have some hope of long term happy employment... Want you to have SQL, C#, WPF, Source control, ORM, with maybe some experience in C++ if they have some legacy app/DLL, and maybe some PHP and/or javascript if you are applying for their web side of development.

After that... A lot of it depends on the job you're applying for. It doesn't matter how much Objective-C you have if you are applying for a job building Windows desktop applications. All that Java doesn't matter if your company is a non-java environment. In the end, you have to decide what it is you like to do and want to do for a couple decades. If you live for mobile app development then its a different skillset than desktop. Though knowing either makes the transition/interaction with the other less painful.
Was This Post Helpful? 1
  • +
  • -

#11 cfoley  Icon User is online

  • Cabbage
  • member icon

Reputation: 1987
  • View blog
  • Posts: 4,123
  • Joined: 11-December 07

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 12:16 PM

Thanks for the comments everyone. There are some interesting lists and suggestions. I appreciate that the original list is a practical one and it might be a useful list for people who don't know how the common languages fit together.

I was hoping that maybe people who work in different industries might all weigh in. I'm sure that enterprise programming, games programming and mobile development all would recommend a slightly different set of languages, even if there is some overlap.

What I found interesting is that the languages I would recommend for someone getting into scientific computing are not the ones I use day to day.

TlhIn`toq, what technologies do you think I have recommended that are unpractical? Haskell maybe? The comment explained that version control and unit testing would be better to spend time on. Remember my list was intended for scientific research, where the emphasis is more on analysing empirical data than it is on producing programs used or accessed by lists of people.
Was This Post Helpful? 1
  • +
  • -

#12 mostyfriedman  Icon User is offline

  • The Algorithmi
  • member icon

Reputation: 727
  • View blog
  • Posts: 4,473
  • Joined: 24-October 08

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 03:58 PM

Even Haskell is used in the industry. It may not be common like the mainstream languages, but it is used, especially in the finance world. Haskell is also used for some stuff at Facebook.
Was This Post Helpful? 0
  • +
  • -

#13 xclite  Icon User is online

  • LIKE A BOSS
  • member icon


Reputation: 905
  • View blog
  • Posts: 3,167
  • Joined: 12-May 09

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 03:59 PM

Amazon takes a "best tool for the problem" approach. I wish my teammates had a little more exposure to !Java.
Was This Post Helpful? 0
  • +
  • -

#14 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7733
  • View blog
  • Posts: 13,063
  • Joined: 19-March 11

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 05:19 PM

*
POPULAR

From the original blog post:

Quote

With some help from Lynda.com, we’ve compiled a list of 10 of the most sought-after programming languages to get you up to speed.


So basically, they're looking at job postings and tutorial requests and learning that yes, this is a list of languages in use.

Of course, this doesn't make these a good set of languages to learn - anybody who took this post seriously would start by learning Java, then immediately learn five other Algol-syntax languages with hardly any significant differences between them, but a long ton of niggling framework differences - this list is designed by an idiot, or someone whose goal is to make beginning programmers hate their lives and want to die. Certainly following this list isn't going to do you any favors in terms of getting jobs, since you spend a couple of years re-learning the same thing over and over, which no employer in the world is going to want. In a world where databases are required for almost anything you're ever going to do, you don't get to SQL until you've worked your way down to number 10, and you're down to #7 before you even start to approach a contemporary language. And my god - PHP? In 2014? Sorry, no, we have choices now. Don't tell a beginning programmer to shackle themselves to that stinking corpse!

The real problem with this article is that, like any complete newbie, it supposes that learning languages is the main thing programmers do. It says nothing about learning how to use those languages to make programs that have any value - for example, learning the basics of algorithms and computation, so you know when you've bitten off a computationally hard problem and you can recognize a problem that's easily solved by known techniques.

Once again, we have confirmation of the rule that any blog post or article consisting of a list of the "top ten" anything is guaranteed to be completely pointless.

This post has been edited by jon.kiparsky: 16 March 2014 - 05:31 PM

Was This Post Helpful? 5
  • +
  • -

#15 macosxnerd101  Icon User is online

  • Self-Trained Economist
  • member icon




Reputation: 10560
  • View blog
  • Posts: 39,069
  • Joined: 27-December 08

Re: 10 Programming Languages You Should Learn

Posted 16 March 2014 - 06:16 PM

View PosttlhIn`toq, on 16 March 2014 - 10:46 AM, said:

Ahh... That explains a lot. So what you're saying is that like many that still haven't left school, there is a disconnect happening here due to a lack of real world living experience. Got it.

Actually, Bioinformatics and computational biology people work a lot with medical research and the pharmaceuticals industry. There are a lot of neat problems, many of which are NP-Complete or NP-Hard. I don't know that I'd be so quick to dismiss cfoley's insights based on him being an academic (and cfoley- please correct me if I'm saying something wrong!).
Was This Post Helpful? 0
  • +
  • -

  • (5 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »