Live data from Hacker News

Beej's Guide to Learning Computer Science

beej.us

101–110 of 150 posts

Re: Beej's Guide to Learning Computer Science

#101

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…

I have so many disagreements with this post.

I know plenty of people in the food industry that are constantly trying new things at home and while staying late/early at work. I even know bartenders that are playing around with things at home. How many grease monkeys work at a shop on other people's cars yet go home and continue to turn a wrench on their own project car? My grandfather was a custom cabinet maker, and was always trying new things as a hobby project to be able to offer something different to his clients that other builders did not offer. There a plenty of people in non-software professions that like to push themselves outside of work. Just because you don't know any does not mean they do not exist.

Every industry has a group of employees that are essentially just there for a paycheck. This is not a unique thing to the software industry. The flip side of your deeming people lazy/not passionate for not wanting to work for free is that perspective is just off. Just because someone has other commitments does not mean they are lazy. Having a family tends to cut into free time during nights and weekends. Being lazy would mean doing nothing during that time, and I can assure you people busy with family would also love to have time for doing nothing.

This just boils down to people really not understanding personal/work life balance. It just so happens that young people that seem "hungry and passionate" because they spend so much time at work are also people that tend to not have family which affords them a lot of this "passion time" for growing. It's a very simple and normal situation in people's growth. Not being able to recognize that for what it is to me is the thing that should be really questioned.

Re: Beej's Guide to Learning Computer Science

#102

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…

We're in that position because the work is both hard and appears hard. The kneejerk response most people have to a wall of source code is to run in terror. We know that "being able to read the moon runes" is not the valuable part of our profession, but it has served as a convenient first line of defense. People are more willing to pay ridiculous sums of money to people doing things "I could never", as opposed to "I could, if I wanted to". Art mostly is in the "is hard, looks easy" category. Just look at the average person's response to Barnett Newman's paintings, for example.

IMO, this is the most imminent risk with vibecoding. Not that it'll reduce the demand for software developers, but that it'll damage the perceived difficulty of our work.

Re: Beej's Guide to Learning Computer Science

#103
post #92

I still have trouble getting used to the fact that “computer science” is often used to just mean “programming” in the US. This is a guide to learning how to program.

You're absolutely correct, of course. And part of that is because the degree that you get when you want to be a programmer is a "Computer Science" degree in the US.

I've added a clarification to the first chapter about the naming and rationale.

Re: Beej's Guide to Learning Computer Science

#104

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…

Talking to meat-space people in the industry, I find that there's a pretty well represented population across the board from "AI is no big deal, and we're going to crash the entire economy when the bubble bursts" to "AI is the most important technology since the dawn of computing, and we're going to reshape the world for the better". IMO, the most amusing people are the people who think that AGI is both possible, likely, and will be disastrous, but still are actively working towards building it. I think there's something humorously absurd about "machine-god cultists" being a real population that I can interact with on a regular basis.

Re: Beej's Guide to Learning Computer Science

#105

Earlier quoted context omitted.

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…

We're in that position because the work is both hard and appears hard. The kneejerk response most people have to a wall of source code is to run in terror. We know that "being able to read the moon runes" is not the valuable part of our profession, but it has served as a convenient first line of defense. People are more willing to pay ridiculous sums of money to people doing things "I could never", as opposed to "I c…

I agree with the last part, but in many ways that had already been done or at least accelerated in the era of bootcamps.

I had the displeasure of working with more than a few folks who got into it for the money and claimed it was easy, who thought it was a job of mainly Googling and copy pasting. The sad thing is that these people often survive fine in a big enough org.

Yeah, maybe I'm gatekeeping a bit, but it felt like it really cheapened the image of the job.

But you're right, vibecoding is likely going to accelerate such diminishing further.

Re: Beej's Guide to Learning Computer Science

#106

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.

Re: Beej's Guide to Learning Computer Science

#107
post #29

