Traditionally, embedded software developers had eight core pillars or skills that they needed to master in order to successfully design and build an embedded product. These included the following:
- Architecture design
- Code analysis
- Defect management/debugging
- Documentation
- Language skills
- Processes and standards
- Testing
- Tools
An important and emerging area of interest for many developers, and a tool that has the potential to be a game-changer in embedded software development, is machine learning.
According to the great scholar that is Wikipedia:
"Machine learning is a field of computer science that often uses statistical techniques to give computers the ability to 'learn' with data, without being explicitly programmed."
It's important to note that in this definition, the machine is not actually learning, but is instead using...