Hardware programmer vs software programmer

In summary: If you want to do something like program micro-controllers, a good way to get some experience is to get the architecture manuals and tools (you can program these things through an external interface like through a PC with a device driver that talks to your device).Architecture manuals and tools usually include a guide to programming the microcontroller, and a guide to using the microcontroller with external hardware.
  • #1
Pithikos
55
1
I have taken Computer Science for a bit more than a year and I was concidering to maybe jump to Electronics. My main reason for this is that I don't want to spend the rest of my life on a chair. I do love sitting by the computer, scripting/programming, learning and everything but I feel that it's not worth it to make a career out of it.

So maybe Electronics is a milder version of that? More motional? Anyone who has some experience with the differences in working with hardware and software? What's the difference in the market? In lifestyle? Can a hardware programmer find a work as a software programmer and vice versa?
 
Physics news on Phys.org
  • #2
Hey Pithikos.

By hardware programming do you mean creating physical computing or electronic devices out of existing hardware units, or do you mean doing something like say creating device drivers for specific hardware units?
 
  • #3
Pithikos said:
I have taken Computer Science for a bit more than a year and I was concidering to maybe jump to Electronics. My main reason for this is that I don't want to spend the rest of my life on a chair. I do love sitting by the computer, scripting/programming, learning and everything but I feel that it's not worth it to make a career out of it.

So maybe Electronics is a milder version of that? More motional? Anyone who has some experience with the differences in working with hardware and software? What's the difference in the market? In lifestyle? Can a hardware programmer find a work as a software programmer and vice versa?

To some extent the roles are interchangeable.
Industrial production lines involves both software, hardware and mechanical integration.

Last, you may realize later in your life than sitting on a chair, as you call it, is the best way to deal with the job market.
 
  • #4
Hey Pithikos.

By hardware programming do you mean creating physical computing or electronic devices out of existing hardware units, or do you mean doing something like say creating device drivers for specific hardware units?

I am not sure myself. We just started deeper into Java at my class at the moment and it feels like it's not my thing.. I want to know exactly what I am doing. With all the abstraction I feel like this is a philosophy class and not a technical class. That's the main thing that got me into thinking. We had C earlier and I liked it more. We didn't program for any hardware what so ever so I don't have experience with that.

I would say simply that programming hardware looks like more fun and it involves some physical contact with your material(microcontrollers etc). I am an open-source fanatic and I think the best thing would be if I could be doing Linux and hardware. However I am not sure how I could bridge the two.

Something else I am a bit afraid is the math and physics. I am not that good in any of the two. However I would love the idea of being able to make my own mp3 player that runs on Linux :!)

Last, you may realize later in your life than sitting on a chair, as you call it, is the best way to deal with the job market.
How do you mean?
 
  • #5
Pithikos said:
I am not sure myself. We just started deeper into Java at my class at the moment and it feels like it's not my thing.. I want to know exactly what I am doing. With all the abstraction I feel like this is a philosophy class and not a technical class. That's the main thing that got me into thinking. We had C earlier and I liked it more. We didn't program for any hardware what so ever so I don't have experience with that.

I would say simply that programming hardware looks like more fun and it involves some physical contact with your material(microcontrollers etc). I am an open-source fanatic and I think the best thing would be if I could be doing Linux and hardware. However I am not sure how I could bridge the two.

Something else I am a bit afraid is the math and physics. I am not that good in any of the two. However I would love the idea of being able to make my own mp3 player that runs on Linux :!)

If you want to do something like program micro-controllers, a good way to get some experience is to get the architecture manuals and tools (you can program these things through an external interface like through a PC with a device driver that talks to your device).

You will usually be able to get an architecture manual and a manual that contains the instruction set. In the instruction set, details should be given about what gets modified when an instruction is taken out. For example an instruction might modify hardware flags, hardware memory, hardware registers and so on.

In terms of linux development, it's actually a lot easier now to create multi-platform projects like your MP3 player. Nowadays there are many system libraries to do your basic stuff like file management as well as supplying an uncompressed PCM format to a sound device.

For the above, you just need a documented API reference. Just a tip though, make sure that the data structures that need to be passed to these routines are correct if you are using a multi-platform code base.
 

Related to Hardware programmer vs software programmer

1. What is the difference between a hardware programmer and a software programmer?

A hardware programmer is responsible for writing code that controls and interacts with physical components, such as microchips and circuits, while a software programmer focuses on developing applications and programs that run on a computer or device.

2. Can a hardware programmer also be a software programmer?

Yes, it is possible for someone to have knowledge and skills in both hardware and software programming. However, most programmers tend to specialize in one area or the other.

3. Which type of programmer is in higher demand in the job market?

Currently, software programmers are in higher demand due to the increasing use of technology and software in various industries. However, the demand for hardware programmers is also growing as technology advances and becomes more integrated into our daily lives.

4. Do hardware programmers and software programmers use the same programming languages?

No, while there may be some overlap, hardware programmers typically use languages such as Verilog and VHDL, which are specialized for creating hardware designs and circuits. Software programmers use languages such as Java, C++, and Python, which are more commonly used for developing software applications.

5. Which type of programming requires more technical knowledge and skills?

Both hardware and software programming require a strong understanding of computer systems and programming languages. However, hardware programming may require a deeper understanding of electronics and hardware design, while software programming may require more knowledge of algorithms and data structures.

Similar threads

  • STEM Academic Advising
Replies
4
Views
1K
  • Quantum Interpretations and Foundations
6
Replies
204
Views
7K
  • STEM Academic Advising
Replies
1
Views
881
  • Programming and Computer Science
Replies
29
Views
2K
  • STEM Academic Advising
Replies
1
Views
1K
  • STEM Career Guidance
Replies
3
Views
2K
  • Programming and Computer Science
Replies
10
Views
3K
  • STEM Academic Advising
Replies
2
Views
1K
  • Programming and Computer Science
Replies
16
Views
1K
  • STEM Academic Advising
Replies
17
Views
7K
Back
Top