One of the greatest tools available to any engineer or embedded programmer is without a question or doubt, their own mind. Yet, once an engineer has completed their degree and enters the work force their methodology and knowledge base for all intent and purpose becomes static. Unfortunately with the pressure and time constraints of the modern development cycle engineers don’t get much opportunity to leave work and continue their education to stay current on the latest trends or to learn new skills. Thankfully due to an interesting revolution in computer education there is now an opportunity to continue to learn new skills that will improve our skills and knowledge without the need to travel or even requiring a fee.
All over the web free education courses and websites are popping up. One of the sites that I have found useful is Coursera. It offers a number of computer science and engineering courses for free that can be watched at the students leisure. Most courses are fundamentals courses and don’t cover advanced topics in a discipline that one might get from attending a conference or a paid training course. However, there are a wide range of courses on various topics that would be great to attend to get up to speed on the basics of new and developing technologies.
A few examples that might be of interest to embedded systems developers is “Programming for Everybody (Python)” which can be found at https://www.coursera.org/course/pythonlearn. This course while providing a review of programming fundamentals provides a good overview of using Python. Python is becoming very popular for data analysis, web sensor connectivity and even has a spin-off now for programming real-time embedded systems.
Coursera offers quite a few interesting courses although after browsing through I noted that there are none dedicated specifically to developing embedded systems or programming in C. There are still courses on developing android applications, algorithms, digital signal processing and other general computers science courses that would still be useful for the embedded systems programmer.