5 ms·
I dunno. I work on OS development. I do that level of programming fairly frequently. It's not hard, even on modern computers. You just have to realize the consu
by bregma 5y ago
I dunno. I work on OS development. I do that level of programming fairly frequently. It's not hard, even on modern computers. You just have to realize the consumer UI is just a thick layer of icing made from high-fructose corn syrup and high-ratio shortening but underneath that is just regular old computer programming, just like the Vic20. APIs usually exist at the OS level to control all the hardware (on Unix, it's ioctl() and devctl() and similar, and in the kernel itself it's called 'device driver' programming.
If you're interested, you may find it easier than you think to program computers instead of scripting UIs or server farms. A hobby or career in OS development can be satisfying and rewarding.
- necovek 5y agoI find it's hard to reasonably switch careers once you get to a high earning position in web development. I've long had a big interest in lower level stuff: I've done a minimal OS in high school (boot sector in assembly, first-fit malloc and round-robin scheduler on 32-bit x86 in high school — I remember bringing a bootable 3.5" floppy into my graduation project presentation with teachers being surprised: "you've got something running, too?"), and while I've always strived for a more direct-to-hardware job, I don't trust I can apply for any of the relevant positions and expect anything but a junior-ish salary. I do believe that I'd easily pick it up (eg. I can easily spot potential races and common problems with async code in other people's code, which is usually the trickiest problem though I'd expect hw bugs to be even worse in low-level stuff), but I am not sure I can sell myself well enough to get a position that matches my skills (since experience is limited). Other than spending time away from work (which I lack because of the family), do you have any other tips on how to break into the field? Remote from a EU timezone a requirement :)
- exmadscientist 5y agoIt's easier than you'd think to make the transition if you're willing to go into embedded development. Pretty much any demo of competence can get you hired as demand is high and the work is challenging. Pick up a Nucleo or mbed board and make something cool!
- necovek 5y ago> Pick up a Nucleo or mbed board and make something cool! That's currently in conflict with my life circumstances ;-) The number of "projects" I wish I could do sitting on my shelves already surpasses the time I can find to spend on them. Basically, I want to be paid to "learn," and I think I'll be fair value in a month or two. So the question is how to get there? ;-)
- _jal 5y agoAnother way of putting this is, you choose to let available opportunities shape your future career. You can do that, or you can choose to exert some control over the process.
- exmadscientist 5y agoIf you're not willing to spend ~20-40 hours getting an Arduino-class object to, say, talk to a MMC/SD/SDHC card using only your own code, no libraries (this is something I can do easily as a rusty hybrid EE-FW guy who is now mostly EE), then I don't know what to suggest.
- necovek 5y agoThank you for conflating "not willing" with "unable". Also on suggesting how a 20-40h project will make me appear as an expert in embedded programming.
- exmadscientist 5y ago> Also on suggesting how a 20-40h project will make me appear as an expert in embedded programming. That was actually my real point. For many smaller companies, it will. General programming experience plus any honest signal, even small, of low-level qualification will get you attention. We get lots of generalist candidates for our embedded positions and the #1 easiest high-signal filter for us is "how do we know they're actually interested in embedded?" Pass that, and things can open up for you.
- firatsarlar 5y agoAs a thing, OS development requires some UI to interact with low level things, .. And for me most satisfying - put reward aside , as I'm not interested in material part -, thing is Game Development, tools to see parts - debug lights bounce with a terminal - of render process ( Some may check Unreal Engine, or any other game engine UI's ), Even I don't fill comfortable enough with blueprint kind of low level UI's as oppose to text programming ( double d = 10.0 is easy for me to drag and drop a variable ) Material always have many faces. UI is one of them.
- rightbyte 5y agoIn theory I could deep dive into my Debian machine, but there are just so many things. Just think of the USB protocol compared to eg. a wanna-be implementation of RS232. There is no way I could get deep understanding of the whole system. That said, I think you are correct in that there are less magic than you think when looking at the surface.
- the_only_law 5y ago> but underneath that is just regular old computer programming, just like the Vic20. Yeah, unfortunately I thought that I could easily understand modern computers after having played around with the 6502 family a lot. Only to learn that even at the lowest level there's a lot of legacy cruft and decades worth of added abstractions.