5 ms·
I have a hard time imagining someone who has "curiosity, passion, focus, creative problem solving" regarding programming and yet hasn't stumbled upon bitwise op
by crystal_revenge 2y ago
I have a hard time imagining someone who has "curiosity, passion, focus, creative problem solving" regarding programming and yet hasn't stumbled upon bitwise operators (and then immediately found them interesting). They're pretty fundamental to the craft.
I can see having to refresh on various bit shifting techniques for fast multiplication etc (though any serous program should at least be aware of this), but XOR is fundamental to even knowing the basics of cryptography. Bitwise AND, NOT, and OR are certainly something every serious programmer should have a very solid understanding of no?
- bluepizza 2y agoIt's probably a matter of domain, but most backend engineers who are working in Java/Golang/Python/Ruby systems have very little use of those, and they don't come up easily. Frontend (web or mobile), it comes up even less. Can you tell me how this knowledge makes one a serious programmer? In which moments of the development lifecycle they are crucial?
- tel 2y agoWithout judgement, this feels like a switch up. It seems to me that the prior author did not suggest they were necessary, but instead ambient, available, and interesting. Indeed for many they are not useful. At the same time, that might be a good indication of passion: a useless but foundational thing you learn despite having zero economic pressure to do so. In the domains you have worked on, what are examples of such things?
- bluepizza 2y agoIt is not a switch up. The author said that an engineer would find these during their journey, and I am asking when. I don't have a strongly held opinion here, I literally want to know when. I am curious about it.
- valicord 2y agoBitmasks, enumerating combinations (subsets), parsing binary data, ...
- jfyi 2y agoCryptography, parity checking, sorting, image processing, optimization...
- krisoft 2y ago> I literally want to know when When the curious engineer is reading a book about their choosen programing language. Most likely in the part which describes operators. Or when they parse something stored in binary.
- tel 2y agoPersonally, I think it’s possible to not encounter them. I surely avoided them for a while in my own career, finding them to be the tricks of a low-level optimization expert of which I felt little draw. But then I started investigating type systems and proof languages and discovered them through Boolean algebras. I didn’t work in that space, it was just interesting. I later learned more practically about bits through parsing binary message fields and wonder what the deal with endianness was. I also recall that yarn that goes around from time to time about Carmack’s fast inverse square root algorithm. Totally useless and yet I recall the first time I read about it how fun a puzzle it was to work out the details. I’ve encountered them many times since then despite almost never actually using them. Most recently I was investigating WASM and ran across Linear Memory and once again had an opportunity to think about the specifics of memory layout and how bytes and bits are the language of that domain.
- bluepizza 2y agoI've mostly done corporate Java stuff, so a lot of it didn't come up, as Spring was already doing it for me. I've first got to enjoy low level programming when reading Fabien Sanglard breaking down Carmack's code. Will look into WASM, sounds like it could be a fun read too.
- mewpmewp2 2y agoIt might be an indication for passion, but not knowing them does not indicate lack of it. The thing is there are unfathomable amount of such things to learn, and if somebody doesn't stumble upon them or won't spend time with them it doesn't indicate lack of it.
- crystal_revenge 2y agoI'm sorry but bitwise operators are the most fundamental aspect of how computing works. If you don't understand these things it does indicate a lack of passion, at least in regards to programming and computation. Bitwise operators are not a particularly complex topic and extend from the basics of how logic is implement in a computer system. Personally I think ever one interested in programming should have, at least once, implemented a compiler (or at least interpreter). But a compiler is a substantial amount of work, so I understand that not everyone can have this opportunity. But understanding bitwise operators is requires a minimal investment of time and is essentially to really understanding the basics of computing.
- mewpmewp2 2y agoGuess I have a lack of passion then, despite building countless of full stack side projects and what-not even before I knew these could make me money at my teenage years. I started out with PHP using txt files as storage in my teens so none of what you said would be relevant to what I've experienced, and that was I would say almost 20 years ago. And in my high school years I took part of coding competitions where I scored high nationally without knowing any of bitwise or otherwise things, despite deeply enjoying those things. This weird elitism drives me mad, but maybe truly I haven't done enough to prove my worthiness in this arena. Maybe PHP or JavaScript is not true programming.
- usrnm 2y agoYou're talking past one another. The whole point of being interested and passionate about a topic is that you want to learn stuff regardless of whether or not it's useful
- BadHumans 2y agoI can be interested in front-end development and learn everything there is to know about templating while never knowing about bitwise operators. Point is domains are so large that even if you go beyond what is required and learn for the sake of curiosity, you can still not touch what others may consider fundamental.
- mewpmewp2 2y agoWhat if I am passionate about stuff that is useful and helps me build more?
- Viliam1234 2y agoYeah, that sounds like someone claiming to be passionate about math, but who never heard of prime numbers. It's not that prime numbers are important for literally everything in math (although coincidentally they also happen to be important for cryptography), it's just that it's practically impossible to have high-school knowledge of math without hearing about them. What other elementary topics are considered too nerdy by the cool people in IT today? Binary numbers, pixels...? What are the cool kids passionate about these days? Buzzwords, networking, social networks...?
- ozim 2y agoThere is a world of difference between stumbling upon, knowing about in general and being proficient with -because of using on regular basis- some tech piece. I do know how bitwise AND, NOT, OR, XOR work but I don't solve problems on day to day basis that use those. If you give me two bytes to do the operations manually it is going to be a piece of cake for me. If you give me a problem where most optimal solution is using combination of those operations I most likely will use other solution that won't be optimal because on my day to day work I use totally different things. A bit of a tangent is that is also why we have "loads of applicants willing to do tech jobs" and at the same time "skilled workers shortage" - if company needs someone who can solve optimally problems with bitwise operations "right here right now", I am not the candidate, given couple of months working on those problems I would get proficient rather fast - but no one wants to wait couple of months ;)
- mgkimsal 2y ago> given couple of months working on those problems I would get proficient rather fast - but no one wants to wait couple of months ;) yet they'll take a couple of months interviewing folks, and generally not find the unicorn they're after.