Embedded engineers face many challenges when developing an embedded product, but one challenge engineers face that is often overlooked is how to maintain and develop their embedded systems skills. Society often expects us to be perfect and all-knowing, but the fact is we humans are far from it. It’s a well-known fact that people forget 95% of what they hear after 72 hours! I don’t want to admit that my memory is not a steel trap, but I recently watched a webinar I put together several years ago and I walked away with “new” tidbits and tricks on how to design embedded systems. (Obviously they weren’t new, simply refreshed knowledge). In this post, we will explore several tips for maintaining and developing embedded system skills starting with highest value opportunities.
Tip #1 – Find a Mentor or Advisor
The clients that I work with that grow the most and achieve the best results are clients that work with me in an advisory / mentoring relationship. There’s nothing like working with someone who has already done what you have done and can share their experiences, walk through code, point out useful resources and act as a sounding board. I mentioned earlier that we aren’t perfect and in fact, we are often better when we put our minds together. I’ve mentored individual engineers and entire teams through-out their development cycle to guide their architecture development, improve their processes, test and enhance teams’ skills or whatever the need may be.
I wouldn’t preach mentoring and advising though if I didn’t also use advisors and mentors myself. I’ve found that having a mentor myself in various areas has helped to accelerate my own growth and skill-set.
Tip #2 – Attend Webinars
Webinars are a great way to get highlights for new techniques and technologies that are available to developers. Nearly every company, vendor and distributor now offer a webinar at least quarterly if not more often. The trick with webinars is to find the ones that aren’t all marketing fluff, but that are able to balance some marketing with good technical content. Webinars are often a way for a company to promote their products and services to potential clients so they can sometimes be way too marketing focus. (I’ve with clients before who view webinars as a way to hard sell attendees on their products while I view webinars as a great way to share value and insights).
I attend webinars when the content interests me, and it’s focused around cutting edge technologies that I am in the process of learning. I don’t attend them too often, but that is because I produce a dozen webinars a year and I get more out of putting the webinar together myself than I do from watching someone else’s. That said, I’d recommend that you sign-up for my newsletter so that you can see when I’m putting on webinars and also receive other useful content as I develop it. I would also watch the DesignNews Continuing Education Center and IEEE Computer Society. Then of course your favorite vendors.
Tip #3 – Online Training Courses
The thing I love about the internet is that there are so many online resources that allow a developer to enhance their skills on their own time as needed. Developers can leverage resources like YouTube for training videos. They can also look at some of the low-cost online courses that they can use to enhance their skills for $100 or less. There are online university courses that are sometimes offered online as well. I’m a big fan of online, self-paced courses because through my own online courses I’ve seen developers retain more of the course work when they are able to spread it out over a few weeks, versus having to sit through material for 4 days straight. The mind needs time and repetition in order to learn new skills.
Tip #4 – Attend In-person Workshops
Despite how useful online content can be, I believe that there is still a place for in-person workshops. These could be traditional training courses, but personally I view workshops to be collaborative endeavors that don’t necessarily follow a strict curriculum. For example, I often run RTOS workshops for clients where I will come on-site for several days. We might use some of my course materials and labs as a base for the workshop, but I interlace curriculum with break-out sessions where we apply the material to the client’s current development efforts. We will often solve architectural issues, debug issues or fully trace the code in the workshop. The workshop transfers skills and can dramatically progress the client’s development effort at the same time. Workshops can be an incredible ROI for businesses and the developers that attend them.
Tip #5 – Read Engineering Books
Books can be an incredible source of knowledge for embedded systems developers looking to maintain and develop a few new skills. Developers do need to be a little bit careful thought when they pick out books to read. There are many good books about embedded systems on the market, but because books can be available for sometimes decades at a time, developers have to be careful that the knowledge in the book is still current and not outdated.
According to the 2019 Aspencore Embedded Marketing Study, embedded systems developers read 3.1 technical books per year. This isn’t too bad. If I had my way, I would have engineers read a technical book per quarter. My personal reading goals are to read:
- 1 technical book per month
- 1 business related book per month
- 1 “fun” book per month
Obviously, it’s not the rate at which you go through the material that matters. The concern should be on absorbing the material and putting it into practice.
The modern engineer has a plethora of resources available to help them maintain and grow their embedded skills. In this post, we’ve explored several options that are available to developers. What additional methods have you found helpful to grow and maintain your own skills?