Live data from Hacker News

Untitled topic

news.ycombinator.com

121–130 of 163 posts

Re: undefined

#121

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

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

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

Re: undefined

#122
post #95

Earlier quoted context omitted.

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

> Most of it's just taught is extremely-painful-to-learn trivia.

That's weird. When I was in school in the UK (1960..1974) mathematics was illustrated with practical applications. This was especially so as we progressed into more sophisticated physics and chemistry.

Re: undefined

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

[flagged]

Re: undefined

#125
post #121

Earlier quoted context omitted.

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

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

It's absolutely insane to pretend most software engineers need to do any of these things. We're making billions of dollars in aggregate without knowing this stuff. Most people aren't writing their own data compression algorithms, and we sure as shit aren't writing cryptographic algorithms because we're told to leave that one to the experts (i.e., mathematicians).

I'm guessing 80% don't even know bit-field flags and never have to use them, despite them being relatively simple. It would also take someone moderately capable at understanding math less than an hour to "learn." I learned them when I was 13 because I fucked around with MUD codebases, and I don't think I am special for it.

Re: undefined

#126
> Today's developers didn't learn binary before learning Python

I'm sure it's rare, but we had C in 10th grade, and then assembly and electronics in 11th grade at my high school. I remember my first assembly class 21 years ago. The teacher introduced mov, add, and some registers. It was mesmerizing.

Re: undefined

#127
post #121

Earlier quoted context omitted.

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

It's absolutely insane to pretend most software engineers need to do any of these things. We're making billions of dollars in aggregate without knowing this stuff. Most people aren't writing their own data compression algorithms, and we sure as shit aren't writing cryptographic algorithms because we're told to leave that one to the experts (i.e., mathematicians). I'm guessing 80% don't even know bit-field flags and n…

Do you realize that once you write code to solve a problem, that exact problem never needs to be solved again? Either you're solving new problems (and "new" can be slight -- new situation, new context, new hardware, new people, new company, whatever), or you're doing the compiler's job. If most people aren't solving new problems, then their job is bullshit. I frankly don't even understand how you can be confident that code copy-pasted from Stack Overflow actually does what you need it to do without understanding the fundamentals.

> we sure as shit aren't writing cryptographic algorithms because we're told to leave that one to the experts.

Shouldn't we all be striving to be an expert in something? If you're not working your way toward expertise, what are you doing? Why are the absolute fundamental basic building blocks for understanding how computers work and what programming languages are doing something that only "they" need to bother to learn?

Re: undefined

#128

Earlier quoted context omitted.

I don't really understand the hurdle to "learning binary". It's not necessary to understand how binary works to complete a hello world program, but I think it's something that you want to get a handle on pretty quickly. If I recall correctly, we only spent a few minutes on it in a larger lesson about different schemes for representing numbers in Comp Sci I. I don't think I've performed binary arithmetic since that cl…

It's good to know how to eat healthy, avoid processed foods, maintain healthy sleep patterns, avoid PUFAs, maintain strong mind-muscle connection in the body, communicate effectively and succinctly and empathetically with others, and many other life skills as well. And they'd all make you a heathier, happier, more robust, performant human. Which translates to better productivity. Better code. So, should this new prog…

> So, should this new programmer start there, or start with binary?

The new programmer should start with the life skills. As a toddler. They should also learn the alphabet and how to wipe their own ass. Why do you think this is a gotcha question?

Re: undefined

#129
post #127

Earlier quoted context omitted.

It's absolutely insane to pretend most software engineers need to do any of these things. We're making billions of dollars in aggregate without knowing this stuff. Most people aren't writing their own data compression algorithms, and we sure as shit aren't writing cryptographic algorithms because we're told to leave that one to the experts (i.e., mathematicians). I'm guessing 80% don't even know bit-field flags and n…

Do you realize that once you write code to solve a problem, that exact problem never needs to be solved again? Either you're solving new problems (and "new" can be slight -- new situation, new context, new hardware, new people, new company, whatever), or you're doing the compiler's job. If most people aren't solving new problems, then their job is bullshit. I frankly don't even understand how you can be confident tha…

Most of the problems software engineers are solving today are business problems defined by stakeholders in a business.

And yes, I agree we should be an expert in something. Harping on binary seems like a waste of time, however. I would certainly like that people are interested enough in the field that they spend their time learning as much as they can about CS, but I'm under no illusion that I'm going to automatically be more productive or better as a software engineer because I know bit-fields.

PS: Thank you for downvoting me.

Re: undefined

#130
post #127

Earlier quoted context omitted.

Do you realize that once you write code to solve a problem, that exact problem never needs to be solved again? Either you're solving new problems (and "new" can be slight -- new situation, new context, new hardware, new people, new company, whatever), or you're doing the compiler's job. If most people aren't solving new problems, then their job is bullshit. I frankly don't even understand how you can be confident tha…

Most of the problems software engineers are solving today are business problems defined by stakeholders in a business. And yes, I agree we should be an expert in something. Harping on binary seems like a waste of time, however. I would certainly like that people are interested enough in the field that they spend their time learning as much as they can about CS, but I'm under no illusion that I'm going to automaticall…

> Harping on binary

We're "harping" on it because it's so basic. There are a hundred equally basic things you should also know.

> Most of the problems software engineers are solving today are business problems defined by stakeholders in a business.

Even understanding the business problems usually requires a lot of fundamental knowledge in a wide variety of subjects. Being a good software engineer is hard.

And regardless of the problem, if the solution is going to be in code, you can't get away from binary. I actually don't think most programmers should be learning assembly language, because you can actually completely abstract away from it (and you should, because you don't know which assembly language you're programming for). But you can't abstract away from addition, the alphabet, binary, strings, algorithm complexity, and other basics.

PS: I didn't downvote you. I don't downvote people for disagreeing with me. I like disagreement, and besides, it would reduce the visibility of my pithy responses! I only downvote comments that aren't even worth arguing with. So the very fact that I'm taking the time to respond means I have at least some respect for your argument.

Post reply on HN