Programming Languages to Study
Frank Moyer put up an interesting post this morning entitled, “Are We Teaching The Wrong Programming Languages?” I like Frank’s posts because he uses data and makes charts.
Today’s post was particularly interesting to me since we are in the middle of hiring many developers at AccelerEyes and have trouble finding ace developers, even out of Georgia Tech. So I have a different view on how to dissect the numbers Frank shared around programming language job openings.
My key point is that programming languages are not all created equally. Some imply a proficiency level that others do not. For example, C/C++ skills are required to master computer hardware, e.g. operating systems are designed in C/C++. For another example, the scientific languages are the staple for demonstrating mastery of math, science, and engineering concepts. In both cases, the languages themselves are not important, but the mastery is and sets apart top talent from the crowd.
If students can learn to fully master the computer or master some meaningful science and engineering, there are many more opportunities open to them than if they merely know how to develop a website or maintain traditional IT infrastructure.
Javascript, PHP, HTML, CSS, database management, and many other web-based technologies are not as inherently indicative of top technical talent. Most job postings citing those skills do not require an education from a top school like Georgia Tech. Rather, technical community colleges can be more efficient at training students for those roles, especially when coupled with elements of good design.
Despite the fact that there are more “web” jobs on LinkedIn, this seemingly great supply of jobs does not mean that top schools should try to educate for those less technical positions. Rather, proficiency in C/C++ and the scientific languages is more awesome because:
- You can command higher-paying jobs with those skills
- You can do more than develop websites, apps, or IT work
- You can easily pick up website technologies along the way (most in fact do), and you can do the “web” jobs too if you want
So my advice is:
- For top-school-attending computer science students: Become really proficient at C/C++ and master the difficult concepts. Learn some useful database and web technologies along the way.
- For top-school-attending engineering students: Learn your engineering discipline really well and master its scientific languages/tools. Learn some useful database and web technologies along the way.
- For everyone else: Consider a program, such as this one from Chattahoochee Technical College, that zones in on Java, PHP, Web development, Mobile app development, SQL, etc. You can graduate in 2 years and walk away with an awesome salary if you kick butt.
At AccelerEyes we are looking for ace developers in C/C++ and Fortran, with a high-proficiency at parallel processing (all hardware is parallel these days). We are looking for deep software skills in image processing, signal processing, mathematics, statistics, bioinformatics, and other computational sciences. Experience with CUDA, OpenCL, OpenMP, and/or OpenCV are a plus. If you know anyone that fits the bill, send them my way!
What programming languages do you recommend for study at top universities? What skills are you looking for in your startup?
Related articles
- Programming Should Have a High Barrier to Entry
- How are programming languages and foundations of mathematics related?
- Everybody is wrong! (About language popularity)
- Silicon Valley salaries: developers make big bank in 2012 (infographic) | VentureBeat
- PHP Development Is Becoming Increasingly Popular
- Java reclaims No.1 language spot thanks to Android
- Next Project: Learning PHP