7 ms·
Learning binary and knowing what binary is are two separate things. I don't think you need to learn binary to learn to code. Been doing this for 25 years workin
by joshmanders 3y ago
Learning binary and knowing what binary is are two separate things. I don't think you need to learn binary to learn to code. Been doing this for 25 years working at some big name companies, I don't know binary other than 1 is on, 0 is off.
I'm starting to feel like this whole notion that newbies can't come in and learn say React or modern JavaScript without having to go all the way back to that day in 1995 when they were hashing out the std lib for JavaScript and learn every thing about it before that "Hello World!" in React starts is becoming a gatekeeping method.
- freedomben 3y ago> I don't know binary other than 1 is on, 2 is off. Either an epic troll or a great illustration :-D
- joshmanders 3y agohaha you caught that before I fixed it, that my friend is the result of my failure of math in my great edumacation in the US public school system hahaha. Also it's 9am and I just woke up a bit ago.
- rocketbop 3y agoYou should have left it as it was :)
- robomartin 3y ago> Also it's 9am and I just woke up a bit ago. You should try waking up at 6 AM
- joshmanders 3y agoI woke up at 8AM Chicago time. Which is 6AM San Francisco time. Same thing.
- robomartin 3y agoI guess jokes are no-longer a thing in our culture? Let me spell it out: You should have woken up at 6 AM. The error would have been even funnier.
- joshmanders 3y ago> I guess jokes are no-longer a thing in our culture? Nah I just think people here like to be liberal with their downvotes. "I didn't find that funny, downvote" While I didn't get the joke, I still appreciate the attempt.
- dcuthbertson 3y agoI guess the person you replied to edited their comment. Still, "1 is on, 2 is off" made me smile.
- robinduckett 3y agoLet’s hope you never have to parse an archaic binary format then
- mynameisvlad 3y agoMost people, in fact, do not have to do this. That’s an exceptionally rare thing to do that I would estimate a fraction of a percent of developers will ever encounter.
- foobarbecue 3y agoI would have put the number at 75% rather than a fraction of a percent. What do all these people do, these "developers" that never have to use bitstrings in python, deal with encodings, endianness, interface with hardware, etc.? Are they all UI people?
- mynameisvlad 3y ago> use bitstrings in python, deal with encodings, endianness, interface with hardware is nowhere even remotely close to > parse an archaic binary format The goalposts are on the other side of the field.
- foobarbecue 3y agoIn my experience, most files in userspace are in an archaic binary format. And most hardware talks archaic binary.
- mynameisvlad 3y agoMost developers interacting with files are going to be doing it through a higher level API, so while sure, technically they're stored like that, it's not like that's what the developer actually has to deal with. And most developers don't interact with hardware day to day, no. That's an exceptionally small set of people.
- Kalium 3y agoYou're absolutely right, it's definitely gatekeeping. That said, there's also a point in here that's often underappreciated. There's a big difference between someone who learns today's modern tools from nothing and someone who has a good foundation learning today's modern tools. I think it's fundamentally one of approach. The former treats coding as a trade where you just need to learn a few tools. The latter treats it as a vocation where fundamentals allow you to learn whatever tools you need. The one makes sense short-term - it gets people to paying work with modern tools in a minimum of time. The other makes sense long-term - it keeps people in paying work with modern tools for decades. When you're just getting started and looking to get that first job with the life-changing six figure paycheck, all that farting around with fundamentals that the gatekeepers are talking about seems like an absolutely massive waste of time. It is gatekeeping, but gatekeeping can and sometimes does serve a purpose that is not just the purely selfish.
- joshmanders 3y agoI've found in my years mentoring and teaching that showing something is much better at keeping them learning and interested than "Sit down and read 30 years of out dated documentation and coding practices just so you can feel the pain and agony I had, then and only then when you've proven yourself can you spit out that hello world on the screen, filthy scum!" Give them a codepen with modern React already bootstrapped so they can start just tinkering with it and changing things, man watch their EYES LIGHT UP at the possibilities... Every time I see this happen it takes me back to 1997 when I was first learning to build websites.
- Kalium 3y agoYou're completely right. That's a wonderfully kind, empathetic, and compassionate approach that's incredibly effective for teaching people what kind of power they are starting to have access to. I've found it's also one that is very expensive as measured by instructional time and energy. I've also found it relatively ineffectual for teaching fundamentals. I do not have to lecture someone about how they are unworthy and useless to know that understanding a bit of discrete mathematics, HTTP fundamentals, DNS, or relational algebra will make them better software engineers. There are absolutely people in this world who, when learning the glories of React with a codepen, will ask how things work several times and learn big-O notation... but there are far more who won't ask but would benefit from knowing anyway. Do you think it's perhaps possible that people benefit from both a solid grasp of the often-boring fundamentals as well as feeling the joy of tinkering?
- WoodenChair 3y ago> Learning binary and knowing what binary is are two separate things. I don't think you need to learn binary to learn to code. Been doing this for 25 years working at some big name companies, I don't know binary other than 1 is on, 0 is off. You're wearing your lack of CS knowledge like some kind of badge of honor. Of course you don't need deep CS knowledge to be a competent programmer. But almost undoubtedly you'll be a better programmer if you do know CS (I'm using binary here as a proxy for CS since I can't imagine having a deep knowledge of CS without knowing something fundamental like binary). How many times over those 25 years could a problem have been more efficiently solved (in programmer time or CPU time) if you had known about problem solving techniques (perhaps those related to binary knowledge for example) that you don't know from the world of CS? You'll never know... You may guess, but you'll never know what you don't know. It's not gatekeeping to say that to give someone a complete education to be a software developer we should provide them a knowledge of binary. We can teach programming in an approachable fashion AND teach binary in an approachable fashion. We do it every day at my college.
- LoganDark 3y agoWhy are you talking about CS and nonexistent "problem solving related to binary"? By "knowing binary" we are not talking about knowing machine code instructions or the details of how they are executed, but literally knowing how to read and work with binary numbers (using bitwise operations). Which isn't necessary for problem-solving or implementing most algorithms. (Yes, there are algorithms that use bitwise operations. They're technically expendable and it doesn't make you any less of a programmer not to know everything. Especially if you're using Python or JavaScript!)
- feoren 3y ago> nonexistent "problem solving related to binary" Are you joking? Without understanding binary, you can't understand: - Numeric types, which numbers can be represented exactly, their failure modes, etc. - Bit-field flags, e.g. for enums - IP address masks and other bitmasks - Anything at all about modern cryptography - Anything at all about data compression - The various ways color is represented in images - Any custom binary format, MIDI, USB, anything low-level at all Honestly the list goes on and on. It's absolutely insane to me to hear people say that you can be a competent software engineer without understanding binary.
- tensor 3y agoI've literally had to use knowledge of binary and number representation just last month in order to implement a lower level protocol. You may not use it in your simple CRUD app jobs but it's absolutely not "some old thing people only had to use back in the day."
- joshmanders 3y ago> You may not use it in your simple CRUD app jobs but it's absolutely not "some old thing people only had to use back in the day." My point is that most jobs are simple CRUD app jobs or positioning divs on a screen, not deep seeded CS stuff.
- foobarbecue 3y agoFYI https://www.merriam-webster.com/words-at-play/deep-seated-deep-seeded-usage https://www.merriam-webster.com/words-at-play/deep-seated-de...
- jlarocco 3y ago> My point is that most jobs are simple CRUD app jobs or positioning divs on a screen... It's really not "most jobs." Although I do agree that a CS or software engineering degree is overkill for that type of stuff. Also, "knowing binary" is a strawman, and not a very good one. A newbie developer getting confused by bit flags isn't a big deal. Point them to Wikipedia and let them read about it. The much bigger problem is when inexperienced developers go off and write a ton of bad spaghetti code, re-invent a bunch of wheels they never learned about, and generally just write crap because they're clueless about best practices (or even any practices at all). Now the clueless newbie is slowing down everybody else and creating a maintenance nightmare. TBH, most new developers are pretty bad (self taught, university taught, or whatever). The important thing is having experienced people around to point them in the right direction and help them get "real world" experience. Gate keeping isn't always a bad thing.
- Hirrolot 3y agoI occasionally have to manipulate binary numbers too. But, aside from bitwise operations, I almost always forget what I had learned last time and have to re-read the material again.
- causi 3y agoI didn't know there were computer nerds who can't at least count in binary.
- foobarbecue 3y agoAnd hex, or any other base for that matter. Fundamental concepts and not difficult... I mean, hopefully people learned about place value in elementary school...?
- Fradow 3y agoThere is a difference between going all the way back to 1995 / reading old documentation vs learning the basics of CS. This strawman is used in several comments. CS is not "some old knowledge you might never use". Knowing that it's way faster to search by key in a hashmap rather than iterating through a whole array is useful. Knowing why it's a bad practice not to have primary key (and other DB knowledge) is useful. Knowing the stages of a HTTP request is useful. You can get a job and actually do some productive work without any of that, but that some point not knowing all those basics is going to harm your work.
- picometer 3y ago+1, and also, CS fundamentals absolutely can be learned & exercised in the use of high-level tools. One of the beauties of that knowledge is that its concepts are transferable across domains and layers of the computational stack. Pro tip for anyone working w/ junior devs, especially those who came through bootcamps and the like: you can point them to CS knowledge without actually calling it CS.
- foobarbecue 3y agoSo when you're reading code and you get to a bitmask... what do you do?
- kazinator 3y ago> Learning binary and knowing what binary is are two separate things. Knowing what binary is lets you generate smooth sounding sentences about it, which someone else who also only knows what binary is accepts as true. Learning binary lets you actually exploit its properties in a solution.
- denton-scratch 3y ago> Learning binary and knowing what binary is are two separate things. Really? Binary isn't a language like Python, it's a notation; either you understand it or you don't (you could say it's 'binary', I suppose). If you don't understand it, you don't know what it is.
- feoren 3y ago[flagged]
- Dylan16807 3y ago> I don't think you need to learn binary to learn to code. Been doing this for 25 years working at some big name companies, I don't know binary other than 1 is on, 0 is off. I... guess? But the full explanation of binary is only a paragraph long. At a certain point that seems like something you'd have to avoid on purpose.