I did Beej's Guide to Network Programming and it was fantastic, I learnt a lot, and it was easy enough that I was able to do it in Rust. I'm sure this one is as good as all the others. Point 7.5 of this guide reminds me of the Einstellung effect, I built my own "pomodoro" timer with notifications saying "go stretch" or "go drink water" ( https://github.com/reciperium/temporis in case someone is interested)

Must have been nearly 25 years ago now, this was one of my first dips into network programming after very briefly dabbling in systems programming based on nothing but random man page exploration and K&R. Think I still have it printed somewhere. Beej has really done the world a solid, it's also making me happy that they're still around and being kept up to date (as much as these things change).

Appreciate it!

This response turned into more of an essay in general, and not specifically a response to your post, marginalia_nu. :)

Sharing information, to me, was what made things so great in the hacker culture of the 80s and 90s. Just people helping people explore and no expectation of anything in return. What could you possibly want for? There was tons of great information[1] all around everywhere you turned.

I'm disappointed by how so much of the web has become commercialized. Not that I'm against capitalism or advertising (on principle) or making money; I've done all those, myself. But while great information used to be a high percentage of the information available, now it's a tiny slice of signal in the chaff--when people care more about making money on content than sharing content, the results are subpar.

So I love the small internet movement. I love hanging out on a few Usenet groups (now that Google has fucked off). I love neocities. And I LOVE just having my own webpage where I can do my part and share some information that people find entertaining or helpful.

There's that gap from being clueless to having the light bulb turn on. (I've been learning Rust on and off and, believe me, I've opened plenty of doors to dark rooms, and in most of those I have not yet found the light switch.) And I love the challenge of finding helpful ways to bridge that gap. "If only they'd said X to begin with!" marks what I'm looking for.

I'm not always correct (I challenge anyone to write 5000 words on computing with no errors, let alone 750,000) or as clear as I could be, but I think that's OK. Anyone aspiring to write helpful information and put it online should just go for it! People will correct you if you're wrong[2] :) and you'll learn a *ton*. And your readers will learn something. And you'll have made the small web a slightly larger place, giving us more freedom to ignore the large web.

[1] When I say "great information", I don't necessarily mean "high quality". But the intention was there, and I feel that makes the difference.

[2] It can be really embarrassing to put bad information out there (for me, anyway). I don't want people to find out I don't know something and think less of me. But that's really illogical--I don't even personally know my critics! And here's the thing: when the critics are right (and they're often right!), you can go fix your material. And then it becomes more correct. After a short time of fixing mistakes critics point out, you get on the long tail of errors, and these are things that people are a lot less judgmental about. The short of it is, do the best you can, put your writing out there, correct errors as they are reported or as you find them, and repeat. I cannot stress how grateful I am to everyone who has helped me improve my guides, whether mean-spirited or not, because it's helped me and so many others learn the right thing.

Re: Beej's Guide to Learning Computer Science

#108

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

#109

What does this matter now? It seems like economic collapse and the destruction of value coming out of programming is basically imminent

> 7.3 No Copy-Paste Coding > [...] But nowadays they tend to punt to some AI. Beginning developers should not do this. I don't know how I feel about this. I get the sentiment, I really do. But it almost reads like a chess Grandmaster in the 90s telling up-and-coming players to not practice against Deep Blue because it will teach you bad habits.

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 could figure out a way to grade on effort rather than correctness, I'd do that every time. Bust your ass and get a program 80% working and learn a ton doing it? You get an A. Spend 2 minutes copying ChatGPT output of a perfectly-working solution? F.

The effort is where you build the skill. And the skill is critical problem-solving. Having someone (or something) else do that work does not improve your skill.

Now, eventually, when you get to be better than the AI (and it's not hard to do that), stuff that you find easy is not longer beneficial to your learning. I've implemented linked lists a hundred times by now; I no longer learn anything from doing it. When you're that experienced with a subtopic, then sure, get ChatGPT to write it, and you verify it.

Going back to the weight lifting analogy, once you've been lifting the 2 kg weights for a while, you're not going to get much out of it. At that point, if the 2 kg weight must be lifted because it's part of your job description, have your robot do it. Meanwhile, you go on to the 4 kg weights and build muscle.

Re: Beej's Guide to Learning Computer Science

#110

Takes drastically less effort to get good at programming than other disciplines Want to be a professional accompanist? Good luck. You better have been taught since you were a child and quickly picked up sight-reading and were good at it for the last 20 years.

I'm sure that's true, but there are different kinds of "difficult" that rely on different kinds of effort.
Post reply on HN