Remix.run Logo
Beej's Guide to Learning Computer Science(beej.us)
222 points by amruthreddi 2 days ago | 79 comments
TrackerFF 30 minutes ago | parent | next [-]

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 - similarity lucrative ventures.

alexchantavy 9 hours ago | parent | prev | next [-]

> 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

zwnow 8 hours ago | parent | next [-]

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.

Schiphol 3 hours ago | parent | next [-]

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.

bryanlarsen an hour ago | parent | prev | next [-]

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

markus_zhang 40 minutes ago | parent | next [-]

I think it's just they do not have the financial freedom to say No to many of the tasks. Once I have the FU money I'd definitely quit.

But what is a hobbyist surgeon?

cess11 an hour ago | parent | prev [-]

On the face of it recreational surgery seems like a risky hobby.

bryanlarsen 30 minutes ago | parent [-]

I meant it as a shorthand for the standard gripe of "love my job, hate the paper work.". Many surgeons will also admit that they hate clinic work too, it's so much nicer once the patient is sedated and they can drop their bedside manner.

However there are jobs close to "recreational surgery".

One is surgical assisting. The pay is poor compared to being the primary surgeon, but has none of the patient or bureaucratic responsibility. Retired surgeons often do this, and not because they need the money.

Another is volunteering in the third world. Little bureaucracy and no long term patient contact.

badmonster 6 hours ago | parent | prev | next [-]

Have you found any strategies that help maintain joy while dealing with business constraints? What boundaries work best?

f1shy 5 hours ago | parent | next [-]

As long as:

(1) The technical staff understand the business constraints AND (2) management understands the technical constraints AND (3) both constraints "match" you are in heaven. I've seen that. Is possible. Is nice.

More often than not, one of the 3 conditions is not met. In case of 1 and 2, if they are good professionals, talk can (and typically will) help. In case of 3, you business case sucks, that is a big problem, change company. Run.

zwnow 2 hours ago | parent | prev [-]

I am the worst example to ask this. I regularly go rogue or work on private shit during work. As long as there isn't any pressing work to do I force the balance I need. Perks of working alone I guess.

shackleton1894 44 minutes ago | parent | prev | next [-]

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.

falcor84 5 hours ago | parent | prev [-]

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"

f1shy 5 hours ago | parent | next [-]

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

zwnow 2 hours ago | parent | prev | next [-]

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

falcor84 19 minutes ago | parent [-]

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

stuffn 5 hours ago | parent | prev [-]

PMs are an invention of PHBs that sat in too many introductions to agile from management consulting firms.

Actual agile gets rid of them along with all the other cruft. PM as a title is fundamentally a jobs program for people who couldn’t hack it as programmers, or are nepo hires. You could argue a North Star like a product manager performs useful business alignment. But in 12 years across several companies I haven’t met a single project manager that is more than a professional problem manufacturer with selective hearing that miraculously ignores expert engineering opinion.

almostgotcaught 3 hours ago | parent | prev [-]

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

Mr-Frog 2 hours ago | parent | next [-]

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.

TrackerFF an hour ago | parent | prev [-]

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.

markus_zhang 38 minutes ago | parent [-]

Many people love their job in the beginning but hate it towards the end though. The book "Showstoppers" shows some examples.

maciejzj 4 hours ago | parent | prev | next [-]

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?

lII1lIlI11ll 2 minutes ago | parent | next [-]

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

npinsker 4 hours ago | parent | prev | next [-]

I actually feel like the discussion here has trended relatively negative on AI for the most part.

Things change quickly though, and it makes sense for opinions to, too.

pardon_me 2 hours ago | parent | prev | next [-]

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.

rfrey 16 minutes ago | parent | next [-]

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

pardon_me 2 hours ago | parent | prev [-]

Another aspect is using HN as an early seed for wider advertising.

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.

63stack 4 hours ago | parent | prev | next [-]

My impression is that there is definitely astroturfing around AI, yes

mjburgess 4 hours ago | parent | prev [-]

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.

elbear an hour ago | parent | next [-]

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.

pardon_me 2 hours ago | parent | prev [-]

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.

fragmede 2 hours ago | parent | next [-]

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

graemep an hour ago | parent | prev [-]

Everyone can upvote though. Upvote unfairly downvoted comments even if you disagree with them.

matt3210 10 hours ago | parent | prev | next [-]

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.

egwor 7 hours ago | parent | next [-]

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.

aa-jv 3 hours ago | parent | prev | next [-]

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.

lou1306 5 hours ago | parent | prev [-]

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.

Sometimes I just love the Internet, man.

pygar 10 hours ago | parent | prev | next [-]

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

whatamidoingyo 28 minutes ago | parent | next [-]

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.

modernerd 8 hours ago | parent | prev | next [-]

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.

nathan_douglas an hour ago | parent | next [-]

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.

lII1lIlI11ll 6 hours ago | parent | prev [-]

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.

chrisweekly 10 hours ago | parent | prev | next [-]

