DEV Community

Discussion on: Bitwise Operations on your Fingers 🙌👩🏻‍💻

Collapse
 
jonrandy profile image
Jon Randy 🎖️

It's so weird to hear this. Back in the day, working with bits and bitwise operators was absolutely essential, and one of the earliest things learnt as a programmer

Collapse
 
emcain profile image
Emily Cain • Edited

I learned to code in 2016 in Python and JavaScript. I don't have a formal CS education. A lot of the people out there building whole software applications used by millions of people have never touched lower-level code.

Is it really that new? A lot of the PHP apps out there were started 15 or 20 years ago and you don't need a formal CS background to do that either...

A lot of us don't have CS degrees, and are building applications you use every day. I'm learning the "foundational" concepts I never got when I was just starting out on my own, and I have to say they make a lot more sense to me having created software for a living for the last couple of years, than they would have if I'd tried to learn them in a classroom.

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

I don't have a formal CS background either - completely self taught. Started in about 1984 on a ZX Spectrum, and later moved to a Commodore Amiga, then a DOS based PC, then to Windows, then finally to Web based stuff (primarily developing on Linux/Macs). Working with bits was very necessary for dealing with direct manipulation of memory (video memory or whatever), and was/is an extremely efficient way to implement 'flags' within variables. Admittedly programming has moved past a lot of low level stuff these days, probably to the overall detriment of code efficiency and actual understanding of what goes on underneath the high level stuff.

Binary is used at a low level for sure, but it's really just looking at numbers in another way - that can be exceptionally useful in many situations.

Thread Thread
 
emcain profile image
Emily Cain

Maybe! I see what you mean about memory manipulation but there are whole realms of programming people can do without ever worrying about memory. It's kind of like how most people who can drive don't have to worry about how their car is built--which allows the car, or the higher-level languages and frameworks, to become more and more advanced, efficient, and accessible.

I'm trying to learn low-level concepts now, partly for fun and partly because I'm about to start working in Security and it becomes important in e.g. network packet analysis and stopping memory-related vulnerabilities. But I know plenty of people who make whole programming careers without handling memory directly, in large part because they become experts in some other concept that abstracting away memory allows them to focus on.