[HN Gopher] Beej's Guide to Learning Computer Science
       ___________________________________________________________________
        
       Beej's Guide to Learning Computer Science
        
       Author : amruthreddi
       Score  : 340 points
       Date   : 2025-11-30 11:03 UTC (2 days ago)
        
 (HTM) web link (beej.us)
 (TXT) w3m dump (beej.us)
        
       | bencornia wrote:
       | I am currently enrolled in a operating systems course where
       | Beej's guide to network programming was invaluable. Highly
       | recommend!
        
       | stonecharioteer wrote:
       | 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.
        
       | elseweather wrote:
       | 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).
        
       | pygar wrote:
       | 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)?
        
         | umanwizard wrote:
         | 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 wrote:
           | 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.
        
         | chrisweekly wrote:
         | https://betterexplained.com is a goldmine
        
         | randmeerkat wrote:
         | Khan Academy https://www.khanacademy.org/
        
         | qsort wrote:
         | > 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 e>0 there exists d 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 wrote:
           | 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 wrote:
             | 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 wrote:
               | Psychology and business administration is even worse.
               | 
               | I studied CS, psychology and business administration (I
               | dropped out of BA, it was useless info)
        
         | modernerd wrote:
         | 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.
        
           | lII1lIlI11ll wrote:
           | 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.
        
           | nathan_douglas wrote:
           | 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.
        
             | Rendello wrote:
             | > Its structure and modularity is exactly what I needed.
             | 
             | Through great effort, I completed Mathematical Foundations
             | I & II. I talked about it a bit here [1][2]. If you read
             | through MathAcademy's methodology and reasoning, it's
             | incredibly strong [3], but in practice I never felt
             | confident in my understanding or execution, everything felt
             | quite discrete and I didn't understand the relationships or
             | purposes of what I was doing. I kept going because I _was_
             | getting better, and because people online who were quite
             | good at math said not to try _too hard_ to understand
             | things fully at first, since the abstraction level of math
             | is so high.
             | 
             | The weeks before finishing MFII, my motivation was higher
             | than ever. The day I finished, I felt nothing, and in the
             | following weeks I decided that it was time to let it go for
             | now.
             | 
             | I think MA is good. I've never done so many exercises in my
             | life, and although I wasn't super confident, I was far
             | better at math than I'd ever been. But I think MA probably
             | needs a lot more multi-part exercises so you understand
             | what you're doing and where to use things. I feel like I
             | learned "Discrete Math", but in the sense that all the
             | lessons were discrete and I couldn't draw connections
             | between them.
             | 
             | https://news.ycombinator.com/item?id=42519882
             | 
             | https://news.ycombinator.com/item?id=43275665
             | 
             | https://www.justinmath.com/files/the-math-academy-way.pdf
        
         | whatamidoingyo wrote:
         | 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.
        
           | ink_13 wrote:
           | What's the name of the book?
        
             | whatamidoingyo wrote:
             | It's called "Discrete Mathematics and its Applications" by
             | Kenneth H. Rosen. A google search reveals a PDF as the
             | first result.
        
         | Rendello wrote:
         | 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.
         | 
         | https://news.ycombinator.com/item?id=46124247
        
       | imvetri wrote:
       | Thanks for this !
        
       | hahahacorn wrote:
       | 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 wrote:
         | 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 wrote:
           | 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)
        
       | zeeqeeng wrote:
       | I've had Beej's Guide to C, and I would say it's the best C
       | learning material for myself ever.
        
       | matt3210 wrote:
       | 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 wrote:
         | 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.
        
           | beej71 wrote:
           | 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!
        
         | lou1306 wrote:
         | 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.
        
           | jjice wrote:
           | 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.
        
         | aa-jv wrote:
         | 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.
        
         | rdegges wrote:
         | 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.
        
       | pmontra wrote:
       | 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.
        
         | kaladin-jasnah wrote:
         | 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 wrote:
           | 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 wrote:
         | 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.
        
         | hahahacorn wrote:
         | > 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 wrote:
           | 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 wrote:
             | 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.
        
       | alexchantavy wrote:
       | > 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 wrote:
         | 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.
        
           | badmonster wrote:
           | Have you found any strategies that help maintain joy while
           | dealing with business constraints? What boundaries work best?
        
             | f1shy wrote:
             | 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 wrote:
             | 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.
        
           | falcor84 wrote:
           | 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"
        
             | stuffn wrote:
             | 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.
        
             | f1shy wrote:
             | >> 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).
        
               | gryfft wrote:
               | I think there's also an element here of... when you work
               | a long time on something, you tend to become emotionally
               | attached to it, and you want it to be good and work well.
               | Time to fix technical debt and work on making the product
               | _good_ is often implicitly waved as a carrot ahead of
               | people who care about that sort of thing.  "We can
               | prioritize that after we ship $FEATURE."
               | 
               | This then feels like a betrayal on an emotional level
               | when instead of a nice block of time to fix technical
               | debt, instead the priority becomes $NEXT_FEATURE (the
               | "features that don't exist yet.")
               | 
               | Management that can successfully keep the treadmill
               | running ships features faster, so it keeps happening, and
               | can contribute to burnout as (what felt like) implicit
               | promises are repeatedly broken for the good of the
               | business at the expense of the product.
        
               | HPsquared wrote:
               | You can just remember that in many cases you're not
               | replaceable, and can just insist to management. They love
               | it really.
        
             | zwnow wrote:
             | There is a difference in promising features without talking
             | to the devs or promising features after having talked to
             | the devs.
        
               | falcor84 wrote:
               | 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).
        
           | Schiphol wrote:
           | 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 wrote:
           | I know dance instructors, cabinet makers and surgeons who all
           | love their work as a hobby but hate it as a job.
        
             | cess11 wrote:
             | On the face of it recreational surgery seems like a risky
             | hobby.
        
               | bryanlarsen wrote:
               | 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.
        
             | markus_zhang wrote:
             | 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?
        
               | GuinansEyebrows wrote:
               | body modders? folks who like to hang from hooks? i wonder
               | how many folks in those communities have advanced medical
               | degrees.
        
               | dangets wrote:
               | A taxidermist.
        
               | tuveson wrote:
               | > But what is a hobbyist surgeon?
               | 
               | Serial killer
        
           | shackleton1894 wrote:
           | 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.
        
           | giancarlostoro wrote:
           | > current boundaries of the product
           | 
           | 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).
        
             | zwnow wrote:
             | > I'm often working on CRUD applications where most things
             | are possible and boring.
             | 
             | Gotta disagree, a lot of things aren't possible as soon as
             | you have a data scheme set which was running in prod for a
             | while. Introduces a lot of complexity when data structures
             | suddenly have to change.
        
         | almostgotcaught wrote:
         | > 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 wrote:
           | 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.
        
             | almostgotcaught wrote:
             | i have no idea what's interesting about this? guilds make
             | it more likely that people are willing to grind? less
             | likely? i don't understand?
        
           | TrackerFF wrote:
           | 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 wrote:
             | Many people love their job in the beginning but hate it
             | towards the end though. The book "Showstoppers" shows some
             | examples.
        
       | silisili wrote:
       | 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.
        
         | zwnow wrote:
         | 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...
        
         | armadsen wrote:
         | I was lucky to work with him for a while. He's a great guy IRL
         | too.
        
       | Madmallard wrote:
       | What does this matter now? It seems like economic collapse and
       | the destruction of value coming out of programming is basically
       | imminent
        
         | jhatemyjob wrote:
         | > 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.
        
           | traxler wrote:
           | > 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 wrote:
             | Gukesh, the current world champion, did not use engines for
             | analysis until very late. I think until after he became a
             | GM.
        
           | aswegs8 wrote:
           | 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 wrote:
           | 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.
        
           | beej71 wrote:
           | 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.
        
             | ontouchstart wrote:
             | I think sooner ChatGPT will provide answers based on your
             | Guides:
             | 
             | https://news.ycombinator.com/item?id=46125283
        
             | jhatemyjob wrote:
             | Maybe we crossed the Rubicon and there's too much
             | opportunity cost to learn how to implement the fundamental
             | data structures and algorithms. Instead of memorizing the
             | ~10 lines of code for binary search, memorize the words
             | "binary search" and know its tradeoffs. The C compiler made
             | it so we don't need to remember to push our registers to
             | the stack and then jump to the subroutine. I think LLMs are
             | similar. It frees your headspace for other stuff.
             | 
             | The analogy isn't perfect since LLMs hallucinate. A
             | compiler will error if it can't create valid output. But
             | still. Time is limited. I don't think it's a good idea to
             | spend your formative years learning how to manage
             | registers. Maybe soon it will be the same for DS&A.
        
       | woile wrote:
       | 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)
        
         | nsavage wrote:
         | Since I had to find the link: https://beej.us/guide/bgnet/
        
         | marginalia_nu wrote:
         | 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).
        
           | beej71 wrote:
           | 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.
        
             | Tryk wrote:
             | Really appreciate your work! We use your git tutorial as an
             | (excellent) reference for a university course on Software
             | Development I teach.
        
       | maciejzj wrote:
       | 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?
        
         | npinsker wrote:
         | 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.
        
         | 63stack wrote:
         | My impression is that there is definitely astroturfing around
         | AI, yes
        
         | mjburgess wrote:
         | 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.
        
           | pardon_me wrote:
           | 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 wrote:
             | to combat this, turn on showdead in your profile and
             | [vouch] for dead comments that aren't trash when you find
             | them
        
             | graemep wrote:
             | Everyone can upvote though. Upvote unfairly downvoted
             | comments even if you disagree with them.
        
           | elbear wrote:
           | 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 wrote:
         | 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.
        
           | pardon_me wrote:
           | 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.
        
           | rfrey wrote:
           | > 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.
        
             | byearthithatius wrote:
             | Do you think its true both then and now, or rather that
             | people are always seeing the past grass as more green?
        
               | rfrey wrote:
               | I do not think it was or is true.
        
         | lII1lIlI11ll wrote:
         | > 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).
        
           | zwnow wrote:
           | 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.
        
         | some_random wrote:
         | 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.
        
         | OkayPhysicist wrote:
         | 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.
        
       | liendolucas wrote:
       | 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
        
       | Madmallard wrote:
       | 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.
        
         | beej71 wrote:
         | I'm sure that's true, but there are different kinds of
         | "difficult" that rely on different kinds of effort.
        
       | TrackerFF wrote:
       | 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.
        
         | ecshafer wrote:
         | 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.
        
           | OkayPhysicist wrote:
           | 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.
        
             | silisili wrote:
             | 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.
        
         | bluedino wrote:
         | > I can't think of too many other professional jobs where the
         | line between hobby and work blends, for so many of its workers.
         | 
         | I would argue that the majority of rank and file programmers
         | are not coding outside of work.
        
           | RankingMember wrote:
           | 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).
        
         | JambalayaJimbo wrote:
         | >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.
        
         | jhbadger wrote:
         | 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.
        
         | dylan604 wrote:
         | 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.
        
           | ozim wrote:
           | There is also a huge difference between "hey I am leaving at
           | 5 because I have life outside of the job" and "hey I just
           | collect paychecks here".
        
             | dylan604 wrote:
             | A long time ago, I had a co-worker that would stand next to
             | the time clock with card in hand ready to "get those goose
             | eggs" by swiping out exactly at 5:00. In the morning, he'd
             | stand there waiting to swipe in at 8:29 until it said 8:30.
             | In his words, "I give them what they give me, 40 hours".
        
           | TrackerFF wrote:
           | 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.
        
             | dylan604 wrote:
             | I have plenty of hobbies that I can't wait until 5 so I can
             | get back to them. I actually get mad when I realize I'm
             | thinking about work outside of work hours. My hobbies all
             | lean toward the creative side making things by hand, but
             | even that sometimes entails using a computer. Just because
             | it involves using a computer does not mean it's work
             | related. For work, I code and build workflows. For hobbies,
             | I dabble at making graphic design that is just a notch or
             | two better than amateur. I've even coded a few hobby
             | projects to build electronic stuff for my photography
             | adventures.
             | 
             | I really feel like _you_ personally might have a problem
             | separating work /life if you're this emotional about it. If
             | you really think that software peeps are the only ones that
             | have this issue, it comes across as you not being able to
             | see the forest through the trees, you might be too scoped
             | in, or any other similar saying you want to use. You're
             | definitely painting with a very broad brush, and it's not
             | coming across well as you're now painting me into something
             | I most certainly am not.
        
         | BeetleB wrote:
         | > 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.
        
         | ThrowawayR2 wrote:
         | > " _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._"
         | 
         | 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...
         | .
        
         | never_inline wrote:
         | Thanks for convincing me to give up on my side project.
        
         | aleph_minus_one wrote:
         | > 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.
        
       | groundzeros2015 wrote:
       | > 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.
        
       | layer8 wrote:
       | 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.
        
         | beej71 wrote:
         | 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.
        
           | layer8 wrote:
           | Thanks for that.
        
       | idkwhatiamdoing wrote:
       | 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.
        
         | jairuhme wrote:
         | I don't have any advice on self learning, but I have been
         | getting a MS in CS for similar reasons. I also have a stats
         | degree, work full time, and struggle with self learning. For
         | me, being in a structured program makes it easier for me to
         | manage. Certainly not a requirement, but it is the way I learn
         | best. Maybe look for classes you can take at a local university
         | or online and see if anything grabs your attention.
        
         | calepayson wrote:
         | Im a student right now and have a background in a non-CS field
         | so struggle with the impostor-syndrome/fundamentals double
         | whammy. The advice I've found most valuable is to basically
         | cosplay as someone who's a complete pro. What would that person
         | read for news? How do they practice their craft? What books do
         | they read on their free time?
         | 
         | Cosplay that role long enough and you become it. I'm still
         | learning but it has been a great signpost for me over the last
         | couple years.
         | 
         | Cheers and keep crushing it!
        
         | retrac wrote:
         | Write something. My usual suggestions (although I am biased)
         | would be an operating system or a compiler. Or both! When I was
         | in school those were typical course projects in a CS program.
         | (The program I took was more to the circuit and electronic side
         | of it, and my final year project was to design a CPU in VHDL.)
         | 
         | A compiler will exercise most of the fundamentals, and in ways
         | you're probably not too familiar with, if you primarily just do
         | a bit of scripting or numerical computation. Areas like parsing
         | - how do you deal with reading in arbitrarily nested recursive
         | structures? And the abstract -- how should you structure the
         | representation of a program internally, perhaps as a tree? And
         | the concrete -- what opcodes does your processor accept?
        
       | notepad0x90 wrote:
       | Big fan of the single-page and widescreen! I wish there was an
       | extension that did that magically for random blogs.
        
       ___________________________________________________________________
       (page generated 2025-12-02 23:01 UTC)