views:

212

answers:

8

I will begin my job hunt soon and wondered what languages are currently a "must know" for developers. Also, what languages should be learned in the next five years. I am excited about entering into programming and want to do everything possible in order to make myself a more valuable employee now and in the future. I will have a bachelor's in IT and want my future employer to never regret taking a chance on me.

+12  A: 

Language is just syntax. What's important is that you can show you understand the art of programming. That you are a problem solver at heart. If I was hiring that's what I would look for, not what, and how many language Syntaxes you have on your CV.

Steve
Upvoted - I couldn't have said it better myself. It's not what you know that's important, it's what you can learn.
Sherm Pendley
@Sherm Pendly: Well experience doesn't hurt either though, and if you can have both instead of one, why not both? :)
grieve
@grieve - The OP has already said he has no programming experience. He's a new grad looking for his first job.
Sherm Pendley
@Sherm Pendley: I didn't realize you were speaking so specifically about the OP. And I was speaking from the point of view of a potential employer.
grieve
@grieve - OK, speaking in general, I'd be very reluctant to hire someone who knows only (for example) Java. Even if a Java programmer is what I need *right now*, Cthulhu knows what I'll need next year.
Sherm Pendley
+3  A: 

Here is a great article by Steve Yegge on how to get a job at Google. Though he wrote it specifically about Google. I think it is a great general advice.

As Steve said you really don't need to focus on a language, but rather problem solving skills. The only language specific questions I ask in my interviews are to weed out resume padders.

grieve
A: 

There are no "must know" languages in themselves.

Basically, I'd say that with a good in-depth knowledge of at least

  • one mainstream object-oriented language like Java, C# or C++, and,

  • one modern scripting language like python or ruby

you're well-equipped to get started on your first job. It's better to master a few languages very well, at first, than to have a passing knowledge of a dozen languages.

After that, it's just a question of learning the languages that are needed to do the job. And that is really specific to your domain, company culture, etc... But, as Steve says, it is mostly syntax. Any reasonable interviewer will realize that.

When I interview entry-level developers, I always encourage them to answer technical questions in whatever language they're most comfortable with. But then, they better not make newbie mistakes in that language!

Kena
+2  A: 

A lot of people will say C is the must know language but this is mainly due to the principles involved. It forces you to learn and think about concepts like memory management and algorithms, whilst having a fairly small number of keywords.

Another thing to consider is showing that you can master multiple languages fairly quickly. Be able to talk about the relative merits and disadvantages of each, and showcase some real projects to any potential employer. Involve yourself in the development of open source or hobby projects that illustrate your skills.

It's also worthwhile showing that you can read and understand complex projects by fixing bugs in open source software. At the end of the day, you'll spend a lot of time debugging and maintaining code if you become a programmer.

BrianLy
Upvoted. Languages come and go, which makes the ability to "think on your feet" and learn new languages far more important than memorizing the esoteric details of the "hot" language du jour.
Sherm Pendley
A: 

I agree with Steve, but if you're determined to find the most popular languages, I'd check out these links:
Statistics based on books (oreilly)
great stats on just about every aspect

Richie Rich
+3  A: 

As a technical manager, I've found that the single most important language is the one you use to communicate with the people you work with.

Given the choice, I'll turn down a technical genius for the person who can:

  • understand quickly and completely what's being said,
  • explain his or her thoughts clearly and concisely, at the appropriate level,
  • document work that's been done, and
  • communicate persuasively when something needs attention.

(Second to that, learn C for the concepts and discipline.)

Adam Liss
A: 

After working for ca. 25 years I have noticed that there are some things that you learn and use on one project or for a couple of years, other things can be usefull for 20 or more years.

A good example of this is SQL. I learnt SQL at about the same time as learnt dBase and RPG II. Anybody remember the last 2?

The thing that I think will last a developer for his/her career is an understanding of business and the customer. A developer that understands C# has one value, a developer that understands C# and banking has a much higher value.

If you have the ability to turn a detailed spec into code that is good. If the customer can explain what he wants to achieve and you can turn that into code, that is much better, and much harder to offshore.

Shiraz Bhaiji
A: 

As a bank manager once said, "I only hire people who know C, because they seem to understand how things work better than people who don't know C."

Norman Ramsey