Why The Best Coders Still Need To Know C

Early career software developers considering which languages to specialise in, looking at charts such as PYPL as well as listening to the general buzz, would naturally look to Java, Python and JavaScript (OK, OK and probably something cool like Go, Rust or Scala). This is all fun, highly productive stuff but ignores a huge and growing need in the software industry: The Internet of Things.

The IoT is growing fast and with it grows demand for skilled low level software developers with an aptitude for efficient software. CIO.com recently suggested that demand for Microcontroller Programmers would be increasing at 225% year over year.

This means that C/C++ developers will be in increasing demand for the foreseeable future. Moreover, the type of development expertise these platform developers will need is distinctly different from the end user focus required of application developers. Platform developers must understand the underlying capabilities and limitations of the hardware and operating system in order to create high performance, low energy foundations for the application developers to build products on.

Strangely, this combination of skills is becoming more and more scarce. Undergraduate courses and the increasingly popular code academies often take the platform for granted and focus on the application layer and dynamic languages.

This is good news for those who invest the time and effort in learning the at times archaic principles of low level software and computer architecture. A bright future awaits the aspiring Embedded Software developer.