Number of Jobs by Programming Language
The Viking writes "I was curious about which programming languages are hot with employers, so I did an informal search of several job search engines. The results are interesting (to me, at least). Are these numbers relevant? We can certainly debate whether or not the online job search engines are representative of the actual employment landscape."
I work for a computer consulting company which deals with mainly Fortune 500 companies. Java is the most requested language with VB/ASP coming in next. .NET is starting to grow and we anticipate it will continue next year. It seems to be that companies are moving from VB to .NET, not that Java developers are moving to .NET.
If only we had some numbers on the average pay for each position, I'de be willing to bet that while Java is real popular, you would get much higher pay for fortran.
Maybe the price of the programmers is also affecting which language people are hiring for.
I question the usefulness of this article - it seems to be a snapshot in time and it doesn't even say when these numbers were collected. It could change dramatically next week.
It would be much more interesting to see these statistics over a wide range of time. Applicability of the languages would be interesting too (ie/ what types of jobs are looking for what type of developers).
And it doesn't really detail if some languages tend to cluster (ie/ VB coders tend to have to know x as well).
Robots are everywhere, and they eat old people's medicine for fuel.
Well it is really a Pitty that Python is not Higher I would at least place it under Perl. I often use Python at work when our customer dont request a certon language and they just want the job done. I found python is a great way of getting code out fast and relitivly clean (Sometimes Java Code for me gets sloppy unless I keep in mind to keep it clean.)
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Also, it would be very interesting to see C and C++ both, instead of just C++. I bet there are still tons of jobs for C programers. Also, why not search for "c-sharp" along with "c#", you know, do an OR. That might make a difference. And where is objective C?
Last but not least, where are some other languages? What about...
Obviously, most aren't serious. The "real" ommisions are in bold. Please no "FoxPro is important you insensitive clod!" replies.
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
PHP is the defacto standard used by newbies and children who don't want to learn a real language like perl or Java. PHP is shit.
I think PHP has a valid niche in building throwaway code for demos. Things I've used it for include:
- extremely low cost web sites with limited functionality. A person looking to get a site on the web with a concept can build a php site and put in on a shared server for $10/mo in hosting fees.
- prototyping - some times it's necessary to put together a prototype of an idea to show to a client in a hurry.
For serious work, I agree with you.
Head hunters kept me in clover for 6 years. Only the clueless work in IT as "permanent" employees.
Since after all, the whole point of signing up for Monster is to start getting INCREDIBLE amounts of spam. That's what happened to myself and the whole department I was in when we got laid off and we'd all signed up with Monster.
Why do specific languages seem to be more important to employers than CS concepts. Someone with a good background in CS should be able to work in a number of languages and be able to pick up new ones quickly.
.NET, Java class libraries, STL, etc). This is something that is only learned through the pain of time spent using these tools. It's not just the language that is being looked at, but experience with the technologies involved.
Seems to me its more important to know algorithms, data structures, how to implement parsers, how to optimize databases(or knowing when its better to use a custom data structure rather than a database), etc.
I get really tired of hearing this one. Joel Spolsky wrote a bit on this. As you note yourself, "...in my experience knowing what to do with these languages far outweighs knowing the language itself." However, this doesn't usually consist of optimizing sorting algorithms, but more frequently understanding and knowing the details of vendor APIs (ISAPI, MAPI, SAPI, Win32,
-jerdenn
One of the nice things about knowing and using a number of languages is that you get to pick the right tool for the right job. People like you, Kunta Kinte, seem to believe it's a good thing to limit tools; sometimes just because you have a hammer doesn't mean that everything should resemble a nail. Ever tried to write a compiler in FORTRAN, for example? Ever listen to an MSCE extoll the virtues of a certain company's products for every conceiveable problem?
Now, on my resume I list the "languages" LEX and YACC (lately more Flex/Bison), because I have found that applications-specific scripting languages can improve quality and make maintenance far easier than trying to do everything in, say, C. Many of the projects I work on are tools, not end-user apps, so providing a scripting language suited for the task makes it easy for my customers to concentrate on their jobs instead of how to get my software to do something they really want to do. Even when the scripting language is used exclusively internally, I have found that the quality of the resulting program is far higher because I've removed opportunities to screw up by using a level of abstraction. C++ and other object-oriented languages try to create a one-size-fits-all version of this, but sometimes it's just easier to think about the problem with a more free-form syntax without worring about inheretance issues, constructor/destructor conflicts, garbage collection, and the other baggage that seems to come with now-"traditional" OO programming.
How many environments do you work in? I'm equally at home in the embedded space, personal-computer applications, Web applications, secure e-commerce applications, network stuff, and man-rated programming. Each area has its own set of tools -- why shouldn't I mention them as I'm versed in using them?
Or perhaps you are of the school of "jack of all trades, master of none"? Sorry, I like challanges. I may be 50, but I can still write code. Maybe not as fast, but I'll stack the quality of my code against any person here.
Actually, I work at a company where all of our software solutions (ASP) are centered around PHP. We have created probably the most advanced web-based user interface available and have created a number of breakthrough technologies BASED on PHP (I cannot discuss them due to NDA restrictions). PHP is a very flexible and powerful language -- very useful for developing applications that need to be easily modifiable, debuggable and portable. Without PHP, we estimate our development time to more than quadruple. PHP is one of the greatest tools when used in the right scenario. Like always; the right tool for the right job.
The only thing that really surprised me was the javascript rank. Other than that I probably would have guessed the top ranking ones.
I think now that Java isn't as slow as it used to be, it's really catching on. I personally prefer it to C++ because it's typically a lot cleaner. (In my opinion)
-Chris
You should quickly share your insights with the folks over at Yahoo!
Yahoo is doing some very strange things. They evaluated a bunch of web development technologies, decided J2EE was the best, and then chose to use PHP because FreeBSD has very bad support for threads.
Now to me that is putting the cart before the horse. First you choose what software you want to run, then you choose the platform you run it on.
A very insightful remark, and I heartily recommend reading Joel Spolsky's article. Knowing the language is just one thing, knowing the APIs, and for some languages (especially VB and VBA) knowing the limitations and bugs, and how to get around them, is key. It is a common oversight when staffing a team, as well. This is where the difference in productivity of good vs average programmers (read: the Mythical man-month) is measured in factors of 10-100! It is, as Joel describes, the difference between solving a freaky bug in 3 minutes vs. 1 hour.
What has my main frustration been so far, when I held the post of development team leader? Not having a good mix of juniors and seniors! That, or having seniors who do not wish to allocate time to spend with the junior coders, reviewing their code and coaching them. The result? People are re-inventing the frikkin' wheel over and over again. This is most apparent in relation to APIs and the shortcomings of a language... but it applies to conceptual stuff like data structures and algorithms as well. You generally do not need an all-star team to be succesful, but it's worth gold to have one or two developers that know the ins and outs of the language, the database used, and the APIs.
If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
(* When you learn that programming is actually about understanding domain-specific knowledge, you might have something worthwhile to say. *)
If OO is a better fit for "domain-specific knowlege", I will eat a Java box. The world is not tree-shaped and the viewpoints of users are relative. OO cannot handle relativsm very well. It's "abstraction" tends to be IS-A -- absolute. Each viewpoint tends to muck up and compete with other viewpoints. With relational approaches viewpoint X is pretty much orthogonal to viewpoint Y because the "patterns" are ad-hoc created instead of physical hand-built class code.
IOW, most domains are:
1. Not-tree-shaped over the long-haul
2. Users need relative views such that no one view should trump another.
If these "lessons" about the real world are wrong, then shoot me.
A friend of mine was hired at EDS under the same theory. He turned out to be the right kind of person to be a programmer.
but...
I do believe this is a myth. There are good CompSci students and bad CompSci students. People who have a passion for programming generally go into a field dealing with programming and not all CompSci programs are worthless. Most of the people in the field who are worthless have never done a program for themselves in their entire life. I can name very view (three I have the fortune to work with currently) that have successfully made the conversion from non-programmer to programmer.
I remember an interview question a friend of mine used to use:
"What was the last program you wrote that was not for work or school?"
If they had any answer at all, the interview continued. If not, he wrapped it up as quickly as possible while still being polite.
Ah yes, I meet guys like you all the time. Convinced they can recode the STL better themselves, the lower bounds proofs not withstanding.
Out of incompetence, they pull in a megabyte of library code, deal with dozens of bugs in "standard" library code, and try to keep several APIs in sync for something that could easily be done in a few dozen lines of code.
Now you're using a straw man. What are these multi-megabyte libraries? You are referring to cross dependencies that pull in unnecessary code - these sympton usually appear more in hairy locally-crafted libs, and rarely appear in standard libs. This is but another reason people use standard libs.
What about the fact that almost all job listings these days will mention more than one of these skills? There are significantly less jobs than what this chart shows because of that fact, not counting the "spam" jobs. It seems that more often than not any Java post also mentions C or C# these days...
Required knowledge and experience with the following: Java, JSPs, EJBs, JavaScript, ASPs, VBScript, C/C++, HTML, XML, WebSphere Application Server, UNIX (AIX) platform, Windows 2000/NT platform.
Alright, there must be a ton of people out there with these credentials, especially all that Java plus VBScript. I can think of only one person that I know that maybe has these. Read on:
Preferred knowledge and experience with the following: OOA&D, UML, Together/J, Visual Age for Java, Visual Age for C++, DB2/UDB, MQ Series, MS SQL server, Perl and other scripting languages, Interwoven Teamsite. 5-8 years web application development or support in either UNIX or Windows platforms. Bachelor's degree in computer sciences, business or engineering.
Damn, job's written for me!
Seriously, who's got these credentials? And if you do, why are you still at the same job? Or are you consulting by now?
And if you don't have all the required skills, do you apply anyway?
DT
Is this thing on? Hello?
I'm currently an RIT student and the IT majors are being taught Java (2 years ago it was VB) while the CS majors are being taught C++. I find it interesting that, according to this guys results, Java is more sought after then C++ Luckily, anyone who knows C++ also *generally* knows Java
[sig]www.masterslate.org[/sig]
SkillMarket
Software Wars