"How important is learning Assembly for #embedded jobs?"
@lupyuen I can tell you as someone who does a lot of hiring, I would never hire an embedded programmer who didnt know assembly even if we didnt code primarily in assembly.
It helps to know what the machine is doing, but it really depends on the situation.
These days with the wide diversity of languages and hardware and rapidity of change and scarcity of talent, unless you're hiring for a one-off, you look for someone who can quickly *learn* what you need, not necessary someone who already knows it.
The problem is, these are skills they should have learned on their own. If they havent then even if i hire them and let them come up to speed they likely arent going to be a very good programmer IMO. Good programmers are motivated to learn the basic skills on their own time just out of love for what they do.
Keep in mind I wouldnt require assembly for an ordinary programmer, but for an embedded programmer, that is just fundamental.
The fundamental skill that any engineer or programmer must have is the ability to learn new languages and systems quickly, because they change so quickly. If someone has been busy working in one particular area or in many areas, but not doing the specific work that you are looking for, they may be very experienced, just not on a particular architecture or language or whatever. It just often makes more sense to hire someone and give them a week or so to learn a new language than it does to keep a requisition open for months at a time.
@freemo @Pat I am also with @freemo here. The particular assembler variant is not that important (take a day to get the hang of most), but being comfortable in 2-3 or of them is expected. But even more so, being comfortable reading datasheets on how the microcontroller peripherals work and knowing what interrupts (and their priorities) are. Unfortunately, I have seen "I have used Linux on a single-board computer" think that qualifies as "embedded programmer". *Sigh*
@niclas @freemo @Pat i have played with embedded stuff (msp430) in the past, most of that was using C though. i've also built a small toy processor during a course in university and it was really fun. i'd really love to do embedded stuff, it's just very hard to get embedded jobs here. everyone just wants boring shitty webapps here :)
i think knowing assembler and how machines work in general is very important knowledge for every programmer, it enables you to do much better reasoning about algorithmic tradeoffs. even when doing JS etc. those languages run on simulations of hardware after all :)
@freemo
I agree. I think we're on the same page here. I'm not sure what you're hiring guys for, but yes they'd need to know what a register is, what a port is, bit-wise instructions, etc., for just about anything. You couldn't hire someone who only used, i.e., Javascript or something like that.