Beej's Guide to Learning Computer Science

beej.us

350 points by amruthreddi 3 days ago


TrackerFF - 11 hours ago

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 culture and “It’s my hobby, and I’m extremely passionate about it” mentality.

So people are willing to learn new skills in their spare time, unpaid of course. They’re willing to pull OT and weekend work, for the mission.

And those that don’t, are deemed lazy or fakes, not passionate enough.

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.

My point is - those are the types of people you’re up against. Those are the type of people many employers love.

If you have zero interest for the craft, and just plan on grinding for the money, there are other similarly lucrative ventures, which might align with your own interests, and where it is accepted to be in it for the money.

alexchantavy - 19 hours ago

> 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 you want to program every second of the day.

> Just make sure you have the drive to make it happen.

Man this is so true

maciejzj - 14 hours ago

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 HN posts have a lot of astroturfing from AI-adjacent organisations?

matt3210 - 20 hours ago

Beej taught me networking in c in the early 00s. He will now teach my son computer science in the 20s. The circle of life.

pygar - 20 hours ago

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

woile - 18 hours ago

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)

hahahacorn - 20 hours ago

I’ve had Beej’s Guide to C and Beej’s Guide to networking bookmarked for an embarrassing amount of time.

But this is the first guide that I know the material! I have “learned computer science” (somewhat). And I have to say it has propelled Beej’s other guides to the top of my reading list. The subchapters I skimmed and their content are just so relevant and I know many new and experienced devs (myself included) who would still benefit greatly from reading this. Just exceptionally well done.

layer8 - 10 hours ago

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.

silisili - 19 hours ago

I feel stupid saying this over and over each time one of his guides pop up, and I know he lurks here, but thanks Beej.

All of his material is absolutely top notch. His guide to network programming was instrumental to both my understanding and career. It often feels like thanks isn't quite enough.

idkwhatiamdoing - 7 hours ago

ice overview. A personal struggle of mine as someone who is self taught (with a degree in statistics) and has a full time job that does not constantly require programming, I struggle with learning fundamentals alongside doing actual projects. If someone has any advice in this regard, it would be much welcome.

groundzeros2015 - 10 hours ago

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

notepad0x90 - 4 hours ago

Big fan of the single-page and widescreen! I wish there was an extension that did that magically for random blogs.

liendolucas - 13 hours ago

I have used the guide when at college and it was an extremely good read at the time. Learnt so much. I should probably buy a printed copy.

Being that said, at the moment I'm trying to implement a simple non-blocking TLS server in Python with a custom protocol (no external deps, only built-ins) and couldn't find a single guide online that treats the topic. Having read the Python documentation it appears that there are a lot of nuances and pitfalls to correctly implement it. This was my impression after reading the docs, though I could be wrong.

I haven't checked if current Beej's guide covers the topic, in case it doesn't, did anyone embarked in doing this with success?

The Python docs on the topic: https://docs.python.org/3/library/ssl.html#ssl-nonblocking

bencornia - 2 days ago

I am currently enrolled in a operating systems course where Beej's guide to network programming was invaluable. Highly recommend!

elseweather - 21 hours ago

Beej's guide to network programming is an all-time classic, and I suspect this is the same (even before I've read it thoroughly).

zeeqeeng - 20 hours ago

I've had Beej's Guide to C, and I would say it's the best C learning material for myself ever.

- 17 hours ago
[deleted]
stonecharioteer - 2 days ago

I started skimming this but it seemed to be more of a learning how to learn CS book. I'm a fan of his other works. This one, I'm not so sure the right folks are going to find it when they need it/ should use it.

imvetri - 20 hours ago

Thanks for this !

Madmallard - 12 hours ago

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.

pmontra - 20 hours ago

Well done but is this a guide to Computer Science or to Software Engineering? In a Guide to CS I expected to find information theory, computability, complexity, finite state automa, language grammars etc.

Anyway, the audience is

> Undergrad students just getting into programming

so it's naturally biased toward the engineering part of the subject.

Madmallard - 19 hours ago

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