Live data from Hacker News

Beej's Guide to Learning Computer Science

beej.us

81–90 of 150 posts

Re: Beej's Guide to Learning Computer Science

#81
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)?

I'd recommend going on Thriftbooks and ordering a textbook. I can't remember the exact copy I had years ago when I was self-learning CS, but it was like $4.00 for a really incredible textbook.

Now, I don't have a degree, so take my advice with a grain of salt, but the book was really really good, and honestly, if you've been programming for awhile, I think most of the concepts didn't require a heavy math background (of course, it would probably help). The chapters were like: Symbolic Logic, Set Theory, Proofs, Algorithms, Cryptography, and other things which I can't remember.

Edit: The book is free to read online

EDIT EDIT: Removed link as I don't know if that was a "legal" link.

It's out of stock on Thriftbooks, but looks to go for $6-8 on there.

Re: Beej's Guide to Learning Computer Science

#82
post #65

Earlier quoted context omitted.

There's a lot you can legitimately blame PMs for, but promising features that don't yet exist is essentially their job definition. A good PM will allow for uncertainty and flexibility, but at the end of the day, to have some sort of product roadmap, even in the most agile of environments, they have to say things like "at that stage we'll have functionality x, so our product will enable users to y, so that we'll bette…

There is a difference in promising features without talking to the devs or promising features after having talked to the devs.

Of course. Obviously a PM who isn't talking to the devs isn't doing their job.

But having said that, a PM is the person who owns the roadmap, and after talking to the devs, they may at times choose a course of action that goes against the devs' preferences (assuming the devs even have a consensus), because the PM has a lot of additional considerations. There are for example situations when the choice is either to crunch, take on massive technical debt, and still arrive at a feature with a somewhat lower quality than we'd like, or to lose a big business opportunity and possibly to have to let people go.

Most PMs that I've worked with are actually not that good at their job, and some were definitely detrimental to the org, but the good ones, who have an extensive understanding of the business domain and the technical situation, and have a clear vision (and strong opinions held loosely), are worth their weight in gold. And seeing how I did a short stint in a product role and don't want to go back to that sort of responsibility, I am grateful for the ones who are willing to take this on, and to take ownership when things don't go according to plan (and they usually don't, even in the best orgs).

Re: Beej's Guide to Learning Computer Science

#83
post #25

Earlier quoted context omitted.

There's also a huge difference between liking to program and liking to work as a programmer. I despise the latter as business programming takes the joy out of everything. Trying to educate management about the current boundaries of the product or having to work extra hard because a product manager promised features that dont yet exist is exhausting. Not being allowed to work on fixing tech debt while having to build…

I know dance instructors, cabinet makers and surgeons who all love their work as a hobby but hate it as a job.

[deleted]

Re: Beej's Guide to Learning Computer Science

#84

On a side note, has anyone noticed the disparity of attitude and level of intensity of dialogue when it comes to AI in different HN posts? Given that there are many threads where 80% act as if AI would cause second coming I suspected that main topic of discussion here would be "is it worth learning CS at all in 2026?". To my (pleasant) surprise the discussion here is much more "normal". Does anyone suspect that some…

I'm sure there are bots on here as much as astroturfing. Partly is seems to be how quickly an article has comments leaning to one side or another. Once a few of these comments get off the ground, it's hard for voting on HN to reflect the discussion these days. It does appear that more users from Reddit etc. are not just using HN these days, but commenting. The quality of posts and comments has definitely decreased, i…

> The quality of posts and comments has definitely decreased, in line with the quality of content on blog posts decreasing.

I fondly remember the first time I read this comment. I think it was August of 2008.

Re: Beej's Guide to Learning Computer Science

#85

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…

[deleted]

Re: Beej's Guide to Learning Computer Science

#86

On a side note, has anyone noticed the disparity of attitude and level of intensity of dialogue when it comes to AI in different HN posts? Given that there are many threads where 80% act as if AI would cause second coming I suspected that main topic of discussion here would be "is it worth learning CS at all in 2026?". To my (pleasant) surprise the discussion here is much more "normal". Does anyone suspect that some…

> I suspected that main topic of discussion here would be "is it worth learning CS at all in 2026?"

Considering the current state of the job market I don't think it is good idea to go into CS in 2026 expecting a lucrative career. People who just love to program will find a job eventually, of course.

> Does anyone suspect that some HN posts have a lot of astroturfing from AI-adjacent organisations?

Why does it have to be AI? I don't work for OpenAI/Anthropic/etc. and am an "AI-skeptic" overall. I don't believe that the current job market conditions are caused by AI. I think the issue is that the field has become saturated with all your regular "fullstack web ninjas" while higher education institutions are still pumping hordes of CS(-adjacent) grads. Things will get worse (people that went into CS before the downturn are still graduating) before they get better (smaller number of people who are truly interested are choosing the field these days which will result less people of higher average quality graduating in a few years).

Re: Beej's Guide to Learning Computer Science

#87
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)?

I'd recommend going on Thriftbooks and ordering a textbook. I can't remember the exact copy I had years ago when I was self-learning CS, but it was like $4.00 for a really incredible textbook. Now, I don't have a degree, so take my advice with a grain of salt, but the book was really really good, and honestly, if you've been programming for awhile, I think most of the concepts didn't require a heavy math background (…

What's the name of the book?

Re: Beej's Guide to Learning Computer Science

#88
post #48

Earlier quoted context omitted.

There's a lot you can legitimately blame PMs for, but promising features that don't yet exist is essentially their job definition. A good PM will allow for uncertainty and flexibility, but at the end of the day, to have some sort of product roadmap, even in the most agile of environments, they have to say things like "at that stage we'll have functionality x, so our product will enable users to y, so that we'll bette…

>> promising features that don't yet exist is essentially their job definition Agree. I think he meant (at least my reality) they promise features that does not exist (ok) AND are impossible to implement in the promised time (or at all).

I think there's also an element here of... when you work a long time on something, you tend to become emotionally attached to it, and you want it to be good and work well. Time to fix technical debt and work on making the product good is often implicitly waved as a carrot ahead of people who care about that sort of thing. "We can prioritize that after we ship $FEATURE."

This then feels like a betrayal on an emotional level when instead of a nice block of time to fix technical debt, instead the priority becomes $NEXT_FEATURE (the "features that don't exist yet.")

Management that can successfully keep the treadmill running ships features faster, so it keeps happening, and can contribute to burnout as (what felt like) implicit promises are repeatedly broken for the good of the business at the expense of the product.

Re: Beej's Guide to Learning Computer Science

#89

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…

Programming is pretty lucky that there is also large demand for programmers, and the product is high grossing, because the salaries are good. Most other fields with a passion component are low paying. Almost all of the arts Film, Music, Writing, Art pay very low if you are not the absolute top of the field. Millions of people are out there writing short stories, drawing manga, shooting student films, etc for free to land jobs for salaries that the average CS grad would laugh at.

Re: Beej's Guide to Learning Computer Science

#90
> And because the problems aren’t real, AI can solve them all really easily. There’s tons of training material out there for them to learn from.

> But don’t be fooled. Just because AI can solve your school problems doesn’t mean it can solve the real-world problems you’re going to face in your work. (As of now, it can’t.)

This is a good point. And it’s unfortunate we can’t see how much these things are tuned for demos like solving classic HW problems.

Post reply on HN