@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.

@freemo @lupyuen

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.

@Pat

If someone can quickly learn, has been in embedded tech for a while, and is a good coder, then I suspect they already would have learned on their own.

If you are new I might see it.

@lupyuen

@freemo @lupyuen

With the scarcity of talent, it often takes less time to hire someone and let them come up to speed than if you wait for someone to become available with the exact skill-set you're looking for.

@Pat

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.

@lupyuen

@freemo @lupyuen

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.

@Pat I never said they had to know the assembly specific to the ahrdware I needed to hire them for. But I do expect them to have done assembly on any embedded system. Again entry level who doesnt even have college experience, maybe. But if it is senior level then no senior level assumes experience and you simply arent senior level embedded dev if you havent ever done assembly.

Follow

@Pat That would be like a programmer who never used a computer before, or a doctor who doesnt know what any of the major organs are.

@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.

@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 :)

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.