When I was studying electronics at my university there were 3 possible minors you could choose from: manufacturing, communications and control. I chose control as it was the one that most appealed to me, I also figured it was where I would get the most embedded development experience, my university hadn’t figured out a program specific to embedded design by then. I loved it, it was so much fun to get to see things moving, to get to influence physical variables I could experience. I have always been a fan of experience, and there was a peculiar tradeoff in that focus, I ignored theory. I loved programming, building circuits, calibrating them to get them to work better, but I never spent that much amount of time learning the math behind it all. Needless to say, I did study it, just not with so much passion as I did debugging my code or connecting things to other things. By the time I finished college I had been working as a technician for a company called Pegasus Control for about two years, when I finished they offered a position as a development engineer and I took it. Ironically enough, I didn’t again do much actual control. The systems we made did have some control features, but not the type where you have to use Matlab and spend hours figuring out coeficients, it was mostly measurement, and I enjoyed it all, but the little theory I had left got hidden in some corner of my brain.
In my current position I am now developing an actual motor control application and having to undig all those memories. I can handle all the programming, I understand the system concept, the inputs, outputs, I have basically built the whole system, but now I need to program some actual math into the thing. I’ve been reading application notes, books, etc. I have also found that there is enough code out there for me to reuse and simply ignore I don’t fully understand the math and now I’m wondering, should I? When I was learning programing I learned about this great concept called reusability, then, in the work place, reusability was the way to go, save time and get the product out the door as soon as possible. I then jumped from reusing to forcing others to reuse: “use this code, it works, don’t worry about it”. Now I’m back in the position where I can choose to reuse ignoring how it works, and I’m bothered byt it. I wasn’t bothered when my boss was breathing down my neck expecting everything to be before schedule (that is, when there actually was a schedule), but now I am, I know if I paste that function there it’ll work, it was written by a fellow who knows more about tha subject than me, and if I could dig out all these memories I have of my control theory, instead of painfully reading about them all again, I could get this thing done tomorrow and move on to the next project. I wish I had been a little more academic back then.
About a week ago a ran into my control professor from college, a really great teacher who has been teaching at my university for a lot of years. He is a control PHD. He was the one that motivated me to learn VHDL almost entirely by myself one semester just to see if I could implement a control system in an FPGA and thanks to whom I almost broke a laboratory bench trying to the position of control a 90 volt DC motor (I got some cool bruises as well). I told him that now I am working with real control and that I was really having fun with it and that if he was interested I could go to his class and talk to the students about the experience or maybe even colaborate on getting to do an actual motor control project (or some part of it) as interns. Turns out the university dropped the control program, now they are just getting one introductory control subject as part of the basic curriculum and that is it. I was sad to know this, I think he also is bummed out about it. Now they are focusing on teaching the students the immediate skills they need to actually get a job. This makes a lot of practical sense, I am quite sure that most of the skills I use for my day to day job were learned being an intern/technician and then in my first years as an engineer. But I learned them, it was just a lot of work. I wonder if I could have learned control that way, at this moment I am able to study back all this theory, because I took some subjects that covered all that material, now I am just remembering. Technology moves at such a fast pace I am concerned that adjusting college plans to the more recent trends will start to take the focus out of the basic theory that is behind all that we do. Maybe in the near future, there will be so much knowledge just on the embedded software world that a new college program will have to be made. Maybe some universities are already doing it. Maybe in time, theory will be only thought in higher degree programs, maybe only PHDs will know how to design transistor circuits in the future. Maybe I’m just exagerating…I usually am. What do you think?