Live data from Hacker News

Beej's Guide to Learning Computer Science

beej.us

141–150 of 150 posts

Re: Beej's Guide to Learning Computer Science

#141

Earlier quoted context omitted.

I third MathAcademy. I graduated high school >25 years ago with almost no math skills and had a major struggle with the math prerequisites for my CS degree ~15 years ago. I've been wanting to get into higher math recently, so a few months back I started hitting MathAcademy heavily. Its structure and modularity is exactly what I needed.

> Its structure and modularity is exactly what I needed. Through great effort, I completed Mathematical Foundations I & II. I talked about it a bit here [1][2]. If you read through MathAcademy's methodology and reasoning, it's incredibly strong [3], but in practice I never felt confident in my understanding or execution, everything felt quite discrete and I didn't understand the relationships or purposes of what I wa…

(I'm actually set to complete Mathematical Foundations II next week, after completing Mathematical Foundations I recently.)

Thank you for your comment. I had a very nontraditional path to engineering, even in an era of self-taught programmers, and I feel a lot of pain and despair and bitterness and, uh, a vicarious feeling of disappointment, I guess... so discussing this sort of journey does me some good.

> I feel like I learned "Discrete Math", but in the sense that all the lessons were discrete and I couldn't draw connections between them.

Very reasonable takes. I think you're spot on. I do have a lot of trouble with the abstractness and disjointedness of it. I'm hoping that repetition will improve it. So far I'm still struggling with the same things I struggled with in college - combinatorics, for whatever reason, just seems to slide right out of my brain.

By "modularity" I meant that I could squeeze in 10-15 minutes here or there without having to commit multiple hours to a single concept, and that I could take a day off without destroying anything, but that's probably connected to the "discreteness" you mention, without a holistic, oceanic kind of cohesion or connectedness.

I'm actually working on a project now, an educational site that's kind of along these lines but focused on areas of CS I've always struggled with - Lambda Calculus, Type Theory, Lisp, that sort of thing. I think I have some good ideas. I hope I come up with more, because I definitely want to build a rich mesh of knowledge rather than a catalog of disconnected facts and tools without any underlying meaning.

Re: Beej's Guide to Learning Computer Science

#142
post #109

Earlier quoted context omitted.

It's not so much that, although I'd argue that LLMs can certainly teach you some bad habits from time to time, much more so than Deep Blue ever would. Rather, it's because early on, when beginners are learning the basics, they need to do the hard work of figuring stuff out so they develop problem-solving skills. It's not the code-writing skills they need to develop--that's easy. It's the problem-solving skills. If I…

Maybe we crossed the Rubicon and there's too much opportunity cost to learn how to implement the fundamental DS&A. Instead of memorizing the ~10 lines of code for binary search, memorize the words "binary search". Thanks to the C compiler, we don't have to remember to push our registers and then jump to the subroutine. I think LLMs provide similar benefits. It frees your headspace for other stuff. The analogy isn't p…

We don't tell chemists they shouldn't spend their formative years learning how to manage electron orbitals. You need to understand the fundamentals of how a computer works, or else you get people who write software with the wrong mental model of the machine (namely, that it's some sort of inscrutable, magic black box). Learning the fundamentals of the machine teaches you that is not, in fact, magic at all, it's just a lot of simple circuits built on top of each other, providing what we know as computation. Will you sling bits in assembly all day at your job? Probably not, but that knowledge is invaluable to being a better programmer.

We make surgeons learn anatomy. We make hardware engineers learn physics. I think we can expect programmers to learn how computers work.

Re: Beej's Guide to Learning Computer Science

#143

Earlier quoted context omitted.

Maybe we crossed the Rubicon and there's too much opportunity cost to learn how to implement the fundamental DS&A. Instead of memorizing the ~10 lines of code for binary search, memorize the words "binary search". Thanks to the C compiler, we don't have to remember to push our registers and then jump to the subroutine. I think LLMs provide similar benefits. It frees your headspace for other stuff. The analogy isn't p…

We don't tell chemists they shouldn't spend their formative years learning how to manage electron orbitals. You need to understand the fundamentals of how a computer works, or else you get people who write software with the wrong mental model of the machine (namely, that it's some sort of inscrutable, magic black box). Learning the fundamentals of the machine teaches you that is not, in fact, magic at all, it's just…

[deleted]

Re: Beej's Guide to Learning Computer Science

#144

Earlier quoted context omitted.

> it’s (a) going to be harder for you than for people who like it and (b) maybe you should consider a field that you do like? This shit is so infantile. It's like people have never heard of grinding. Do you think big law attorneys "love" their jobs? How about public accountants? How about dentists (famously known for having high suicide rates). > Maybe you hate programming, but you want the money enough. Yes welcome…

I can’t speak for others, but I’ve never met anyone really successful in the industry that hate their job, or were purely driven by the grind. Every single one have been deeply passionate about their craft. Not saying that you can’t grind your way to success - earning enough to retire at FAANG firms is possible, just by grinding. But the vast majority, even those with a grind mindset, will not be able to do that.

respectfully, you probably do not know the inner motivations of every successful person you know. what may look like passion to you may be grind to them

Re: Beej's Guide to Learning Computer Science

#145

I see people argue “But other people hate their jobs in other industries, just push through and grind, money is money” Sure, but I want to point out that software development is kind of unique. I can’t think of too many other professional jobs where the line between hobby and work blends, for so many of its workers. Let us be honest with ourselves, many of the toxic things in this industry are caused by a strong cult…

> You don’t see investment bankers / lawyers / management consultants / etc. go on about side projects, leveling up their skills during the weekend, and other things that are considered completely normal in this industry. Maybe not side projects, but their work schedules can be insane when compared to the typical SW engineer.

High performing types in those areas network a lot, and just as much off the clock (or more) as on. From those I know, many of them seem to pick hobbies, friends, holidays, activities, gym, etc that is compatible with connecting with the right people. And that is considered very normal, more ore less expected if aiming for partner type roles.

Re: Beej's Guide to Learning Computer Science

#146
post #5

Most reputable CS courses will have one or two math subjects (often called "Discrete Mathematics" or some variation). Does anyone have any advice on tackling subjects like these for someone who hasn't done any math since high school more than a decade ago (and has forgotten it)?

It's a different kind of math from the continuous math they teach in school. Personally I found it a lot more intuitive. Like it wasn't the easiest thing ever, but I did better than I thought I would.

Re: Beej's Guide to Learning Computer Science

#147

Earlier quoted context omitted.

I agree. Thank you for pointing out a skeptical view. It's unfortunate that considering supposedly only "seasoned" participators of HN can downvote, it runs deeper than a surface issue. You will be downvoted without comments replying with the counterarguments. Scientific viewpoints often make way to hope and cope engineering here. This will only work as long as the people involved are insulated from the direct effect…

to combat this, turn on showdead in your profile and [vouch] for dead comments that aren't trash when you find them

Good idea, I'll be doing this from now on.

I also find [flagged] content appears on HN aggregate sites, and it shows the inherent censorship.

Re: Beej's Guide to Learning Computer Science

#148

I see people argue “But other people hate their jobs in other industries, just push through and grind, money is money” Sure, but I want to point out that software development is kind of unique. I can’t think of too many other professional jobs where the line between hobby and work blends, for so many of its workers. Let us be honest with ourselves, many of the toxic things in this industry are caused by a strong cult…

it's the same in any industry with the exception of insurance and bureaucracy, I think (IMO and from the top of my head)

but I believe no other industry has a greater gap between "i can't believe the shit I (have to) do at work" and "hobby" except in the many cases of voyeurs, stalkers, laissez-faire criminal investigators and passionate MiniTrue partisans, all of which are variations of the "true" human nature of the bulk of the population left after the many wars, including a great many of the ones who came home unharmed but with stories to tell

Re: Beej's Guide to Learning Computer Science

#149

Earlier quoted context omitted.

Maybe we crossed the Rubicon and there's too much opportunity cost to learn how to implement the fundamental DS&A. Instead of memorizing the ~10 lines of code for binary search, memorize the words "binary search". Thanks to the C compiler, we don't have to remember to push our registers and then jump to the subroutine. I think LLMs provide similar benefits. It frees your headspace for other stuff. The analogy isn't p…

We don't tell chemists they shouldn't spend their formative years learning how to manage electron orbitals. You need to understand the fundamentals of how a computer works, or else you get people who write software with the wrong mental model of the machine (namely, that it's some sort of inscrutable, magic black box). Learning the fundamentals of the machine teaches you that is not, in fact, magic at all, it's just…

[deleted]

Re: Beej's Guide to Learning Computer Science

#150

> So, while it’s clearly possible to have a career in a lucrative field you dislike, it’s (a) going to be harder for you than for people who like it and (b) maybe you should consider a field that you do like? > You gotta want it. Do you want it enough to go through the tremendous amount of effort it takes to learn it? Maybe you hate programming, but you want the money enough. Maybe you don’t care about the money, but…

> it’s (a) going to be harder for you than for people who like it and (b) maybe you should consider a field that you do like? This shit is so infantile. It's like people have never heard of grinding. Do you think big law attorneys "love" their jobs? How about public accountants? How about dentists (famously known for having high suicide rates). > Maybe you hate programming, but you want the money enough. Yes welcome…

"Oh, you hate your job? Why didn't you say so? There's a support group for that. It's called EVERYBODY, and they meet at the bar." – George Carlin
Post reply on HN