Becoming A Software Engineer
We have talked earlier about the general definition of computer software engineer. We also mentioned the two different types of computer software engineers, Application and Systems engineers. But there are several sub fields in software engineer that are extremely challenging with applications in nearly everything we use in our daily lives. One of those fields is embedded software engineering. Before we talk about embedding software engineering or explain what an embedded software engineer is however, we need to define embedded computers.
The actual definition of embedded computers is a bit slippery however. The best way is to find a single use computer, one that only serves one or two functions, and you will understand what and embedded computer is. If your wrist watch is digital there is a good chance it contains an embedded computer, with an operating system, CPU (microprocessor) and memory. There is no doubt that the cell phone in your pocket has an embedded computer and if you are driving a late model car you will have several embedded computers inside. But embedded get much larger indeed.. The nations entire air traffic control system is composed of one large embedded computer that is composed of thousands of much smaller embedded computers. Many industries, the auto and nuclear power most notably, literally could not stay in business without extensive use of embedded computers. Recently released on the market is an “intelligent” thermometer which is in essence an embedded computer.
But embedded computers are hardware and hardware needs software to function. This is exactly what and embedded software engineer does. The reason why this branch of engineering is so specialized is because of the differences in the way the hardware has to communicate with systems and applications but also how it has to communicate with systems entirely different than it is. Embedded software contains the need for a great deal more multi-threading than say, PCs do and this raised the level of the bar because now you have added another dimension, Time, that your code has to adhere to. Each application and operating system must work across a variety of architectures synchronously, without a flaw.
An embedded software engineer can be involved in projects in all sizes. Your job will still be classified as either an application or a systems engineer, but if this is the direct you have chosen as your major you will need to adjust your class schedule to compensate for the change. This is especially important if you are planning to be an systems engineer. The operating systems in embedded computers are most ofttimes far different that standard operating systems. These systems are required to work in real time so the amount of multi-threading is increased significantly.
© 2013 How To Become A Software Engineer