https://betterexplained.com is a goldmine

randmeerkat 10 hours ago | parent | prev | next [-]

Khan Academy https://www.khanacademy.org/

umanwizard 10 hours ago | parent | prev | next [-]

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.

tresdots 9 hours ago | parent [-]

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.

qsort 8 hours ago | parent | prev [-]

> one or two math subjects

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

monero-xmr 8 hours ago | parent [-]

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)

qsort 8 hours ago | parent [-]

I have a degree in CS and I got a lot from it, so I'm absolutely not going to bad mouth CS, but I have the feeling that it's possible to just get a piece of paper having learned little to nothing in a way that couldn't happen with Math or Physics.

Obviously lots of great people have CS backgrounds, but it also feels like "how did this idiot get a degree" happens far more frequently for CS than Math. It's not like everyone coming out of a Math degree is automatically a genius, but they set the bar higher and as a result math classes "feel" better.

mettamage 7 hours ago | parent [-]

Psychology and business administration is even worse.

I studied CS, psychology and business administration (I dropped out of BA, it was useless info)

woile 8 hours ago | parent | prev | next [-]

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)

marginalia_nu 5 hours ago | parent | next [-]

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

nsavage 7 hours ago | parent | prev [-]

Since I had to find the link: https://beej.us/guide/bgnet/

silisili 9 hours ago | parent | prev | next [-]

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.

armadsen 7 hours ago | parent | next [-]

I was lucky to work with him for a while. He’s a great guy IRL too.

zwnow 8 hours ago | parent | prev [-]

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

liendolucas 3 hours ago | parent | prev | next [-]

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

hahahacorn 10 hours ago | parent | prev | next [-]

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.

bencornia 10 hours ago | parent [-]

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.

chrisweekly 10 hours ago | parent [-]

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)

bencornia 2 days ago | parent | prev | next [-]

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

elseweather 10 hours ago | parent | prev | next [-]

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 10 hours ago | parent | prev | next [-]

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

stonecharioteer 2 days ago | parent | prev | next [-]

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.

Madmallard 8 hours ago | parent | prev | next [-]

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

jhatemyjob 7 hours ago | parent [-]

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

aswegs8 6 hours ago | parent | next [-]

Especially if your job will be to let Deep Blue play against others so you should know how to control it well. That maybe doesn't satisfy the purists around here but it makes Juniors way more competitive in the short term, hence they are well-advised to use it.

cheikhcheikh 6 hours ago | parent | prev | next [-]

terrible analogy. It's more like a chess grandmaster telling you not to let Stockfish play for you. Which would be a very obvious thing to not do anyway, just like for a learning programmer.

traxler 6 hours ago | parent | prev [-]

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

No idea if chess grandmasters did do that in the 90s, but frankly it would have been good advice. Just as it is good advice today for up-and-coming players not to practice against stockfish, leela or whatever. Unless you are already very proficient in chess, practicing against those engines will teach you very little .

randoglando 4 hours ago | parent [-]

Gukesh, the current world champion, did not use engines for analysis until very late. I think until after he became a GM.

imvetri 10 hours ago | parent | prev | next [-]

Thanks for this !

Madmallard 2 hours ago | parent | prev | next [-]

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 10 hours ago | parent | prev [-]

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.

hahahacorn 9 hours ago | parent | next [-]

> 1 Foreword

> Are you getting into Computer Science, or thinking about it? Or maybe you’re in it already. This super-high-level guide is for you!

> I’m not going to talk about how to write code (much). I’ll I’m going to talk about in these roughly 40 pages is more about how to learn when you’re a nascent software developer.

Page 1

Antibabelic 7 hours ago | parent [-]

So the answer is "it's not a guide to computer science". It's like a guide talking about how to get better at mental calculation being titled "guide to learning mathematics", or a guide to language learning being titled "guide to learning linguistics".

noosphr 6 hours ago | parent [-]

Yes, this is a guide on how to be a software developer, not a computer scientist. Poor name aside it isn't terrible advice for what it is.

kaladin-jasnah 10 hours ago | parent | prev | next [-]

What about operating systems, architecture, compilers, networking, and the like? I have seen people argue that computer science is the more theoretical side of things, but many university CS programs cover both systems and theory (or sometimes skew to one side).

pmontra 5 hours ago | parent [-]

Yes, my CS program of 40 years ago had 4 parts. Sorted by decreasing abstraction level:

Math, physics, statistics

Theoretical CS, the one in my original comment

OS, compilers, networking, computer vision, transmission codes

Computer languages and having to write actual programs, how transistors work up to logical gates, adders, CPUs and machine language

Of course the separations are not clear cut: we had relational algebra and SQL commands in the same course.

johnnyanmac 9 hours ago | parent | prev [-]

I see it as "learning how to learn", not directly learning itself like a curriculum. It's more for those who want to build proper study habits.

Reading the chapter of AI seems to support that feeling. It was about tips on where to use it, where to not use it as a shortcut, how to be critical of any output, and some personal speculation.