Hardware programmer vs software programmer

  • Thread starter Thread starter Pithikos
  • Start date Start date
  • Tags Tags
    Hardware Software
Click For Summary
SUMMARY

This discussion contrasts hardware programming with software programming, highlighting the appeal of physical interaction with materials such as microcontrollers. Participants express a desire for a more hands-on approach, with one user contemplating a shift from Computer Science to Electronics due to dissatisfaction with abstract programming in Java. The conversation emphasizes the interchangeability of roles in industrial settings and the importance of understanding architecture manuals and instruction sets for hardware programming. Additionally, the feasibility of developing multi-platform projects like an MP3 player on Linux is affirmed.

PREREQUISITES
  • Understanding of microcontroller programming
  • Familiarity with Linux development and system libraries
  • Knowledge of architecture manuals and instruction sets
  • Basic programming skills in C and Java
NEXT STEPS
  • Research microcontroller programming techniques and tools
  • Explore Linux development for multimedia applications
  • Study architecture manuals for specific microcontrollers
  • Learn about creating device drivers for hardware integration
USEFUL FOR

This discussion is beneficial for computer science students, aspiring hardware programmers, electronics enthusiasts, and anyone interested in integrating software with physical devices.

Pithikos
Messages
55
Reaction score
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
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?
 
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.
 
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?
 
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.
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
1K
  • · Replies 204 ·
7
Replies
204
Views
12K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 29 ·
Replies
29
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 17 ·
Replies
17
Views
8K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
9
Views
4K
Replies
10
Views
5K