A hardware engineer's guide to becoming a software expert
Focus on a particular specialization within the field
Despite societies or the project managers’ belief that an engineer should be an expert in everything from concept inception through production, being an expert in everything is unrealistic. There just isn’t enough time in the day or enough resources to be an all-encompassing expert. The obvious solution is to specialize by finding a niche within the field that is interesting and in-demand then focus in on it. Only when an engineer has achieved mastery of that technology or skill and maintaining it becomes easy should the engineer look to branch out into other niches. An eye should always be kept on industries view of the specialization so that if it starts to become dated or lose relevance an engineer can move on to a new expertise before becoming an accidental fossil.
Set aside time every week to stay current
Time is a slippery beast and if it isn’t closely monitored it easily gets away from us. The demands of life, work and project loads dominate an engineers’ time and can easily fill it beyond capacity. It is therefore necessary to set predefined times each week to learn and maintain areas of expertise. Lunch hours or weekend mornings are great times to steal some time that might otherwise go to waste. The amount of time allotted greatly depends on the area of interest and how rapidly it changes. As little as an hour a week or as much as a day a week could be spent honing these skills. Either way, if you don’t use it you lose it!
Read books and magazines
A great way to spend that set a side time is reading books and magazines. Every industry has a list of go to media sources and literature that is fundamental to every engineer’s knowledge base. The embedded software industry is no different. There are a number of books that the author has found to be absolutely fundamental to learning and understanding embedded software in general. A few examples include:
- Embedded Software Primer by David Simon
- The Art of Designing Embedded Systems by Jack Ganssle
- Making Embedded Systems by Elecia White
Get involved in Social Media
In general, social media can at times seem overwhelming, uninteresting and a waste of time. However, properly utilizing these channels can prove to be a complete gem. There are untold amounts of knowledge whizzing through cyberspace at any moment, waiting to be discovered and utilized. There are articles, tips and tricks, links to websites and much more that would never come to the attention of an engineer unless they are engaged in social media. Technical conversations that would otherwise be overlooked but that can easily be discovered by simply discovering relevant hash tags. The information floating out there separates the professional from the expert.
Simply consuming the media though will only get an engineer so far. To get the full impact of social media involvement should include posting their knowledge, expertise and experiences. It not only helps keep the lessons learned visible but can enrich others who will benefit from the information. There are untold numbers of young engineers on social media who could learn from the gray haired and seasoned engineer. In an attempt to stimulate this type of effort the author has been posting daily tips on Twitter to the hashtag #EmbeddedTips. Get involved in the conversation by not only reading these tips but please also post your own!
Use Newsletters to get the latest tips and tricks
One of the best ways to become an expert in a niche is to sign-up for newsletters that automatically deliver the cutting-edge techniques directly to email. The best example of this includes UBM newsletters that span EDN, EE Times, Embedded and so forth. Every week relevant articles and stories are sent which saves countless hours of searching and trolling the internet. There are also software experts such as Jack Ganssle and Michael Barr who have periodic newsletters focusing in on niche topics within the industry. The author also has a monthly embedded newsletter with C basics, tips and tricks, tools of the trade and highlights of interesting news. (Those interested can register at http://bit.ly/156NXX8 ).
Attend a conference or webinar
Conferences and webinars are a great place to gain expertise. Design West is one of the best examples for embedded software. Not only are there nearly a weeks’ worth of courses and training sessions covering every topic imaginable, but the conference is full of industry experts. Conferences are the perfect time to get one-on-one time with those experts, ask questions and pick their brains and experiences. The rate of knowledge expansion at these conferences is absolutely amazing! But sometimes companies either don’t allow or don’t have time to attend a conference. In these cases attending online training and webinars can be just as good. IEEE Spectrum periodically sponsors webinars with industry experts that the author has found to be superb! Try to attend at least one conference a year and a webinar monthly.
Become an IEEE Certified Software Development Professional
There are few things that hint at expertise more than fancy titles and letters after someone’s name. There are a few certification programs within the software industry that an engineer can use to show expertise. These include professional engineering exams and the IEEE Certified Software Development Professional (CSDP). Passing these exams demonstrates a minimum understanding and knowledge set in order to pass the exams. In addition, they also have experience requirements. Becoming certified shows that not only does the engineer have book smarts but they have also spent time in the field actually writing software! These types of certifications usually give employers a warm fuzzy feeling that their employee knows what they are doing.
Don’t forget to get experience
Book learning and reading is great but an engineer can’t be an expert without practical experience! They have to sit down and wrestle with the code! Find an inexpensive development kit and start coding. Come up with a project, an invention or just pick an interesting problem and dive into the software and solve it. There will be problems and skills learned by doing this that can never be learned by simply reading an article or book.
At the end of the day though, whether the engineer becomes an expert or simply stays on top of developing technologies, they shouldn’t forget to enjoy solving the problems encountered. After all, that’s one of the things that engineers are best at.
Jacob Beningo is a lecturer and consultant on embedded system design. He works with companies to develop quality and robust products and overcome their embedded design challenges. For additional tips and tricks check out his website at www.beningo.com, twitter @Jacob_Beningo and #EmbeddedTips or feel free to contact him at firstname.lastname@example.org.