Two articles this week had me thinking about teaching embedded developers. The first is about getting training certificates.
There are not many certificates for C coders working on low level systems. Lots of open jobs, but no one is asking for the certificate. Did you ever wonder why? I mean there are Java certificates, ones for Microsoft tools, and of course the CISCO certified engineer program. If someone has a certified embedded programmer certificate, I have never heard of it in the past 25 years.
I think I know why. The answer is in the second article from Simple Programmer. They are talking about job security. The best way to be secure in your job is to become a two headed dragon. You need to know how to code, and build software, but the best developers also understand the business reason for the code. Understanding the requirements is the way to become a linchpin.
Embedded, by it’s very nature requires you to know the hardware. If what your building is a robot, you have to understand how robots work. Knowing the business never hurts either. If we build a flow meter, you’re going to be an expert on Reynolds numbers and pipe sizes.
So what would you certify? Do a simple C code test. Force people to use MISRA C rules? No one test would cover it, especially when the code is not coming from a professional programmer. The usual embedded developer is the coding domain expert. With luck they are also a good programmer. We have not had much luck lately.
There is a quality problem that we have to fix. The list of security issues from last week is scary. Unfortunately things have become so bad that there is legislation in process to try and require security for IoT Devices. When the government gets involved, it counts as a failure on our part. We did not keep our room clean. Now the garbage men are coming to force us to clean. I doubt that will help.
The only way to fix the poor code, and improve the security of devices in the field is for us, the embedded developers, to take time to learn the craft of programming. I know that is asking a lot. You are already an expert in your domain. Being an expert represents years of hard won knowledge. Now there is more to learn.
Well, there is always more to learn.