Hacker News new | ask | show | jobs
by tester756 1112 days ago
I'll argue - bitwise operations, they're fundamentals too, but

If you arent working close to hardware, then for example doing bitwise operations may be really rare.

I don't think I've met a problem that required them even once during my first few years as SE.

I've had CS degree and years of experience and I werent proficient with those, I needed to write it down in steps

and then I started working closer to hardware where those operations were common and I've learned it

I don't even remember whether we were doing them in school

2 comments

Boolean logic is close to bitwise operations and it is the knowledge without which nobody should dare to call themselves a software engineer.
is close, yet no the same.

There's difference between "do you understand this if ladder" or "can you simplify this boolean expression"

and "clear bits 3, 25, 26, 27 of this register and set bits 25, 26, 27 to value 0b101"

I'm not saying that this is hard or something, just the 3rd thing is really rare unless you work close to hardware or some other specific tasks

I think the generalization skill that allows to go from one to another is essential. If someone has only some basic understanding of boolean expressions, but cannot apply this knowledge to binary numbers, this is a good characterization of their programming skills in general.
I work in networking, not particularly close to the hardware. I have colleagues who manipulate IP addresses by looking at the string representation of the address, splitting on the `.`, casting each part back to an integer, etc. Their code breaks as soon as we use a netmask other that /24 or (shock, horror!) we run in an IPv6 environments.