To Get A Job at Tesla, Consider Learning C or C++
By: Sylvain Kalache, Holberton SchoolMost institutions that train software engineers are focusing on new programming languages and frameworks. But established so-called "low level" programming languages, like C and C++, are still widely used. In fact, research from Github shows that C and C++ are still among the top 10 most widely used programming languages.
Two great examples of companies that rely on "low-level" programming are Tesla and Nvidia. Both names are synonymous with innovation: Tesla is famous for building the next generation of cars and Nvidia is a well-known designer of graphic cards for artificial intelligence algorithms and video games.
Alumni from Holberton School have seen first-hand how"low level" languages help Tesla and Nvidia build more efficiently.Holberton student Anne Cognet joined the Tesla Autopilot team, which is building the future of self-driving cars. The team is responsible for enhancing the efficiency of the entire embedded software development organization by helping catch bugs at the earliest stage and improving the overall quality of the project.
"Most of the Software in Tesla cars is C or C++," said Mehdi Amini, Engineering Manager at Tesla. "Anne is working on a critical piece of software that collects information when a process fails, that requires a solid understanding of low-level programming."
C has the advantage of being able to run on pretty much any type of system and is very light. It is widely used in IoT, sensors and most embedded systems. Because it is very close to the OS, it allows engineers to code efficiently and optimize software. This is critical when your system is dealing with real-time constraints or when hardware resources are limited.
"No programming language has come close to C or C++ when it comes to efficiency. Most modern programming languages with garbage collectors are non-deterministic when it comes to memory management, that's simply not suitable for critical embedded systems such as the ones in Tesla cars," said Mehdi.
Swati Gupta is a fan of the language: "With C, you really get to understand how memory is working, how the kernel is working. You can literally read the Linux source code- how cool is that?"
Gupta joined Nvidia after just 9 months at Holberton. Her team is working on making Nvidia GPU compatible with any container technology such as Docker or Kubernetes, and everything is written in C and Go. "I love C because it involves a lot of hardware manipulation. You can play with a lot of cool sensors, embedded systems and control actual physical things."
Holberton's full-stack curriculum covers all the necessary basics for any great software engineer; system-engineering, high-level programming, and low-level programming. Students use C as their first programming language for Holberton projects because it's a really rigorous language. The language is low-level, so students acquire a solid understanding of how a programming language works. This foundation makes them stronger developers.
By starting with one of the toughest programming languages, students are better equipped to learn others languages, since they are much easier in comparison. If you want to work for companies dealing with hardware such as NASA, SpaceX, Intel, Tesla or Nvidia, forget about the Javascript framework, and aim for C! And the good new is that Holberton has a solid curriculum for that!