How to decide between hardware and software design?
Because it's hard to decide between the two. #technology #computer-engineering #technician
3 answers
Rob’s Answer
Hi Haydon!
Great question. I don't have much experience in hardware but I've worked as a Software Engineer for the past 10 years. I hope my perspective is helpful.
The obvious difference is that hardware is tangible, whereas software is intangible. Hardware design therefore involves more hands on-work, such as designing circuits, creating blueprints, evaluating hardware specifications, and testing computer hardware components to make it work most effeciently with software. You would likely work in a lab and work with hardware vendors. There would be no software without hardware.
Software design, on the other hand, is less tangible and more conceptual. Instead of something physical, you are designing an idea. There are many types of software design: creating the look and feel of a web page, creating APIs for systems to connect with each other, making back-end servers run efficiently, designing databases to store data most efficiently, and more. It is faster paced than hardware engineering -- you generally have all the resources you need with a laptop and Google. You will most likely spend most of your time in front of a computer screen reading and writing code.
There is a sub-field of software engineering called embedded programming. If you can't decide between hardware and software you might want to look into it. Embedded programming is basically writing software to run on specialized hardware. It could be the software running in your microwave, a cell phone, network router, or a robot going into space. The challenge of embedded programming is that the programmer really needs to pay attention to hardware constraints. You may have only a small amount of memory to work with, strict real-time performance constraints, or other requirements not normally present in a software project.
As far as salary goes, it varies widely by location, but I think hardware and software engineer salaries are comparable. In college software engineers typically study Computer Science and hardware engineers study Electrical Engineering, but there is definitely some overlap between the two.
I hope this helps answer your question.
Rob
Amelio Vázquez-Reina
Amelio’s Answer
Disclosure: My background is in electrical engineering, and I have worked in software for the last 8 years, so I have a bit of experience in both fields.
I would recommend that you practice a bit with both, if you can, and see how much you enjoy them. Other than that, it is never a bad idea to consider the job prospects and future opportunities that both fields have to offer.
Regarding the first point, fortunately today it is easy to learn and practice software design. GitHub (the website), for example, hosts code for thousands open-source projects where anyone can inspect and contribute with their ideas and code, and experience what it is like to design write software. For hardware design, getting hands-on experience may be a bit more difficult, but if your school has an electronics lab, or if you can borrow an electronics kit from someone else, that may help you get started! I would also recommend that you look at some of these projects:
- http://en.wikipedia.org/wiki/List_of_open_source_hardware_projects
Regarding the second point, my experience biases me, but I would probably say that the job market for software design is probably larger and more diverse than the market for hardware design at this point.
Other than that, the two fields are not necessarily exclusive. Hardware design often involves writing software that simulate and optimize circuit boards.
Mike’s Answer
This is a really insightful question as a lot of people don't even think about the difference. There are a couple of ways of looking at the decision.
First, you might look at the kind of things you enjoy. Are you the type of person who enjoys working on things with your hands or things you can physically visualize? If so, hardware may be closer to your interests. Networks and hardware can be thought of like things in the physical world and are generally subject to similar constraints. On the other hand, if you're someone who's comfortable and enjoys the idea of writing code that can do anything (but you can never actually touch it) then Software is probably for you.
The other aspect to the decision might be the type of company you want to work for in the future. Many small companies and start ups have moved away from buying, designing and managing their own hardware/network because of cloud based offerings from companies like Amazon Web Services. These companies tend to focus more on software and leave the hardware and networks to the big guys. So, if you want to work in a small start up you may have a better chance on the software side of things.