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.
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.
Of course you will find some professions where work and hobby overlap, but that does not hold for most professions out there. Most of the working world will clock out and mentally check out as soon as the workday is over. Even when only counting professional work.
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.
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.
> 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.
Anecdotally, this is my perception as well- I'd say maybe 5% of the people I've worked with are the "finish software dev workday, then go home and jump right back on the computer" type. Personally, when I'm done my workday, the last thing I want to do is sit back down at a computer (with rare exceptions for inspiration spikes).
>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.
It is absolutely the case in industries like law and consulting that you are expected to put in time after hours to network with clients/partners, and get certifications.
> "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."
Pro bono cases are basically "hobbyist" projects for lawyers - they get to practice their skills, and maybe do some good, but they don't get paid for them.
> 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.
I am very certain that you are at least wrong about management consultants. I know quite some who work on side projects (even though they barely have any time) and/or level up their skills during the few free hours on the weekend.
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
> 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.
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 on top of it is pain. Doesn't help being a solo dev in a start up either so maybe that's the issue.
I think this is just the nature of paid work, though. Academics are generally in love with their topic, and very much not in love with the kind of admin busywork that they have to spend much of their working hours doing.
As a solo dev in a start up, man is this true. I have a lot of control over the product, but nobody else understands or cares how features are achieved. I feel your pain.
I like pushing the boundaries and making seemingly hard visions come to life. Sadly, I'm often working on CRUD applications where most things are possible and boring. At home I work on obscure side projects to see what is possible with either existing open-source projects, or non-existing projects (things I want that I can't find).
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 better compete across z"
> 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 to the grand epiphany that drives 99% of people. There's nothing special about programmers.
Interestingly, the three careers you listed are protected by strict professional credentialing systems that do not exists for programmers, and professionals in law and medicine enjoy a social prestige that is certainly attractive to a group of people who might not innately enjoy the work itself.
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.
Looking at the article headings these don't feel like computer science, and rather how to approach coding problems. This is useful, but not Computer Science. I think that we should refer to this as Programming Engineering or Software Engineering.
It is important to call these distinctions out in my mind because the Computer Science is often the concepts or foundations, whereas the Software Engineering is about how to convert those concepts and use them in a situation such that the concepts are well implemented, tested, and will stand the tests of time (including changing it). They're different skills and concepts.
I think that's a valid point. The naming came from the fact that the (my) students reading this are in a degree program called "Computer Science". But I do thing that's worth a mention in the guide. Cheers!
Beej has been a stable reference for me for decades, also. By applying the knowledge gained in his networking guide, I've won many contracts for work that others considered too difficult (or "impossible" in the budget constraints) .. but which I managed to deliver, on time and under budget, because Beej had led the way.
Easily one of my top 5 favourite people on the Internet, alongside Linus Torvalds and so on.. I would say Beejs' impact on technology has been understated but definitely an order of magnitude or two greater than most.
He also taught me networking in C in the early 2000's! A few years ago I moved from the Bay Area up to Bend, Oregon and ended up running into him in-person at one of the tech meetups.
I was so floored to meet him in person, and as you'd probably imagine, he's super kind and relaxed =D
A++ human being who's contributed so much to our field.
Not my kids, but I also passed my Networking course thanks to his guide (early 10s), and I used it as reference material for teaching about sockets in an Operating Systems course this year.
Used his book to learn networking in the late 10s! It's a timeless book at this point. Using the C/Unix socket APIs as the foundation is fantastic. He dives into code and actual network function so well for such a quick read.
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?
> 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).
Yea agree, the job market isn't difficult due to AI. Its difficult because big tech overhired massively for years, making it seem like there was demand for this many developers. Turns out if a field is somewhat saturated and the big tech corps lay off a lot of people the market gets difficult. Ill enjoy my current employment for as long as possible and hopefully the market will be better once I am looking for a job again.
I use my time off to learn a ton about Erlang/Elixir in the hopes of maybe entering the BEAM domain some day. Way less competition compared to Javascript Python devs.
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, in line with the quality of content on blog posts decreasing.
My perception of AI discussions in HN is that it's typically negative to very cautiously optimistic, I have no clue what the possible astroturfing would be.
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.
HN has become per-thread view-enforced. It's pretty obvious now what the "correct" views are for any given thread, any dissenting comments are downvoted to death. When the next thread comes along, the opposite view might be the "allowed one". There's a particularly egregious amount of veiled partisanship behind a lot of posting too.
This could be a group think phenomenon, or it could be botting. Hard to say. I'd say in at least a few cases, it's someone with access and interest into bot downvotes landing on a thread and using that to suppress dissenting views.
I think the title or the author of the posting tends to draw a certain crowd.
For example, I recognised the name because the author also has a famous guide on network programming. Thanks to his reputation, I was curious what he has to say about learning CS.
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 effects of their actions.
It's a shame. HN felt like one of the last bastions of the old internet where techies came to discuss tech, science, and occasionally important worldwide news, in a technical and objective way.
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)?
https://www.mathacademy.com/ is a great combination of structured learning across an incremental skill tree with practise problems to prove to yourself that you understand. It’s a big commitment but helped me go from “hasn’t done any math for a while and probably missed some basics” to much more comfortable. You can do the self-test to pick a starting level and work up from there.
As with many things you basically have to sit down and do the work, though, you’re not going to get better just by inhaling books and videos. MA isn’t a fun/gamified learning platform like Duolingo, the ‘fun’ comes from putting the work in and seeing yourself improve. For me it went from a grind initially to something I enjoyed doing.
https://www.geogebra.org/ is also worth exploring for its novel visual approach, but is much more rudimentary, less challenging, and less deep than MA.
I second this. Mathacademy is great and there is no way OP would be able to just jump into university-level math courser without re-learning prerequisites, considering they said that they forgot most of the school-level math.
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.
My advice is to (re-)learn elementary algebra to a proficient level before attempting any other branch of math. That is a core prerequisite for absolutely everything. By elementary algebra I mean roughly everything in classes called “Algebra” or “pre-calculus” that you learn in an American high school before calculus. Geometry and trigonometry can’t hurt either but algebra is more central.
For as much as I've learned in the last 10 years of being a software engineer, I've frankly forgotten at least half of the maths I once knew.
Of course, I could take the time to re-learn it all if need be, but I'm definitely thankful to have went straight from high school into college. Having to re-learn everything just to be at baseline would make the whole experience far less enjoyable. Kudos to those that have done so.
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.
Math Academy is a good option, but I wrote about the issues I had with it here.
Recently, I've been going through Introduction to Graph Theory by Richard J Trudeau. It's from the 70s, and I'm doing all the exercises. It really is an intro, and teaches some set theory and proof stuff. Doing Math Academy at least taught me that doing exercises is incredibly important for mathematics learning.
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.
It's not easy as an adult but it's definitely doable, don't get discouraged. The main hurdle isn't knowledge of specific topics, most undergraduate courses assume little to no previous baggage, i'd say it's more the lack of "mathematical maturity"[0], or the ability to "bridge" between the formal language of math and the intuitive "what we're doing here".
When you're writing code, you probably don't stop to think "I need to do this operation for each element of this vector, a for loop is what I need", you instead have a high level idea of what you're trying to accomplish and "make the code happen", filling in the formalities as needed. Trying to go line by line is how beginners operate, and that's why they never get anything done. I'd never get anything done either if I had to work like that!
The reason why many people get stuck in math is similar. You read a definition that goes "for all ε>0 there exists δ such that for all ..." and you immediately get confused, trying to keep the entire "abstract syntax tree" of what you just read in memory. Like in the code example, the "mature" way to see it is that we're trying to capture an idea, and the formalism is instrumental in that. What are the variables "morally" doing? (At a certain point you'll realize the formalism is actually working for you rather than against you, but that's a rant for another time...)
The conceptually easier but more time-consuming thing to do is to practice symbol pushing if you lost that since high school. For example: is it immediately obvious to you what (a+b)^n is if you expand it? Do you remember how to factor (a^3 + b^3)? Do not despair if you don't. Many more people than you think can't do that off the top of their heads, but it's the kind of "mechanical" skills that's probably blocking you at this point.
Another important aspect to learn is a bit of notation, the "standard library" of math, as it were. Understand "for all" and "exists" as quantifiers, and how they interact with negation and logical operators. It should be eventually obvious to you that negation "inverts" quantifiers. Learn at least a little bit how to work with naive set theory: union, intersection, etc. Look up what the "common" sets (integers, rationals, reals, complex) are and how they relate with each other.
And finally, try to get a feel for how proofs work. That's going to be important, even for the type of math you need for computer science.
My university offered the math classes in either CS or Math departments. I always chose the math department. Better teachers and far more interesting professors (as people)
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).
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.
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.
I recently read his networking guide as part of a class and it was invaluable. It gets you up to speed without overwhelming you with detail. It's a lightweight read.
That sounds like HPBN (High-Performance Browser Networking), an awesome and accessible resource everyone doing anything w the web should read. https://hpbn.co (not .com)
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.
Yea agree, free educational content is worth so much. Especially in a world where everyone wants to make a quick coin by selling courses or whatever.
Would never have looked into C if it wasn't for beejs guide, as that other book that's often recommended is as dry as math books...
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.
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.
I code for free. I get paid to deal with JIRA, Zoom meetings, and the Bay Area.
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.
Maybe not side projects, but their work schedules can be insane when compared to the typical SW engineer.
I would argue that the majority of rank and file programmers are not coding outside of work.
It is absolutely the case in industries like law and consulting that you are expected to put in time after hours to network with clients/partners, and get certifications.
Lawyers pay up front with an extra three years of law school and a bar exam that only 79% pass on the first try according to https://www.reuters.com/legal/government/first-time-bar-exam... .
I am very certain that you are at least wrong about management consultants. I know quite some who work on side projects (even though they barely have any time) and/or level up their skills during the few free hours on the weekend.
Deleted Comment
Deleted Comment
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
> 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
I like pushing the boundaries and making seemingly hard visions come to life. Sadly, I'm often working on CRUD applications where most things are possible and boring. At home I work on obscure side projects to see what is possible with either existing open-source projects, or non-existing projects (things I want that I can't find).
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 to the grand epiphany that drives 99% of people. There's nothing special about programmers.
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.
It is important to call these distinctions out in my mind because the Computer Science is often the concepts or foundations, whereas the Software Engineering is about how to convert those concepts and use them in a situation such that the concepts are well implemented, tested, and will stand the tests of time (including changing it). They're different skills and concepts.
Easily one of my top 5 favourite people on the Internet, alongside Linus Torvalds and so on.. I would say Beejs' impact on technology has been understated but definitely an order of magnitude or two greater than most.
I was so floored to meet him in person, and as you'd probably imagine, he's super kind and relaxed =D
A++ human being who's contributed so much to our field.
Sometimes I just love the Internet, man.
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?
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).
I use my time off to learn a ton about Erlang/Elixir in the hopes of maybe entering the BEAM domain some day. Way less competition compared to Javascript Python devs.
Things change quickly though, and it makes sense for opinions to, too.
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, 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.
Company blog/announcement -> developer blog -> HN front page -> Twitter -> small tech blogs -> YT niche videos -> Reddit -> PR newswire -> bigger (paid content) blogs -> YT general/news videos -> Facebook -> local news -> national news.
Meanwhile, newer developers who think they're early on groundbreaking tech news are spreading this to their friends via Discord and Whatsapp etc.
Yet all of this media is controlled, just to generate buzz and boost stock prices.
This could be a group think phenomenon, or it could be botting. Hard to say. I'd say in at least a few cases, it's someone with access and interest into bot downvotes landing on a thread and using that to suppress dissenting views.
For example, I recognised the name because the author also has a famous guide on network programming. Thanks to his reputation, I was curious what he has to say about learning CS.
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 effects of their actions.
It's a shame. HN felt like one of the last bastions of the old internet where techies came to discuss tech, science, and occasionally important worldwide news, in a technical and objective way.
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)?
As with many things you basically have to sit down and do the work, though, you’re not going to get better just by inhaling books and videos. MA isn’t a fun/gamified learning platform like Duolingo, the ‘fun’ comes from putting the work in and seeing yourself improve. For me it went from a grind initially to something I enjoyed doing.
https://www.geogebra.org/ is also worth exploring for its novel visual approach, but is much more rudimentary, less challenging, and less deep than MA.
Of course, I could take the time to re-learn it all if need be, but I'm definitely thankful to have went straight from high school into college. Having to re-learn everything just to be at baseline would make the whole experience far less enjoyable. Kudos to those that have done so.
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.
Recently, I've been going through Introduction to Graph Theory by Richard J Trudeau. It's from the 70s, and I'm doing all the exercises. It really is an intro, and teaches some set theory and proof stuff. Doing Math Academy at least taught me that doing exercises is incredibly important for mathematics learning.
https://news.ycombinator.com/item?id=46124247
Deleted Comment
Only one or two? :)
It's not easy as an adult but it's definitely doable, don't get discouraged. The main hurdle isn't knowledge of specific topics, most undergraduate courses assume little to no previous baggage, i'd say it's more the lack of "mathematical maturity"[0], or the ability to "bridge" between the formal language of math and the intuitive "what we're doing here".
When you're writing code, you probably don't stop to think "I need to do this operation for each element of this vector, a for loop is what I need", you instead have a high level idea of what you're trying to accomplish and "make the code happen", filling in the formalities as needed. Trying to go line by line is how beginners operate, and that's why they never get anything done. I'd never get anything done either if I had to work like that!
The reason why many people get stuck in math is similar. You read a definition that goes "for all ε>0 there exists δ such that for all ..." and you immediately get confused, trying to keep the entire "abstract syntax tree" of what you just read in memory. Like in the code example, the "mature" way to see it is that we're trying to capture an idea, and the formalism is instrumental in that. What are the variables "morally" doing? (At a certain point you'll realize the formalism is actually working for you rather than against you, but that's a rant for another time...)
The conceptually easier but more time-consuming thing to do is to practice symbol pushing if you lost that since high school. For example: is it immediately obvious to you what (a+b)^n is if you expand it? Do you remember how to factor (a^3 + b^3)? Do not despair if you don't. Many more people than you think can't do that off the top of their heads, but it's the kind of "mechanical" skills that's probably blocking you at this point.
Another important aspect to learn is a bit of notation, the "standard library" of math, as it were. Understand "for all" and "exists" as quantifiers, and how they interact with negation and logical operators. It should be eventually obvious to you that negation "inverts" quantifiers. Learn at least a little bit how to work with naive set theory: union, intersection, etc. Look up what the "common" sets (integers, rationals, reals, complex) are and how they relate with each other.
And finally, try to get a feel for how proofs work. That's going to be important, even for the type of math you need for computer science.
Good luck!
--- [0] https://en.wikipedia.org/wiki/Mathematical_maturity
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)
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).
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.
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.
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.