3

I'm currently enrolled in my second year in college, CS major. I really had something kicking for the low level stuff we covered in the previous weeks, you know bitwise operations, registers, how data is interpreted etc. . The reason why I came here is this: everyone I know in tech works as a software engineer and don't know much about the lives and work of people who chose to work closer to the machine. So the question is:

Would focusing on low level stuff narrow my career options too much, making it hard for me to find work?

6
  • I don't think "software engineer" means what you think it means, but the answer to your question is: no. Maybe just go on job websites and chunk a few different low level language names and see the salaries on offer. Commented Aug 23, 2022 at 8:04
  • 13
    Look into embedded or microcontroller programming. That's most probably what you are looking for. That's a big field on its own. Not every software developer writes websites or desktop apps.
    – jwsc
    Commented Aug 23, 2022 at 9:40
  • 9
    It sounds like you are looking at "bare metal" embedded software development. I have done this for around 40 years and trying to find more engineers that are capable of doing this is often like hunting for rocking horse poo
    – uɐɪ
    Commented Aug 23, 2022 at 10:49
  • 1
    Other parts of software development that need these skills include communications protocols and cryptography. Those who research "hacking" techniques and "side channel data leakage" to try to prevent harm also deal with such.
    – David R
    Commented Aug 23, 2022 at 14:23
  • 3
    I'd recommend taking a course in computer architecture or just trying out assembly programming and working with bare metal (something like STM discovery boards, Arduino makes things look far too easy) before making career decisions. It's difficult but mostly it's not the fun kind of difficult, just tedious.
    – ojs
    Commented Aug 23, 2022 at 18:08

5 Answers 5

15

Despite the other answers, there are certainly a lot of jobs that deal in low level programming. You could be working on:

  • High performance applications/libraries using low-level languages
  • Device driver programming
  • Embedded application programming
  • Bare-metal device programming
  • Many others
1
  • 1
    To your "many others" I'd add anything to do with industrial control systems/manufacturing. While maybe not low level programming in the sense the OP mentioned, you live your life at the bit level. Plus, it is a very portable career.
    – Peter M
    Commented Aug 24, 2022 at 14:00
5

From a statistical viewpoint, I think specialising on low-level programming would reduce the number of jobs you can apply for. However, I do think it can lead to a more rewarding career than the generic programming, partly because you get to understand how things actually work (rather than how a particular software interface works) but also because these skills are in demand.

However, you need to be aware that the closer to the hardware you get, the more you need to have some level of understanding of that hardware - instead of using a convenient software interface to debug your program, you may have to use a logic analyser, or even an oscilloscope, which can be quite intimidating at first.

So if you are thinking of this as a career option, maybe get a simple microcontroller kit, and connect it to a few sensors. Start by driving those sensors with standard library code, but then gradually replace that with your own low-level drivers, with improved or extended functionality (smaller, faster, more flexible, etc).

If you are still enthusiastic after that, then you are on the right career path.

1

The vast majority of computer-related jobs deal with installed software, either creating or managing it. Hardware-system-level programming is going to be limited to hardware manufacturers. Obviously there are jobs out there doing this, but it will be a much more limited set, and an awful lot of it will be done overseas by the manufacturer.

Regardless, this "low level" (not what I would call it) work is also software engineering.

14
  • 2
    Do you think Apple manufactures its computers in California? Commented Aug 23, 2022 at 17:17
  • 3
    The place where hardware is designed is rarely the place it is manufactured. You also don't know where OP is located.
    – Seth R
    Commented Aug 23, 2022 at 18:22
  • @GregoryCurrie what percent of jobs do you think is iOS?
    – Tiger Guy
    Commented Aug 24, 2022 at 13:30
  • 1
    @GregoryCurrie, the vast majority of computer manufacturers don't care to put "designed in California" on their devices, and everything is done in Asia.
    – Tiger Guy
    Commented Aug 24, 2022 at 13:49
  • 1
    @ojs The claim is "an awful lot of it will be done overseas by the manufacturer". This is simply incorrect. Apple is an example. There are countless others. Where I work is another example. Manufacturing is cheap in some regions, but there is no reason to suggest there is any advantage to having product development be in the same physical location as manufacturing. The idea that companies set up their engineering hubs next door to factories is actually laughable. Commented Aug 25, 2022 at 7:21
-2

everyone I know in tech works as a software engineer

Most tech jobs are not software engineering but it's useful to know the basics of SE in them.

IT is an enormous industry, the basic qualifications are just to get your foot in the door. As an engineer my very basic practical knowledge of development gives me quite a big edge over other engineers.

Govt jobs in many locales are quite easy to make a career in once you land one. They tend to have options for further training and less pressure to produce.

10
  • Are there governments that directly employ low level programmers? Just curious.
    – ojs
    Commented Aug 24, 2022 at 13:22
  • @ojs In some locations, yes. In heavily privatised environments it's less common. Commented Aug 25, 2022 at 7:23
  • @GregoryCurrie examples?
    – ojs
    Commented Aug 25, 2022 at 11:23
  • @ojs It means countries where services are commonly provided by the government, not private entities. Commented Aug 25, 2022 at 13:22
  • @GregoryCurrie I asked for examples, not for definition. Do you have examples of countries where government provides low-level programming services?
    – ojs
    Commented Aug 25, 2022 at 13:45
-9

What you say is not what most people would consider "low-level" stuff. "Registries" (not "registers") seems Windows specific, and when you need it, you really need it. Bitwise operations and how data is interpreted is just essential basic knowledge. You won't find a job where "low-level programming" is the job, just like you won't find a "turn steering wheel and use accelerator and brakes" job as a driver.

You may find a job where you can get away without it, but it will limit what you can do if you don't have this knowledge.

5
  • @JoeStrazzere: Quite obviously I'm confusing nothing, if you read my post. Whether OP is confusing something, I have no idea. Your guess that OP is talking about assembly language programming is completely unjustified. So I suppose that's one downvote from you and someone else because you're both guessing and not reading?
    – gnasher729
    Commented Aug 23, 2022 at 11:42
  • 8
    Sorry I've re-read your answer and I still think the OP is talking about "registers" and not "registries" Commented Aug 23, 2022 at 13:45
  • So matt, why did he write "registries"?
    – gnasher729
    Commented Aug 23, 2022 at 15:42
  • 8
    Because of typo or autocorrect? The rest of the post doesn't really make sense otherwise, and the Windows registry is a singular thing, not plural
    – ojs
    Commented Aug 23, 2022 at 17:36
  • 4
    The OP edited the question, registries --> registers.
    – Nobody
    Commented Aug 24, 2022 at 12:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .