With the rise of low-cost platforms like the Arduino and growing interest in the Internet of Things (IoT), a new category of embedded developers is arising. Many of this new cadre are not coming from electronics or computer science backgrounds, but are forging their own approaches to development unbound by tradition or academic methods. Some are even learning to code not by study, but by watching others write code.
Most of us who have been in the embedded industry for a substantial length of time, say five years or longer, came to it from a formal background in electronics or computer science. We learned the craft through a combination of academic training in theory coupled with hands-on experience in the field. We then shared our understanding with others by writing articles and books, giving conference presentations, and live mentoring.
This new wave of non-traditional designers seems to have developed an alternative approach to exchanging knowledge, though. Taking advantage of the Internet's vast resources and low-barriers to entry, developers are creating a repository of instructional videos to form a kind of mentoring archive that self-learners can access at will. This is not your standard teaching format, however.
One example of this online learning approach is Twitch TV. Although this site looks on the surface to only be a means of sharing video game excursions, there is more available if you dig a bit. In the Creative channels, search for Programming and you'll come up with a list of videos on the topic. Some are recordings of presentations, while others are a kind of tutorial. The tutorials take the form of “looking over the shoulder” as the video creator narrates their activity. When originally created, these are streamed live, and have a chat line open for real-time question-and-answer. The recorded version then gets archived for latecomers' use.
Another learning resource that uses the same “over the shoulder” video format as Twitch is LiveCoding. Unlike Twitch, however, Live Coding focuses exclusively on coding. It is also more organized in its approach to offering instruction than Twitch. LiveCoding organizes its content by programming language (Java, Python, Ruby, C/C++, etc.), some with tens of thousands of videos available. Within each of those language categories, the site offers a choice of beginner, intermediate, or advanced level topics.
These bold experiments in knowledge transfer are intriguing but, for me, unsatisfying.