• Support PF! Buy your school textbooks, materials and every day products Here!

Hardware programmer vs software programmer

  • Thread starter Pithikos
  • Start date
  • #1
55
1

Main Question or Discussion Point

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?
 

Answers and Replies

  • #2
chiro
Science Advisor
4,790
131
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
557
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?
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
55
1
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
chiro
Science Advisor
4,790
131
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 Threads on Hardware programmer vs software programmer

  • Last Post
Replies
8
Views
3K
  • Last Post
Replies
0
Views
2K
Replies
0
Views
2K
Replies
7
Views
2K
  • Last Post
Replies
0
Views
1K
Replies
1
Views
361
Replies
0
Views
1K
Replies
0
Views
3K
Replies
0
Views
963
Top