Live data from Hacker News

Untitled topic

news.ycombinator.com

91–100 of 163 posts

Re: undefined

#91

Earlier quoted context omitted.

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…

> 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…

"Knowing" binary isn't some deep, fundamental CS knowledge, it's a party trick. Knowing about different number systems in general is nice, but hardly foundational.

The actual choice of what we consider part of the "core" CS curriculum is pretty arbitrary. Why do we consider, say, binary part of that but semantics not? Would it be "gatekeeping" to say that you can't be a good programmer without a passing knowledge of, say, operational and denotational semantics? Do you really have a "complete" CS education without it?

Re: undefined

#92
post #7

> Today's developers didn't learn binary before learning Python, why should you learn how to code without the most modern tools? This phrasing makes me wary. There's a difference between being self-taught, and not even bothering to teach yourself the absolute fundamentals of computing, like binary...

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…

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

Re: undefined

#93
post #42

Earlier quoted context omitted.

I'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…

You'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 a…

This seems like a good context for the quote, “if you want to build a ship, […] teach them to yearn for the vast and endless sea.” I don’t think that Saint-Exupery intended to suggest that the yearning was enough on its own, but it makes the process so much more effective.

Re: undefined

#94
post #76

Earlier quoted context omitted.

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…

There 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.…

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

Re: undefined

#95
post #37

Earlier quoted context omitted.

I dislike this perspective. I taught myself programming at age 12, well before undergrad. If I'd been forced to learn binary before I could make websites and games, I would have given up. I might have even avoided programming forever. I think the very first thing someone should learn is the fastest path to build something that interests and delights them. Theory can come later, when they're ready to appreciate it.

Don't you learn about number bases in maths lessons in school in the US? We did that in the late 60s in England.

We do, but it's taught as trivia. Applications and various "tricks" are what matter for binary in CS, and they don't teach that. We're taught about non-10 bases, but not taught why we should give a shit about them.

Same as most of the rest of primary and (especially) secondary school math, really. I doubt 1% of recent high school grads can tell you a single reason why anyone should care about quadratic equations, even though they likely spent months of their lives jacking around with them (for unclear reasons). Most of it's just taught is extremely-painful-to-learn trivia. Trig and calc get a little bit of justification & application, but not much. Stats probably comes off the best, as far as kids having even half a clue WTF they can do with it after the class ends.

Re: undefined

#96
post #7

> Today's developers didn't learn binary before learning Python, why should you learn how to code without the most modern tools? This phrasing makes me wary. There's a difference between being self-taught, and not even bothering to teach yourself the absolute fundamentals of computing, like binary...

In my case, I started with the FET junction (electronics). My first program was Machine Code, designed on a pad of lined paper, and punched directly into RAM, via a hex keypad. These days, I write Swift. It's nice to not need to deal with the way Machine Code works, but I'm glad I learned it. That said, everything we learn takes up NVR, so there's a strong argument to be had, against the need to learn below a certain…

> My first program was Machine Code, designed on a pad of lined paper, and punched directly into RAM, via a hex keypad.

Yup. That's also where I started. In fact, I still own one of these in mint condition:

https://www.hewlettpackardhistory.com/item/making-a-case/

I truly believe the low level fundamentals are crucially important. Even today, in the days of Python and Javascript.

Not to go too far, about a year ago I was working on an embedded board we designed which used MicroPython. The communications protocol required IBM CRC-16 to be calculated. MicroPython could not run this calculation fast enough. Since MicroPython allows you to insert code in assembler, I just wrote the CRC routine (an many others) in ARM assembler. The performance boost was, as one would expect, massive. Writing the code wasn't a problem at all given my background.

Having this knowledge also allows you to reach for optimizations that someone who has only seen high level languages and (as posters elsewhere in the thread have revealed) don't understand low level code or even binary. A simple example of this is that comparing to zero is faster than comparing to a value. The simple explanation being that you have to juggle registers and perhaps even read and store that value from memory every time you go around a loop. All processors have the equivalent of a JZ and JNZ (jump if zero, jump if not zero) instruction, which does not require anything to be fetched from memory or register swapping. Of course, this is processor and task dependent.

And then I wonder about such things as DeMorgan, bit-wise operations, masking, etc. I was surprised to read some of the comments on this thread about people not being comfortable with binary beyond 1=true and 0=false. I don't understand how someone can develop non-trivial software without having a solid foundation. I mean, even for CSS you should understand what "FFC21A" or "3FE" means, where it comes from and how to work with these numbers.

Re: undefined

#97
post #73

Earlier quoted context omitted.

Most companies don't let you interview more than once per year or once every six months, so if he/she has been rejected three times, I would expect their earliest interview to be over 1.5 years ago

I've never heard of this rule. If a company has three positions, for which 15 equally excellent candidates are shortlisted, and then three months later another position opens up, one of the remaining 12 will have a shot at it. (Of course, the not-shortlisted ones, not likely.)

Google, Facebook (Meta), and Amazon all had a minimum six month re-apply period when I last interviewed with them.

Re: undefined

#98
post #35
post #7

> Today's developers didn't learn binary before learning Python, why should you learn how to code without the most modern tools? This phrasing makes me wary. There's a difference between being self-taught, and not even bothering to teach yourself the absolute fundamentals of computing, like binary...

> There's a difference between being self-taught, and not even bothering to teach yourself the absolute fundamentals of computing, like binary Been doing this for almost 30 years now, about 15 of those professionally. I think the last time I used binary was in a microcontrollers class in high school. Even in college, yeah we talked a lot about binary, we learned the single most useful thing in my career – truth table…

>Did we ever use binary for anything practical? No of course not, that’s what the compiler is for.

How to tell people you have never implemented anything performance sensitive in your life without spelling it out bluntly in a nutshell. The code of any popular image processing/decoder/encoder/compression/cryptographic libraries is littered with the use of bit operators because they operate at the fundamental building block level of computing, they are the most efficient and the "sufficiently smart compiler" that supposedly always produces the best interpretation is a lie. You merely need to skim through any implementation of jpeg, of h264 or anything that actually matters in this world to see the practical application of working on bits in the real world.

But sure, understanding computer architecture is meaningless. Trust the compiler. Thank gods I can still see stutters scrolling a web page on a 16 core CPU with 64gb of ram. I don't know how I could live my life if people actually knew how to make proper programs!

Re: undefined

#99
post #25

Earlier quoted context omitted.

You'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…

I'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…

[deleted]

Re: undefined

#100
post #7

> Today's developers didn't learn binary before learning Python, why should you learn how to code without the most modern tools? This phrasing makes me wary. There's a difference between being self-taught, and not even bothering to teach yourself the absolute fundamentals of computing, like binary...

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…

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

Post reply on HN