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.
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.
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...
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.
SkillMarket
Software Wars