Learning Is Not Just for New Engineers

It has been a few months, but, if you recall, in my last few blogs I focused a good bit on the next generation of engineers with emphasis on teaching these fresh new minds. Something that should not be overlooked is the continual learning of experienced engineers. Learning does not stop once that engineering degree is obtained. Honestly, it is truly at that point that learning really begins. As I look back on my time as an engineer I am continually amazed at how things have changed over the years and how much I have had to learn since I obtained that engineering degree several years ago. My graduate advisor often liked to point out how important it was for an electrical engineer to learn software in addition to all the hardware that we studied. All that hardware was my favorite part though and I thoroughly enjoyed all those classes on diodes, BJTs (bipolar junction transistors), and MOSFETs (metal oxide semiconductor field effect transistors).

It was fun to use these as building blocks to make more complex circuits like operational amplifiers (op amps). I recall one of my most enjoyable semesters when I took an advanced electronics class where we had to design and simulate first a BJT op amp, then a MOSFET op amp, and finally, a Bi-CMOS op amp using BJTs and MOSFETs. I stayed so focused on hardware that I have to admit I did not quite see the point in my advisor’s view on software. I did however learn how to implement several different C programs to generate different Built-In Self-Test (BIST) routines for the FPGA that was the focus my master’s thesis. Even after that I did not fully see the potential advantages of software. I was too focused on the hardware and how much I enjoyed it.

Fast forward a few years to where I was a working engineer with a few years under my belt and I was exposed to automated testing on the lab bench. I spent a good bit of time early as an engineer collecting data manually for various end customer applications. I had the fortune of being exposed at that time to Agilent Vee (now Keysight Vee). I included an example below to give a glimpse of the user programming interface.

Example Keysight Vee Program (image courtesy of

Example Keysight Vee Program (image courtesy of

One of my coworkers used this language to create automated test routines for the power amplifiers that we were working on at the time. I was quite impressed with how much data could be gathered in such a short amount of time. I began to work with it myself and eventually ended up modifying the program to do various other measurements to suit my purposes. It was relatively easy to learn how to program in Agilent Vee because the structure uses a lot of blocks and is very visual in nature. It made things much simpler to see when I could put blocks together to make program constructs. In a way it is similar to LabVIEW since it uses a more visual approach to programming. However, please do not mistake this comparison for saying that these two languages are the same as they are ultimately quite different.

As I moved on in my career and landed at Analog Devices I was exposed to Python and have been thoroughly impressed by the capability of this language. I actually began my time at Analog Devices doing a good bit of manual data collection as I had in my first stop as an engineer. The reason was largely because of the various product questions and data requests from customers that I have seen working as an applications engineer. It can be difficult to figure out how exactly to automate measurements when the requests from customer can be so varied. However, taking a look at the broader view and figuring out the common pieces to the requests made a big difference. For example, figuring how to collect data for multiple customer questions at once is a great way to increase efficiency.

The more I worked with ADCs the more I found Python useful for automating measurements to collect a large amount of data in a short time. Not only could that large amount of data be collected but I could also work on other tasks while the automated measurements were running. In addition taking frequency sweep data allowed me to see product performance at a much finer scale. This allowed me to pick up on things that might have otherwise not be seen doing manual sweeps with less data points.

I brought that skill set with me over to the group where I am currently at Analog Devices supporting space products. If you recall from several months back in my blogs about line and load regulation (Measuring LDO Line Regulation for a Novice and Measuring LDO Load Regulation for a Novice) I used Python scripts to perform the measurements. I copied in an excerpt below from the line regulation script that I wrote. I will not go too deep into details here but one of the great things about Python is that you can create modules for your own library of code that you can make a call to in a script which I have done below. This is just a very simple example code that only gives a small taste of the capabilities of Python.

Example Python Script (Line Regulation Measurement)

Example Python Script (Line Regulation Measurement)

I have to admit looking back that my advisor was definitely onto something. He was very much right when saying electrical engineers need to know software in addition to hardware. I did not realize then how advantageous it can be to have this skill. Even though I am very much a novice it has proven to be very useful. I have been fortunate to work around some great folks who know Python very well. I have continued to learn and Python has been just one of the many things I have learned as an experienced engineer. It is important to continue learning new skills even for the most experienced engineers. I am thankful for the opportunities I have had at each of my stops as an engineer to continue learning. Analog Devices has been a great place to learn not only because of the cutting edge technology but also the talented people at the company who are willing to share their knowledge. What have you had the opportunity to learn as either a new engineer or an experienced engineer? I would request that you please take a moment and leave a short comment about your experiences. I would love to hear your feedback about your experiences.

1 Image link:

5 comments on “Learning Is Not Just for New Engineers

  1. Victor Lorenzo
    August 10, 2017

    Nice post Jonathan. I definitively agree with you in that learning plays one key role in our engineering carrers. Programming caught my attention from the very first moment I had one computer in front of me. It was a “beautiful” NEC PC9801. Some other students enjoyed hours playing games with them, but I felt like the N88 Basic and assembler languages were the toys I was always expecting for.

    Now all of that falls in what I could call “ancient times” and I no longer use any form at all of the Basic language. LabView & LabWindows were also tools I used in the late 90's, but my last two experiences with LabView in the early 2000's were dissastrous in terms of time consumption and productivity. I spent almost two weeks programming the path planning and motion control for one smartcards embedding machine using one NI motion control board… and did not succeed. Every single change required an excessive amount of efforts. I simply switched to what were my usual programming tools (C++, C#) and in less than a week I had working the CNC milling and the Pick'n'Place modules.

    During years I've been filling my personal tools box with several useful skills, but the oldest one in the box, and the most valuable for me and most used of all is the ability to learn new things. I realy enjoy to, and also need to, learn new tricks and stuff every day.

  2. Victor Lorenzo
    August 10, 2017

    Well, this is embarrassing, but I do make some use of Basic and LabView. I have one improvised books-based stand for the LeCroy HD DSO that includes “LabView Graphical Programming, third edition” and “Visual Basic 6.0 Manual del Programador, Microsoft”. And there they do well their job. LOL.

  3. jonharris0
    August 11, 2017

    Great stuff here Victor, thanks for the comments.  I am envious and wish I would have had the knack for programming so early such as yourself.  I was not too fond of it early on (as evidenced in my blog).  I still have to work at it as it does not come naturally for me.  I can read it fairly well, but still am not very good at generating code from scratch.  I do a lot of borrowing from coworkers and a fair amount of patchwork putting it all together to do what I need.  I can modify things well enough to be dangerous at it! 🙂

  4. jessepkm
    August 12, 2017

    I greatly admire those who work with programming languages and build systems and programs of various types and functions.

    But the key to knowledge is exactly the one mentioned in the beginning, constant learning.

  5. jonharris0
    September 11, 2017

    Thanks for the great comment jessepkm!  Indeed it is admirable to have the ability to work with programming languages and generate code to do different functions.  I am very much a novice and really admire those who can put complex pieces of code together. 

    Indeed, the key is continuing to learn!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.