[HN Gopher] Career advice for young system programmers
       ___________________________________________________________________
        
       Career advice for young system programmers
        
       Author : signa11
       Score  : 171 points
       Date   : 2023-08-18 08:33 UTC (14 hours ago)
        
 (HTM) web link (glaubercosta-11125.medium.com)
 (TXT) w3m dump (glaubercosta-11125.medium.com)
        
       | TrackerFF wrote:
       | I don't know if my experience is the norm or wildly different,
       | but when I started out as an electrical/automation engineer,
       | hiring low-level programmers was way closer to hiring
       | "traditional" electrical/electronics engineers, than the modern
       | leetcode SWE ordeal.
        
       | nunez wrote:
       | So this authors example of an ideal young systems programmer
       | looking to get hired was one that provided (free!) significant
       | contributions to their Golang client, their database and _an
       | academic paper_, presumably over the course of many weeks
       | (months?).
       | 
       | I don't disagree with the advice of contributing to open source,
       | but I hope they realize that they are essentially telling readers
       | that contributing unknown amounts of hard, free labor is the best
       | path to getting a job in this subfield of tech.
       | 
       | (Meanwhile, the kid who went to Stanford will just apply and
       | probably get an offer if their DS&A chops are fresh enough.)
       | 
       | (Also, I'm guessing your contributions don't count at some places
       | if your PR/MRs don't get merged, which is the other gnarly thing
       | about open source that complicates this advice. Big open-source
       | projects tend to have big politics behind them, even if they are
       | all entirely online, like working groups, the release process,
       | general disagreements (which will happen; every contributor is
       | smart, and smart people love friendly debate!), etc.)
        
         | crabbone wrote:
         | This is like saying "if you have a lot of money to throw at the
         | problem, you will likely solve it". The kid who went to
         | Stanford _could afford_ to go there in the first place. A lot
         | of things in life are different for kids like this one, hiring
         | notwithstanding. That kind of  "kid" probably won't need to go
         | through the same job application processes as someone who could
         | only afford a community college.
         | 
         | Also... comparing time and money investment you'd have to make
         | to get into Stanford to investment you'd have to make to
         | contribute to an opensource project is orders of magnitude not
         | in favor of Stanford.
         | 
         | Also, as someone who actually had to hire for system
         | programming jobs -- I wouldn't care about candidate's degree
         | and would be put off if the candidate tried to force the
         | subject. In my experience, there's very little overlap between
         | system programming and college curriculum. So, I wouldn't be so
         | sure the "Stanford kid" is getting a job. College education
         | helps you get into "programmer mills" companies like the big
         | names with large internship / junior education programs.
         | Smaller companies who don't have the capacity to provide on-
         | the-job education, especially in the face of low retention
         | factor wouldn't be interested in hiring Ivy league graduates if
         | graduation from an Ivy league university was the only thing
         | going on for them.
        
         | quickthrower2 wrote:
         | I am against contributing to open source just to show chops
         | especially if it means contributing to $corp's repo to try and
         | impress $corp into giving a job. Just contribute (if you want
         | to) to what is fun or gets you curious. As for bang for buck:
         | more applications, more interview question prep > FOSS
         | contributions from a standing start. If you invented clojure or
         | something then that is something else. But you probably didn't.
        
         | avinassh wrote:
         | hey, I am the v from the post.
         | 
         | > So this authors example of an ideal young systems programmer
         | looking to get hired was one that provided (free!) significant
         | contributions to their Golang client, their database and _an
         | academic paper_, presumably over the course of many weeks
         | (months?).
         | 
         | That's not how I see it! I love databases and open source;
         | libsql seemed right for me. I had no idea (or expectations) I
         | would get hired by doing so. By contributing to open source, I
         | am getting to work on some complex codebases where some
         | brilliant people are helping me with my code in pull requests.
         | Isn't that awesome?
         | 
         | Sure, it may only work for some, and this isn't the only way to
         | systems programming. It is totally okay if someone wants to
         | take a different path.
         | 
         | Instead of focusing on what's wrong, why not use this
         | opportunity to help and guide others in a similar boat?
         | 
         | To rephrase, how would you advise someone like me to change the
         | domain from the backend to systems programming? For someone who
         | doesn't have experience with systems programming, knowing only
         | Python, and Go professionally. During the (previous) job, I was
         | working on scaling micro services and building web backend.
         | There was zero room for systems related stuff.
         | 
         | [0] - https://github.com/avinassh
        
         | mattgreenrocks wrote:
         | Feels like the trend lately for a lot of white collar jobs is
         | overt gatekeeping. Don't know if it's a natural reaction to
         | economic uncertainty or what, but the gatekeepers always seem
         | to insist that everyone should be 100% committed to their job
         | in their off hours.
         | 
         | Feels like the no-lifers tend to run the show eventually. And I
         | speak as someone who did exactly that in my 20s, and sometimes
         | regret it.
        
           | cristiancavalli wrote:
           | This. The snarky tone definitely detracts from any sort of
           | well-intended message hiding behind the virtue signaling of
           | "I implemented a binary tree and I bet you couldn't because
           | you work on 'frontend'" Good advice to new peeps in the
           | industry: this tone and obviously inflated sense of self is
           | the "smell" you should look out for and avoid.
        
         | MichaelZuo wrote:
         | Well you have to show your ~99.9th percentile in some way,
         | somehow, among your cohort to get special notice by any serious
         | group in any field.
         | 
         | That's pretty much a tautology for a selective anything.
        
       | iamflimflam1 wrote:
       | My only advice for people starting out their career is to make
       | sure you are surrounded by really good people.
       | 
       | All the good things that have happened in my career have been
       | because the people around me have been amazingly good.
       | 
       | Find those people, and stick with them - they will take you to
       | places that cannot reach by yourself.
       | 
       | This also means you need to be friends with people and maintain
       | those friendships.
       | 
       | Also, if you ever find yourself feeling like the "smartest in the
       | room" it's time to start worrying. You are not going to learn
       | anything in that situation unless you are a very special kind of
       | person.
        
         | iamflimflam1 wrote:
         | And to be clear "amazingly good" does not necessarily mean
         | amazingly good at programming. There are other really critical
         | skills.
        
           | fifilura wrote:
           | I agree, I dont give much for GPs advice.
           | 
           | I have worked with some (actually quite a lot of) amazingly
           | clever people that did not give me much more than a frown
           | from time to time. Or if they are a bit more well behaved not
           | even that.
           | 
           | Find good mentors, i.e. nice people who have a good overview
           | but will frequently take the time to discuss things on your
           | level. And pay them back with respect of course.
        
             | iamflimflam1 wrote:
             | _Find good mentors, i.e. nice people who have a good
             | overview but will frequently take the time to discuss
             | things on your level. And pay them back with respect of
             | course._
             | 
             | I guess for me, those are the people that I would include
             | in the "amazing" bucket.
        
           | intelVISA wrote:
           | Or simply give the appearance of being amazingly good.
           | 
           | Plenty of wiggle room to make a great living from optimizing
           | for EQ over tech skill these days.
        
         | booboofixer wrote:
         | > Also, if you ever find yourself feeling like the "smartest in
         | the room" it's time to start worrying. You are not going to
         | learn anything in that situation unless you are a very special
         | kind of person.
         | 
         | I typically sit in an empty room, making me the smartest in the
         | room by default. So im curious to know what you mean by "a very
         | special kind of person", maybe itll help me learn better.
        
         | notRobot wrote:
         | > My only advice for people starting out their career is to
         | make sure you are surrounded by really good people.
         | 
         | I keep hearing this, but I have a hard time actually finding
         | such people. There unfortunately aren't events like hackathons
         | around where I live, so although I'm sure there are cool (in a
         | professional context) people around me, I'm never able to
         | figure out how to find them. I have an amazing set of friends
         | but they're entirely into the arts so coming by tech work I can
         | do through them is rare.
        
           | wincy wrote:
           | The smartest people around me seem to hang out at
           | obscure/niche programming language meetup events.
           | 
           | You're gonna get a very different crowd at something like
           | your local Rust/Elixir meetup group vs the .NET User group,
           | as it's likely a strong signal they like to tinker with new
           | paradigms/programming languages vs just showing up for
           | "networking opportunities".
        
             | twic wrote:
             | I'm not sure how well "like to tinker with new
             | paradigms/programming languages" correlates with "really
             | good", though. Some of the best people i've worked with
             | were quite conservative technically (some weren't keen on
             | this new 'Java' thing), but were masters at finding the
             | right way to approach problems, being conscientious in
             | their work, etc. The correlation coefficient probably isn't
             | negative, but it's not 1 either. 0.3?
        
             | busterarm wrote:
             | Meetups are a crapshoot. When people are involved in the
             | community out of passion it's a great thing. Unfortunately,
             | and this was often the case at meetups I was going to in
             | NY, a lot of folks are there to add organizing and talks to
             | their professional reputation to get some kind of edge at
             | work. These people also tend to find each other easily and
             | coordinate to give each other the best opportunities.
             | 
             | Not to single out any specific community here...and my
             | experience especially in the Elixir community was lots of
             | passionate people.
        
           | iamflimflam1 wrote:
           | One thing that tech people tend to focus on it tech. As I
           | replied to my own comment, good does not necessarily mean
           | "good at tech". Really talented people will attract other
           | really talented people. You just need to make sure you are in
           | the same orbit and "networking" with these people.
           | 
           | An amazing artist will bring all sorts of fascinating people
           | into there sphere of influence.
        
             | rat9988 wrote:
             | It makes the advice go from practical to superstitious
             | though.
        
           | bombolo wrote:
           | > There unfortunately aren't events like hackathons around
           | where I live
           | 
           | last time i went was so bad that i decided to never go again
           | :D
           | 
           | > I'm never able to figure out how to find them.
           | 
           | try meetups... they used to be active in my area prior to
           | covid
        
       | elzbardico wrote:
       | I did some consulting recently for a startup on the data
       | observability space. Performance and scalability were terrible.
       | Not to mention other subtle issues like terrible coupling between
       | services, between classes, terrible abstractions, the
       | inconsistency of the naming in the domain model (e.g. an object
       | that had one name in a set of micro-services, but was named
       | completely differently in the UI and front-end code.
       | 
       | And in general, the culture of the company was about churning out
       | features fast, at the cost of anything else.
       | 
       | Not surprisingly, as customers started to scale up their
       | deployments, the problems started arising. And yet, the CTO
       | refused to even acknowledge my advice, my carefully done
       | benchmarks, my numeric projections. It was completely alien for
       | him. He didn't understand that system software requires a more
       | careful approach than your usual B2C e-commerce MVP.
        
       | [deleted]
        
       | [deleted]
        
       | Joel_Mckay wrote:
       | Move companies before you hate the job, and your presence becomes
       | part of critical infrastructure.
       | 
       | This advice may sound flippant, but it is actually quite
       | relevant... =)
        
       | RickJWagner wrote:
       | The author has co-opted the term 'Systems programmer'.
       | 
       | In the original Enterprise computing environment (big iron), a
       | 'System programmer' is one that maintains the operating system,
       | transaction processor (CICS), network stack, etc.
        
       | wofo wrote:
       | Interesting to see this here... I unexpectedly transitioned from
       | full-stack development to paid open source systems programming a
       | bit more than a year ago. It would have been quite more difficult
       | without my contributions to the Rust compiler and ecosystem back
       | when I was at the university, and it still feels like I got very
       | lucky.
        
       | spinlock_t wrote:
       | Incoming hot take: Don't become a professional systems developer.
       | Do it as a hobby.
       | 
       | If the goal is to optimize for $$$ earned over one's career,
       | there is more money in being a back-end/distributed apps
       | developer. There are simply more roles (at the higher levels) and
       | companies working on these problems. The progression for SW
       | engineers is junior->senior->staff->principal->distinguished. As
       | you get closer to staff, there are very few systems roles left.
       | Some people never make it beyond staff/L6/E6. (One could argue
       | that it's ok to stay at staff for the rest of your career and
       | still make good money. But there's always more to be made.) And
       | the ones that do, are the ones that spearhead new
       | products/features (direct business impact). My 2cents, after 15
       | years as a system dev in the valley.
        
         | Buttons840 wrote:
         | I suppose this ultimately stems from that fact that if a
         | program is ugly, everyone hates it, but if a program is
         | insecure nobody knows, and if they find out they don't care.
        
         | gumby wrote:
         | > Incoming hot take: Don't become a professional systems
         | developer. Do it as a hobby. If the goal is to optimize for $$$
         | earned over one's career
         | 
         | Deep systems programmers get paid a _lot_. I 'm sure there are
         | other jobs that pay more, but if you make enough and like what
         | you do, you should do what you like.
         | 
         | Also higher up the abstraction chain you go, the more froth
         | their it (I'm mainly thinking of frameworks, but this is true
         | more generally) so you have to pay a lot of attention to what's
         | going on. While the deeper you go down the stack the slower the
         | slewing rate and the more time you have to understand the
         | domain more deeply. Which, to go back to your "$$$" position,
         | acts as a moat.
        
       | cinntaile wrote:
       | The advice boils down to: Contribute to open source and hope to
       | get noticed.
       | 
       | I was expecting something more actionable tbh, but it does make
       | sense. It is a bit disappointing to read that systems programming
       | jobs are basically out of reach unless you're willing to put in a
       | bunch of free work.
        
         | glommer wrote:
         | If you go to university for 5 years (which you should), and
         | work your ass off to improve, isn't that "free work" ?
        
           | cinntaile wrote:
           | Why go to uni for 5 years to get a job in systems programming
           | if you are talented? That seems like an awful waste of time.
           | Learn C/C++, do 2 courses on operating systems and 1 on
           | algorithms and data structures. Work on open source systems
           | programming projects to get spotted. That's 4,5 years saved.
        
         | wccrawford wrote:
         | That may be the advice, but what I actually saw was: "Be
         | really, really good at what you do and someone will notice."
         | 
         | That isn't possible for most people. They simply don't have the
         | innate skills and drives that that person does. That person was
         | _always_ going to get a job because their passion shows
         | through, and they _do things_.
         | 
         | It doesn't matter if it's open source or not. Having a code
         | portfolio when you apply, even if it's a private portfolio,
         | would always have shown their skills.
        
           | reedjosh wrote:
           | > "Be really, really good at what you do and someone will
           | notice."
           | 
           | Isn't that just life though?
           | 
           | Like do what you're passionate about because there's no point
           | failing to succeed at something you're not that into.
        
           | marginalia_nu wrote:
           | I don't think that's necessarily a problem. There are many
           | lines of creative work where you basically need a knack for
           | it to get anywhere. This is true in programming as it is true
           | everywhere else.
        
           | intelVISA wrote:
           | It's a field where a single, good dev can be a 10-100x force
           | multiplier and carry entire orgs.
           | 
           | Suffice to say the bare minimum is to be good at what you do.
           | :P
        
           | meiraleal wrote:
           | > That isn't possible for most people. They simply don't have
           | the innate skills and drives that that person does. That
           | person was always going to get a job because their passion
           | shows through, and they do things.
           | 
           | That is why the ones that have it get rewarded. Lots of good
           | people don't know the next step, he is giving advice to those
           | people.
        
         | _benj wrote:
         | It might not be necessarily free.
         | 
         | From the story I got the V was looking to "switch jobs".
         | 
         | From personal experience, I once had to work with an open
         | source library at work. I got very familiar with the inner
         | workings to the point that it wouldn't have been to hard for me
         | to contribute, and I did have a few improvements in mind. I
         | never did that though.
        
         | avinassh wrote:
         | > unless you're willing to put in a bunch of free work.
         | 
         | isn't most of open source eco system standing on free (often
         | thankless) work? I am in no way insinuating they shouldn't be
         | paid, just highlighting the current state
        
         | uxp100 wrote:
         | They aren't. The advice in the article isn't bad, but it's not
         | the only way. An alternate path I would suggest is get hired by
         | a large corporation who employs systems programmers, straight
         | out of college. Straight into a systems role or not.
        
         | epcoa wrote:
         | > unless you're willing to put in a bunch of free work.
         | 
         | People pay ungodly sums to go to school. And even in countries
         | with "free" education there is an opportunity cost. Let's not
         | even get started on those that want/need to contribute to
         | academia either as a stepping stone or a career.
         | 
         | TANSTAAFL.
        
           | nunez wrote:
           | TANSTAAFL = There ain't no such thing as a free lunch
        
           | meiraleal wrote:
           | So it is worst than free - it is work paid by yourself.
           | Better dedicate 5 years to open source then.
        
         | ablyveiled wrote:
         | It makes sense given that systems programming is more in the
         | realm of cathedrals like Universities, whose whole M.O. to
         | begin with is having you do free work, underpaid work, or even
         | pay to do work
        
       | artemonster wrote:
       | my advice: dont. tools suck, pay sucks, everything sucks.
        
         | tester756 wrote:
         | It is sad, because you're right.
         | 
         | Low level programming salaries are terrible in compare to web-
         | oriented.
         | 
         | I've literally witnessed people leaving semiconductor (so
         | kernel development, compilers, firmware, etc, etc) companies
         | for web dev because of $$
        
         | Palomides wrote:
         | is it really the case that "senior full stack" is the only job
         | anymore?
        
           | meiraleal wrote:
           | It makes sense, no? Somewhere in time, developing software
           | was split into multiple jobs but the intention is still the
           | same: computation with different I/Os.
        
       | skowalak wrote:
       | Well, I could certainly have done without the patronizing
       | undertone, but the advice is: work for free for my company, and I
       | might hire you.
        
         | glommer wrote:
         | what was patronizing about my post? Certainly didn't intend to.
        
           | skowalak wrote:
           | Thank you for asking, since I dished it out I will try and
           | explain what gave me that feeling, although @braza has made
           | some excellent points already.
           | 
           | First off, thank you for the article, it was certainly
           | interesting for me, being a newcomer in the industry myself.
           | 
           | What I did not like about it began after the first two lines
           | with you quoting your own twitter post, which gave me real "i
           | only listen to real music" vibes in the first sentence alone,
           | but the _" you're all adorable"_ took it from a bit edgy to
           | condescending. Given, that might have been an attempt at a
           | joke which I simply did not get.
           | 
           | Then the part about the _" common discourse"_ which I really
           | failed to understand, because in my experience there are lots
           | of different specializations when talking to fellow
           | developers and this _frontent /backend_ divide you perceived
           | I did not.
           | 
           | And finally all that talk about contributing to meaningful
           | Open Source projects, thereby implying that there is a league
           | of _worthy_ projects and other projects that are wasting ones
           | time. Then, by chance your company maintaining some of those
           | _good_ open source projects and the anecdote of V
           | contributing to one of your projects a lot, to get hired
           | eventually.
           | 
           | To me this is just saying: "Work for free for software
           | companies, and if you only work hard enough, maybe someone
           | will notice". And while that may even be the truth, I just
           | don't find it good advice to give to people trying to become
           | developers, frontend, backend or whatever.
        
           | cristiancavalli wrote:
           | Try the tweet at the top of the page for a start.
        
           | braza wrote:
           | It's more about the tone itself that sounds posing some
           | superiority due to the fact that you do systems programming.
           | 
           | It seems that you have a huge experience and knowledge, and
           | it's nothing about those things but how you convey your ideas
           | coming with a very strong background.
           | 
           | I'm not offended by the post because I am not your target
           | audience, but seeing other comments here I can highlight some
           | pieces that others can think that you're patronizing.
           | 
           | > We kernel and database people think this discussion about
           | whether frontend or backend is harder is kinda cute.you're
           | all adorable!
           | 
           | Right at the start you pose as some kind of "hardcore
           | outsider" that poses as some old uncle observing some
           | children playing around. That's the same tone and words. Of
           | course I understand that this is an irony/joke but here you
           | start to lose some people, specially when you talk about
           | "carrer advice" that supposed to be something bit serious.
           | 
           | > There are other developers. The ones writing databases,
           | operating systems, compilers, and foundational building
           | blocks that, if they do their jobs right, end up becoming
           | almost invisible to the average programmer.
           | 
           | We got the point of the "unseen work", but to set some
           | importance you do not need to conflate and contrasting that
           | with the experience of an "average programmer". If the
           | "average programmer" does his/her job right you will have
           | your food delivered in your door, your airline tickets being
           | booked correctly, your municipality having the scheduling
           | systems working, etc. Again, here you lost the opportunity to
           | highlight why is awesome to work with systems programming.
           | 
           | > Lots of the advice that you see on Twitter (X?), is
           | especially bad when it comes to systems level software.
           | 
           | Strong affirmation and I think you can have a hard time to
           | support that with data. I know that is a personal blog and
           | you can do your hot takes on medium, but again, it's not
           | about contrast and more about to elevate how nice is to work
           | with systems programming.
           | 
           | > There's a certain level of "move fast and break things"
           | that you would never accept from your OS Kernel.
           | 
           | Big statement and it can be completely debatable. I can say
           | anedotically that this was true on Facebook and small
           | companies... in 2016. The entire world of Tech involved a lot
           | since, and for lot of products outage can mean end of an
           | entire day of revenue.
           | 
           | > The whole discussion of whether or not you should write
           | unit tests sound frankly quite stupid from the point of view
           | of a compiler author or some core Open Source library.
           | 
           | This ends the first paragraph of your topic "Advice for
           | systems programmers". So far you made contrasts, call names,
           | say that systems engineering advice in twitter is bad, but no
           | substance; no red meat so far in terms of advice.
           | 
           | ...
           | 
           | I can go on, but again I am not your audience, but I think
           | the tone matters in those days and the article has some good
           | gems, but the start of the text and tone distracts. Having
           | that writing attitude to "contrast -> call names -> conflate
           | via superiority -> show advice from a self pedestalized
           | standpoint" used to work, but now I think we're in another
           | internet.
           | 
           | Thanks for the text anyways.
        
         | glommer wrote:
         | ok, I can see how the tweet on the top of the article can have
         | that effect. In my defence, this was a humorous tweet that
         | happened in a week where everybody on twitter, frontend and
         | backend, were dunking on each other. So I wrote that in a
         | humorous way. Lots of people liked it and it was funny, so I
         | decided to open the article with it.
         | 
         | However taking a step back, if you don't have the context
         | around the tweet, it can certainly be seen this way.
         | 
         | Since it was not my intention to have that tone, I will remove
         | the tweet from the article.
        
         | bibabaloo wrote:
         | Can almost guarantee that they're underpaying V for the honor
         | too.
        
           | glommer wrote:
           | I can guarantee you're wrong. V is paid top dollar -
           | especially considering his location.
        
       | antegamisou wrote:
       | The author likes to point out how developer career online advice,
       | blogs, rants etc. aren't applicable to low level programming
       | roles, with a patronising tone but they're right nonetheless.
       | Although embedded people will say the same about system guys, TCS
       | researchers about all types of SWEs and so on.
       | 
       | However they seem to be falling into the same pitfalls with the
       | frontend rockstar programmer-influencers; omitting and even
       | undermining the importance of formal computer science education.
       | 
       | Especially if we're talking about getting into non-web
       | development/IT roles, it's quite a lofty goal to expect mastery
       | in programming complex software without some structured
       | curriculum that will help you obtain the fundamentals to do so.
       | And no, Coursera unfortunately won't make the cut most of the
       | time.
       | 
       | Get a degree in Comp. Sci/Comp. Eng or at least some STEM degree
       | and then a Masters. I understand the US-centric view of tertiary
       | education being a risk due to large capital investment but in the
       | rest of the world where it's affordable/free, most would hesitate
       | to hire self-taught developers, even in web development
       | positions.
       | 
       | The degree may not be enough for systems programming competency
       | and this is where advice in the article about open source
       | contribution comes to play, but I'd say it's kind of necessary
       | unless you're some _bunniefoo_ type of brain or idk.
        
         | crabbone wrote:
         | > Coursera unfortunately won't make the cut most of the time.
         | 
         | This is a truly bizarre take... Coursera offers much of the
         | same courses you'd get in a BCS or sometimes also a MCS degree.
         | 
         | Add to this that most colleges are downright awful, with
         | hilariously incompetent professors / TAs... and virtually none
         | really prepares students for working in programming industry,
         | (nobody teaches version control, project management,
         | infrastructure, editing tools, quality control). There's very
         | little a programmer can get from going to college in terms of
         | useful knowledge.
         | 
         | In my opinion, it's better to pick up a few books on some
         | theoretical aspects couple years after you have enough of
         | practical experience with programming in industrial setting.
         | Coursera would help here. College would be hugely problematic
         | due to being a huge time sink (inconvenient and rigid times for
         | lectures, workshops etc.), hugely expensive, and, in most
         | cases, outright lower quality.
         | 
         | Degree is good to show something to HR, especially if you have
         | nothing else to show... other than that? -- not so much.
        
           | jebarker wrote:
           | One thing university can do is help minimize procrastination.
           | If you have financial and socially visible skin in the game
           | you have a reason to show up and do the work as prescribed. I
           | personally find it hard to stick with Coursera courses but
           | never had a problem completing university courses. YMMV
        
         | jstx1 wrote:
         | If you're not 18 and starting from scratch, you can learn these
         | things without getting a degree. The overall point that I agree
         | with is that you shouldn't neglect fundamental knowledge in the
         | field regardless of whether you have formal CS education.
         | 
         | > And no, Coursera unfortunately won't make the cut most of the
         | time.
         | 
         | Some of the best universities in the world have computer
         | science materials online (on Coursera and youtube), I don't get
         | how that's inadequate.
         | 
         | > most would hesitate to hire self-taught developers, even in
         | web development positions.
         | 
         | Not true for experienced candidates. If you have no experience,
         | you rely on your degree to get the first job; and if you don't
         | have a degree, it can be difficult to bootstrap that process
         | but the further you get in time from your education, the less
         | relevant it is.
        
         | epolanski wrote:
         | I really disagree with your point of getting a degree.
         | 
         | Don't get me wrong, I don't personally think that a CS degree
         | is useless (or an engineering one). I hold a masters in
         | chemistry and if I could go back and make it a cs one it
         | would've been better all things considered.
         | 
         | But I think the following:
         | 
         | - getting a degree says very little about how much a person
         | learned or absorbed. So much depends both on the quality of
         | teaching (often low even in ivy league colleges where you're
         | taught by assistants, ugh) and the learner. I've met many
         | engineers with a degree obtained cum laude and they just didn't
         | have fundamentals. They would know everything the day of the
         | exam and have no clue about the topics just few months later.
         | They got the degree to find a job, not because they cared. On
         | the other hand some of the most impressive devs I know where
         | self taught. Even among core Linux contributors plenty do not
         | have any degree.
         | 
         | - internet has nowadays an endless amount of resources, nothing
         | can stop a motivated and disciplined person from getting good
         | at non-natural sciences such as maths and cs.
        
           | tayo42 wrote:
           | > if I could go back and make it a cs one it would've been
           | better all things considered.
           | 
           | I wish there was a better way to go about this. It sucks I
           | wasnt mature enough to take advantage of college or have the
           | foresight to know what I wanted to do with my entire life
           | when I was 17 and started.
           | 
           | Now to get credentials, Im looking at 2-3 years of 30 hours a
           | week of work and thousands of more dollars.
        
             | the_only_law wrote:
             | > Now to get credentials, Im looking at 2-3 years of 30
             | hours a week of work and thousands of more dollars.
             | 
             | Yeah this is my problem. I could get so much more out of
             | education than I probably would have when I was 17, but
             | It's impossible to work a decent full time job and go back
             | to school. The schedules simply won't allow it. Part time
             | work pays shit, and I somehow have to afford not only
             | tuition, books, fees, etc., but a cost of living that only
             | gets more and more expensive.
             | 
             | You can trade money for time (or really spread money with
             | time) in this case, but I have no interest in spending 10+
             | years just to have wasted what left of my "youth" in
             | exchange for an undergraduate degree. Time IMO is more
             | valuable than money, because there's no chance in hell you
             | can ever get it back.
             | 
             | I'm also not interested in getting a degree just for the
             | sale of having a degree, or even as an economic mobility
             | vehicle. Technically if that's all you want there are
             | programs out there, but tend to come with too many
             | stipulations for my taste.
        
               | JohnMakin wrote:
               | I wouldn't say impossible. In my late 20's I pursued a CS
               | degree from a tough school by utilizing online courses,
               | and taking jobs that had enough flexibility to work
               | around my school schedule. Not easy, but I am at least a
               | counterexample why it isn't impossible. It took me about
               | 1 year longer than I think it would have taken someone
               | who wasn't working, though.
        
               | the_only_law wrote:
               | > and taking jobs that had enough flexibility to work
               | around my school schedule.
               | 
               | Where? Most jobs I can think of offhand that offer that
               | sort of flexibility pay a pittance, like barely enough to
               | live, let alone pay for large education expenses on top
               | of that. I suppose you can also find work at night, while
               | doing schooling for the day, but I wonder how the sort of
               | sleep schedule imposed by that will effect you work in
               | both.
        
               | JohnMakin wrote:
               | I can't really say without exposing my identity in a way
               | I'm not comfortable with, but I took a lot of work at
               | night if I could, and if not, I took flexible jobs like
               | Uber/Lyft that allowed me to make my own hours. My main
               | gig allowed me to reschedule and move stuff around if I
               | had to, which was critical.
               | 
               | I'm not saying it's easy, but especially in today's age
               | with the popularity of online degrees, it's not
               | impossible.
        
               | robotresearcher wrote:
               | > not interested in getting a degree just for the sale of
               | having a degree
               | 
               | This thread is about _learning stuff_ that is helpful for
               | the systems programmer. One way to go about getting a
               | degree is to learn as little as you can get away with,
               | but you get the certificate. Another way is to take the
               | opportunity to learn stuff, and a degree course provides
               | structure and resources to help that. The certificate is
               | gravy, knowledge is the protein. The value for money of
               | the second way can be very good. Was for me.
        
           | wonnage wrote:
           | Getting a degree might not say much but it sure as hell says
           | more than just "self-studied CS for X months"
        
           | jltsiren wrote:
           | This wasn't about evaluating whether others are good at
           | something, but about what you should do if you want to become
           | good at systems programming.
           | 
           | For most people, the university is a unique opportunity. You
           | get to spend a few years learning all kinds of interesting
           | things, in an environment designed to support that, without
           | the social pressure to do something that is more productive
           | in the short term. How do you choose to use that opportunity
           | tells a lot about you as a person.
           | 
           | A motivated and disciplined can learn a lot on their own. In
           | most cases, they can learn even more in a university. But not
           | always. Some people are not a good fit to a particular
           | university, and some people are a poor fit to any
           | institutional environment. The latter tend to become an
           | entrepreneurs, as their personalities are not a good fit to
           | being an employee.
        
         | busterarm wrote:
         | I'm about 20 years into my career as a self-taught software
         | engineer. I mostly work with companies that only hire out of
         | MIT, Cornell, Stanford, Waterloo, etc.
         | 
         | By and large my experience with these graduates is that their
         | awareness of the field does not extend much beyond what they
         | learned in school and what the current hype technology is
         | (today it's ML). If you got enormously lucky, they worked or
         | interned somewhere special and were able to expand their
         | skillset.
         | 
         | Consistently, the absolute best developers I've worked with
         | tend to be self taught and especially people with Computer
         | Music degrees. It turns out that learning DSP is a skill that
         | pays huge dividends elsewhere in this field. I've also worked
         | with CompSci Ph.D.s that can't build their way out of a wet
         | paper bag.
         | 
         | As far as the degree programs go though, Waterloo is excellent.
         | I would even say above the rest. Even MIT. I am consistently
         | impressed with their graduates that I've had the privilege to
         | work with.
         | 
         | And as for my own journey, I have my weak spots. I also tend to
         | read more papers and technical books than most of my peers by a
         | significant margin. I think that's my edge.
        
           | dlisboa wrote:
           | I have the opposite experience, though in a different country
           | than yours.
           | 
           | Most people I've met in the industry that did not have a
           | formal education (or an interest in one) would end up
           | scratching the surface and not really dig deeper. The best
           | programmers I know did go to great college programs. Not that
           | the programs _made_ them great programmers, but they acquired
           | a breadth (not depth) of knowledge that prepared them for a
           | lifetime of learning.
           | 
           | Without formal education it's very hard for you to know what
           | you DON'T know. You can go very far in this industry without
           | ever touching a book, giving people the assumption that it's
           | a waste of time. Bootcamps prepare people for work leave it
           | at that, where many people stagnate.
           | 
           | College has quite a few problems, and for some really driven
           | people it's not necessary, but on average it works.
        
             | nonameiguess wrote:
             | I would say my own experience actually comports with what
             | _both_ of you are saying. Anyone I 've worked who self-
             | taught over 20 years ago is damn near universally talented,
             | dedicated, and good at what they do, both because they
             | stuck with it and gained decades worth of experience, and
             | because they loved computing enough before it was trendy to
             | actually care and teach themselves something like this over
             | 20 years ago.
             | 
             | On the other hand, if you're talking about people who
             | decided in the last decade, as tech salaries exploded and
             | other industries dried up, that they could just learn to
             | code without a formal education because everything is on
             | the Internet anyway, they seem to largely be bare-minimum
             | "I understand roughly how a browser works and damn near
             | nothing else about computers and networks and distributed
             | systems" types.
             | 
             | And the quality of a brand-new college grad is almost
             | always lower than a multi-decade veteran, regardless of
             | where they went to school, but that doesn't mean the
             | education was valueless. That doesn't seem like a
             | revelation.
        
           | commonlisp94 wrote:
           | > I also tend to read more papers and technical books
           | 
           | I have only met one self-taught person who reads anything
           | like this. My experience is exactly the opposite. Most self-
           | taught programmers are great at programming and solving
           | business problems, but tend to be less technical and think
           | academic stuff is a waste of time.
        
             | VirusNewbie wrote:
             | I dunno, I'm consistently having to teach PhD folks stuff
             | at FAANG and I didn't go to college. A lot of them only
             | have a cursory understanding of distributed systems, graph
             | theory, type theory, abstract algebra, compilers, etc.
        
             | busterarm wrote:
             | Funny. It might be the companies that I've worked for but I
             | tend to find with _all programmers_ is that we're all too
             | often focused on the individual problems at hand and their
             | complications and we fail to recognize them for the simple,
             | well-described academic problems that they actually are.
             | Often there's some self-imposed and pointless complication
             | that prevents us from reducing the problem we're working on
             | and we'd be better off changing the constraints than going
             | down the road we're already on.
             | 
             | The academic stuff is invaluable, but people only get a
             | small nibble of it in their degree programs. That's why I
             | value the knowledge over the education/process.
        
               | commonlisp94 wrote:
               | I agree with that experience, but it's not clear how it
               | relates to the topic we are discussing.
        
               | busterarm wrote:
               | My argument would be that having the education/degree
               | does not help you correlate the day to day work in the
               | field with what you learned to get that degree. The
               | degree is worth dirt if you can't apply that experience
               | to your job and I think that's the case an above-average
               | amount of the time.
               | 
               | So maybe getting the degree isn't necessarily the best
               | path to get into our industry.
        
               | commonlisp94 wrote:
               | > having the education/degree does not help you correlate
               | the day to day work in the field with what you learned
               | 
               | I also agree with that. The vast majority just aren't
               | interested or did the minimum to pass classes, without
               | really absorbing it.
               | 
               | What I disagree with is the self-taught correlation. The
               | people who can do what you describe overwhelming are
               | academically curious and have degrees.
               | 
               | > maybe getting the degree isn't necessarily the best
               | path
               | 
               | I think you'll find a similar pattern in all fields. I
               | think what's more in question is the ability of education
               | to transform ingrained aptitudes and interests.
        
               | twic wrote:
               | In my experience, it's very rare that there is a self-
               | imposed and pointless complication that prevents a real
               | problem being reduced to an academically tractable one,
               | and far more common that there is a second-rate
               | programmer on the team who thinks there is.
        
           | screye wrote:
           | This is Survivorship bias in full swing. The only self-taught
           | developers who would get an interview at a top systems lab,
           | would be ones who have far surpassed the achievements of the
           | average MIT/Stanford grad.
           | 
           | The kind of person who'd shine as a self-taught developer,
           | would be on their way to be distinguished engineer if they'd
           | just done a CS degree to go with it. A degree does not kill
           | the energy and initiative that makes for a top-tier self-
           | taught engineer. But, it grounds your foundations, opens
           | doors and lends you much needed prestige. All of these
           | together will put a person on course for exceeding any
           | 'merely self-taught' or 'merely MIT educated' engineer.
           | 
           | Your best self-taught Computer Music hires would likely have
           | been even better if they'd done CS. And if they're good
           | enough to be practically guaranteed 6-figure salaries, then
           | the debt of university education is hardly a risk at all.
           | Hell, they could pay off their debt just from internship-
           | salaries and signing bonuses.
        
             | tester756 wrote:
             | >The kind of person who'd shine as a self-taught developer,
             | would be on their way to be distinguished engineer if
             | they'd just done a CS degree to go with it.
             | 
             | what makes you think so?
             | 
             | how would those basics of basics of computers and stuff
             | would help you to become distinguished engineer?
             | 
             | self-taught people with huge curiosity are well aware of
             | this stuff because this material is available on the
             | internet freely
        
               | mcguire wrote:
               | The are many, many gigabytes of good information
               | available on the Internet. The problem is that they're
               | mixed in with many, many terabytes of not-so-good
               | information.
               | 
               | Finding out which is which, when left as an exercise to
               | the reader, is not terribly efficient.
        
               | bonzini wrote:
               | Because you have to relearn all the foundational stuff.
               | Algorithmic complexity, invariants or fundamentals of
               | distributed systems may be useless as a junior developer,
               | but once you proceed to more complex stuff it pays off
               | that you have already learnt them, maybe even applied
               | them for an internship.
               | 
               | A self taught person doesn't even know that these things
               | exist unless they also have an excellent mentor at the
               | beginning of their career in the industry. The material
               | may be freely available but it's not stuff that they will
               | consider unless they also have a penchant for boring
               | theory.
        
               | peterfirefly wrote:
               | > A self taught person doesn't even know that these
               | things exist unless they also have an excellent mentor at
               | the beginning of their career in the industry.
               | 
               | I was perfectly aware of them as a 15-year-old teenager
               | decades ago.
               | 
               | Think of your own situation -- did you learn what you
               | know about JITs by taking formal classes?
        
               | bonzini wrote:
               | And how often do you hear people complaining that
               | "interviewers only care about useless stuff like
               | complexity" and "why wouldn't you be able to look up
               | complexities if you really need them" (which only shows
               | that you don't understand why complexity matters)?
               | 
               | The reality is that these _are_ arcane topics for 99% of
               | the programmers out there and even more of the self
               | taught ones.
               | 
               | > did you learn what you know about JITs by taking formal
               | classes?
               | 
               | No, but JITs or emulators are not fundamental topics.
               | 
               | One example I can give is this: solid knowledge of data
               | structures, together with some theoretical 20-years-old
               | knowledge of query plans and normalization, meant I could
               | understand a database's EXPLAIN output and quickly learn
               | materialized subqueries and denormalization the first
               | time I needed them. Even obsolete knowledge has a core
               | that is still valid, and experience is also about being
               | able to recall it and apply it. If you have done some CS
               | at school, you will be faster at this because you have
               | more dormant concepts that you can recall.
        
               | the_only_law wrote:
               | > And how often do you hear people complaining that
               | "interviewers only care about useless stuff like
               | complexity" and "why wouldn't you be able to look up
               | complexities if you really need them" (which only shows
               | that you don't understand why complexity matters)?
               | 
               | Now how the fuck do you complain about something if
               | you've never even heard of and "don't know exists". No
               | one who's never heard of algorithmic complexity or
               | invariants aren't going to complain about them because,
               | perhaps to your amazement, they simply have no idea these
               | things exist. But maybe that concept is a bit too complex
               | for you.
        
               | tester756 wrote:
               | Algorithmic complexity? distributed systems?
               | 
               | Please, I thought somebody will mention some arcane, rare
               | topics that self-taught person may have no opportunity to
               | hear about, but definitely not those really popular
               | topics.
               | 
               | People talk about those 2 all the time, especially in
               | context of interview for big_tech
               | 
               | >A self taught person doesn't even know that these things
               | exist unless they also have an excellent mentor at the
               | beginning of their career in the industry.
               | 
               | You don't need to learn those at your year #0, year #1 or
               | whatever, it heavily depends. But if you worked for e.g 5
               | years and didnt need those then still nothing prevents
               | you from learning.
               | 
               | Anyway, almost all graduates barely have any proficiency
               | in multithreading, let alone distributed systems.
               | 
               | >The material may be freely available but it's not stuff
               | that they will consider unless they also have a penchant
               | for boring theory.
               | 
               | I thought we were talking about people with drive, with
               | passion, people who are potential candidates for being
               | distinguished engineer, not average person.
        
               | saltcured wrote:
               | Those who value the CS degree and the schooling process
               | most are often those who value the whole idea of "schools
               | of thought". The eager student is a blank slate to be
               | influenced by mentors. These influences pass on a culture
               | of knowledge, an ontology of problems and solutions and
               | ways of thinking about them. Also absorbed are implicit
               | boundaries around what is important vs mundane, what is
               | generalist and what are recognized specialties. The
               | school of though is a community where these outcomes are
               | somewhat stereotyped. The students will react similarly
               | to similar questions or debates, not too disparate from
               | their mentors.
               | 
               | Those who value the auto-didact most are often those who
               | value the individual pursuit of curiosity and
               | idiosyncrasy. The eager student hunts down or pillages
               | knowledge wherever they can find it. In the extreme, the
               | auto-didact is self-mentored. Individual interests and
               | unguided exploration of existing literature builds a
               | personalized ontology of problems and solutions and ways
               | of thinking. The distinction of important vs mundate, as
               | well as specialization, is more idiosyncratic. The auto-
               | didact may belong to a school of thought with one member.
               | 
               | The underlying experience is when these groups meet is
               | almost culture shock. It could lead to great
               | collaboration or to a meltdown, depending on the
               | temperaments of the individuals and their willingness to
               | embrace or interact with the "other"...
        
               | the_only_law wrote:
               | > Please, I thought somebody will mention some arcane,
               | rare topics that self-taught person may have no
               | opportunity to hear about, but definitely not those
               | really popular topics.
               | 
               | Agreed. These are it something many "self taught"
               | developers I know have never heard of. For fucks sale
               | with all the complaining about things like leetcode and
               | other interview styles. do you seriously believe self
               | taught people have never heard of these things?
               | 
               | Unfortunately, it seems in recent years "self taught"
               | became synonymous with "some guy who decided to do a
               | bootcamp because he heard there was money in learning to
               | code".
        
               | bonzini wrote:
               | It is more typical of a self taught developer to complain
               | about fizzbuzz, rather than talk about leetcode.
               | 
               | These are both extremes but still, the average self
               | taught developer is _not_ the one who interviews for big
               | tech exactly because he has never heard about invariants.
        
             | zlg_codes wrote:
             | Hey, find me a college with a good CS program that isn't
             | just half-assed IT is disguise, that's accessible to a low
             | class white guy, and I'll ace that Bachelor's program.
             | 
             | There are many others like me who would and could do it,
             | but lack the financial or social resources to put it into
             | action. If I lived in Europe I could have my education paid
             | for.
        
               | screye wrote:
               | Your local flagship state-school likely has a fairly
               | rigorous CS program. This is especially true if you
               | engage with the professor and ask for challenging work &
               | deeper clarifications in office hours.
               | 
               | 4 years instate tuition is around $15k * 4 = $60k total.
               | That's not cheap, but not that expensive either.
               | 
               | If you are smart enough to end up an excellent software
               | engineer, then you should be able to get decent enough
               | SATs and Grades to get into your local flagship state
               | school.
        
               | zlg_codes wrote:
               | I will not be taking out a loan to go to school. I have
               | seen too many people fall into the pit of debt, and with
               | the current political climate with the older generation
               | completely comfortable screwing over younger generations
               | with false promises of success, I prefer to be
               | financially solvent when I graduate. If my country cannot
               | do this, then it is a failure compared to Europe.
               | 
               | So, that means either financial aid, or a scholarship.
               | Are there any scholarships for low income white guys? My
               | guess is no, because we are assumed to be on top of
               | society already. I'd be considered an older student too
               | since I'm in my late 30s.
               | 
               | Based on my own cursory search, there are no real
               | opportunities for me to reach higher education without
               | putting myself into potentially life-ending debt. I'm
               | even in a state that's renowned for CS (Washington) and I
               | have not found anything.
        
               | zlg_codes wrote:
               | In the interest of trying to prove myself wrong, I looked
               | around a little harder, and preferring government sources
               | to any old page. https://wsac.wa.gov/sfa-overview
               | 
               | A lot of programs seem to be targeting mostly high school
               | students or minorities.
               | 
               | It's great that those groups are getting help, but I
               | cannot help feeling left out. Is my desire for education
               | or a better life less valuable or less important because
               | of my identity?
               | 
               | Of the programs listed on that page, I have a chance at
               | maybe two: the State Work Study, or the College Grant.
               | The College Grant seems to look at a lot of variables, so
               | the level of coverage may not be as "free college" as
               | advertised, though I do make less than 200% of federal
               | poverty at present.
               | 
               | The others which advertised helping disadvantaged people
               | seemed more focused on helping women, minorities, and
               | foster children. Fair, of course, but still doesn't seem
               | like they'd be interested in helping someone like me.
               | 
               | It seems like a wonderful environment for non-white, non-
               | male students to get a leg up. Lots of stuff to help
               | them.
               | 
               | I wonder if there's a male outreach program to get
               | enrollment and graduate rates up for men, since they've
               | been falling for at least a decade...
        
             | vvanders wrote:
             | Degrees are useful but there's a whole class of things they
             | skip over as well. When I was going to college the state
             | college didn't teach C on a regular basis and we usually
             | had a number of people at my community college since the
             | course was offered there. When I was looking to transfer
             | from community college into state not a single college
             | offered C++(it was during peak Java) and so I didn't
             | attend.
             | 
             | Even then I regularly find that so-called "fundamentals"
             | are missing, the number of times I've had to explain page
             | tables, how the kernel shares memory and other core details
             | is surprising. Everyone drives Big-O notation
             | left/right/center but can't tell what a page fault is or
             | why algorithms with higher complexity wipe the floor with
             | better "ideal" algorithms under actual operating
             | constraints. I've found that engineers who have drive or
             | innate curiosity will poke in those areas but getting a
             | degree doesn't automatically confer that knowledge(or
             | guarantee that it sticks).
             | 
             | Also, if you're getting into systems programming I care
             | about 0% about "prestige", it's a domain that is even more
             | binary(things work or they blow up spectacularly[1]) than
             | some other programming domains. I care that someone
             | understands the fundamentals, can apply reasoning and drive
             | a hypothesis with data more than what college they
             | did/didn't attend.
             | 
             | [1]
             | https://www.usenix.org/system/files/1311_05-08_mickens.pdf
        
               | madsbuch wrote:
               | > When I was looking to transfer from community college
               | into state not a single college offered C++(it was during
               | peak Java) and so I didn't attend.
               | 
               | Why is C / C++ education so important?
               | 
               | Personally, What helped my during my studies were type
               | theory, PL, complexity theory, etc. Had I gone into
               | systems development, then my compiler courses would
               | probably be of most value (which are standard curriculum
               | in any CS degree).
        
               | vvanders wrote:
               | If you don't understand C, C++, or one could argue Rust
               | these days you're sitting at an abstraction level much
               | higher than where the "systems" domain tends to be. ABI,
               | cache misses, page tables and memory mapping, restrict,
               | all of that stuff is at an arm's length in a managed
               | language.
               | 
               | One of the best courses I had was taught by Bruce Dawson,
               | it was an entry-level "image processing" course but
               | really it was a tour-de-force on cache hierarchies,
               | modern computer architecture and how to build efficient
               | real-world algorithms and not things that just scored
               | well on the complexity scale. The first assignment was a
               | simple bit-blit, he grabbed a random assignment from the
               | class and in about ~30 minutes walked us through a multi-
               | order-of-magnitude performance improvement with just
               | small adjustments that made the program more cache-aware
               | and also showed how you empirically test for performance
               | improvements instead of doing it in a theoretical manner.
               | 
               | Back when I was in college(which was admittedly a long
               | while back now) those sorts of things just weren't taught
               | and that class was by-and-far an outlier from traditional
               | coursework. My experience has been that even though
               | there's a lot of talk about "fundamentals" in a CS degree
               | it's touched at such a shallow layer that practical
               | application of any of those fundamentals are missing and
               | it doesn't "stick".
               | 
               | I've met all of a handful of people who can tell me what
               | restrict does(much less how to use it), what a cache-
               | aware data structure is or why we care about value types.
               | ABI is just a 3-letter word to a large majority of people
               | because they just don't have to deal with it(but are then
               | oblivious when it blows up, I.E the number of times I've
               | seen STL in what are supposed to be ABI-safe boundaries).
               | That stuff is all foundational at the systems level. I've
               | had much better luck with breaking people of their
               | assumptions(I.E. Big-O) and working up from first-
               | principals of how computer architecture works and
               | structuring systems in such a way that take advantage of
               | that instead of a theoretical ideal.
        
               | madsbuch wrote:
               | > If you don't understand C, C++, or one could argue Rust
               | these days you're sitting at an abstraction level much
               | higher than where the "systems" domain tends to be. ABI,
               | cache misses, page tables and memory mapping, restrict,
               | all of that stuff is at an arm's length in a managed
               | language.
               | 
               | To me, this is a bit muddy:
               | 
               | Yes, when doing systems level development, you need to
               | understand the _system_ you are targeting. Not all CPUs
               | have a concept of cache misses or page tables. At my uni
               | this was taught through computer architecture and
               | operating systems classes.
               | 
               | These courses incidentally also included C, though they
               | didn't need to. The reason that did was because they were
               | precedents for the compiler course and prepared the
               | students to understand compilers (I TAed in said
               | courses). Later courses at my uni would be algorithms
               | engineering that taught students how to make, well, cache
               | aware implementations.
               | 
               | Understanding how a given hardware architecture works on
               | how to most efficiently utilise it has nothing to do with
               | C / C++. Many courses at most (European?) universities
               | will happily teach you everything you need to know, but C
               | / C++ are probably not even mentioned in the teaching
               | material.
               | 
               | Actually, I just checked:
               | https://kursuskatalog.au.dk/en/course/117933/Computer-
               | Archit... and no: No mentions of C or C++
               | 
               | So I do understand you would be disappointed if you went
               | for courses on C / C++.
        
               | vvanders wrote:
               | There are always exceptions, programming for the PS3
               | was... interesting given the SPUs didn't have any caches,
               | although one could argue they were closer to DSPs with
               | the manual DMA required. I'm not really interested in
               | arguing semantics but more that those languages tend to
               | be what you see modern, battle-tested OSes developed in.
               | 
               | My point is if you're not using C/C++/Rust what are you
               | using that exposes those concepts? Not saying you can't
               | do those things in other languages(I've shipped cache-
               | aware datastructures at scale in Java using ByteBuffers +
               | flatbuffers) however you're having to reach through
               | abstractions and/or other limitations. Say nothing that
               | on most OSes that C tends to be the OS ABI as well.
        
               | mcguire wrote:
               | How do those European (?) universities deal with the
               | difference between theory and practice? I have a hard
               | time imagining how you would understand how to "most
               | efficiently utilize" a given architecture without writing
               | code and trying things out.
        
               | ecshafer wrote:
               | And those colleges were right. You shouldn't have a class
               | that teaches C, C++, or Java. You Should have classes
               | that teach embedded programming, operating systems,
               | object oriented programming, and algorithms.
        
             | CyberDildonics wrote:
             | The other way to look at it is that this company does not
             | know how to hire people and can barely tell the difference
             | between great self taught programmers and terrible
             | graduates from a school with a good name.
        
             | hnfong wrote:
             | Is there something from a CS program that can't be learned
             | from studying half a dozen books (or maybe a couple more)?
             | 
             | Because that's what "self-taught" means, and unless you can
             | identify the things specifically that can't be practically
             | learned by a determined person without going through a 4
             | year CS program, you're basically making things up to
             | retrofit to your bias.
             | 
             | I don't know why so many people seem to believe that
             | foundational CS knowledge can only be gained through doing
             | a CS degree. The Internet was built by "computer people",
             | and computer related resources were among the first things
             | to be highly available and easily found on the Internet.
             | 
             | Maybe what you claim are true in a "literal" sense but I
             | doubt it's very useful. Basically what you're saying is
             | that assuming a person's that did not have a CS degree has
             | a CS skill level X, then if they spent 4 more years
             | studying CS they would presumably have a skill level > X.
             | TBH at the highest levels I'm not sure whether this even
             | holds, since once you get to a certain point, the depth of
             | your knowledge and skill has to be complemented with some
             | breadth as well. Often interdisciplinary knowledge brings
             | new insights.
        
               | screye wrote:
               | I'm glad you asked me. I happen to have self-learned
               | undergrad level CS myself before moving on to do an ML
               | focused masters. There were a bunch of challenges I had
               | self-learning that were made so much easier during my
               | masters.
               | 
               | For one, self-learning just damn hard. Staying motivated
               | to put in self-guided 8+hours everyday without natural
               | peers, external structure and good external evaluation is
               | just hard. You can sustain it for spurts, like 1 summer
               | or in my case 1 whole year, but it erodes your mental
               | health.
               | 
               | It is never clear when a topic is especially important. I
               | can't go to office hours to clarify certain doubts. I
               | can't take on especially daunting tasks that I could with
               | a group of peers together. Worst is that env setups
               | themselves lead to you getting stuck doing accessory
               | work, instead of focusing on the main topic you do want
               | to learn. Honestly, finding top quality coursework (MIT
               | OCW is gold), assignments and notes was trivial. It was
               | everything else that was really hard.
               | 
               | My self-learning tendencies didn't magically go away when
               | I started my masters. I still leveraged all of them and I
               | still do. But, it did solve a lot of my the challenges
               | that came with being self-guided.
        
               | ipaddr wrote:
               | Instead of going to the office for a question you could
               | email/chat online. I would find it harder to study with
               | others for 8 hours a day and less focused.
        
               | tomjakubowski wrote:
               | > For one, self-learning just damn hard. Staying
               | motivated to put in self-guided 8+hours everyday without
               | natural peers, external structure and good external
               | evaluation is just hard. You can sustain it for spurts,
               | like 1 summer or in my case 1 whole year, but it erodes
               | your mental health.
               | 
               | Learning for learning's sake, or because you want to get
               | a job as a dev: that I can see being a grind, with
               | motivation being difficult to find.
               | 
               | But if you have a idea for a product, and you want to
               | make it concrete - the motivation is easy. I think most
               | of the self-taught developers I know (myself included)
               | started that way: they wanted to make something, and so
               | they learned how to make software on the fly, while
               | building their thing.
        
               | mcguire wrote:
               | That is how you get depth with no breadth.
        
               | edgyquant wrote:
               | Breadth is learned overtime in subsequent projects.
        
               | peterfirefly wrote:
               | > Is there something from a CS program that can't be
               | learned from studying half a dozen books (or maybe a
               | couple more)?
               | 
               | Yes ;) -- you can't teach "Stanford", "MIT", or
               | "Harvard".
        
               | screye wrote:
               | Isn't this sort of true though ?
               | 
               | Not just the prestige, but the really strong networks you
               | build. It helps you be 'I know a guy who knows a guy'
               | distance from VCs, experts and hiring managers at top
               | labs.
               | 
               | A lot of my close friends went here, and they're able to
               | catch up over phone with people who leave my linkedin
               | requests on 'pending', and this is with folks who've
               | achieved exactly the same as me at the same age.
               | 
               | It is a force multiplier beyond comprehension.
        
               | ipaddr wrote:
               | If your purpose is creating a strong network, becoming a
               | CEO and leveraging relationships later in life you don't
               | go to those schools for computer science. What a waste of
               | an opportunity. Go into business and meet important
               | people. Or go into the arts so you have time to join
               | social clubs.
               | 
               | Going to those places to get a VC to email you more
               | easily is better achieved by getting into an yc or some
               | other incubator.
        
               | mcguire wrote:
               | Well, let's see.
               | 
               | UT Austin's degree requirements are https://www.cs.utexas
               | .edu/sites/default/files/images/BS%20Ch... and course
               | descriptions are https://catalog.utexas.edu/general-
               | information/coursesatoz/c...
               | 
               | That's about 16 required classes including Linear Alg.,
               | Statistics, A Child's First Programming Class, Data
               | Structures, Discrete Math, Algorithms, Architecture,
               | Operating Systems, plus another 8 of your own favorite
               | upper division electives (CS 340 and above).#,##
               | 
               | Then there's the question of what you mean by "studying".
               | Just reading the books isn't really going to work. That's
               | 50 semester hours---weekly class wall-clock time---and
               | the ol' rule of thumb was 3 hours studying per hour of
               | class time###, for 15 weeks or 3000 hours. But you might
               | be able to do it in less.
               | 
               | So, it's doable, certainly.
               | 
               | A formal degree program has two advantages:
               | 
               | 1. Having somebody to advise you on what's important and
               | what's not. Not all of the chapters of SICP are equally
               | meaningful, and having someone who already knows this
               | shit and can say, "pay attention to this chapter, it's
               | important," or "skip those exercises, they're not worth
               | it," or even "forget that section, it's outdated; here's
               | a paper" is quite useful.
               | 
               | 2. Feedback. Even if you have the answers to the
               | exercises, having someone to look at your crappy program
               | or broken proof#### and tell you "you are missing _this_
               | , try _that_ instead " will speed up understanding
               | considerably.
               | 
               | And that's aside from answering questions and making a
               | second pass through some material when you're sitting
               | there staring like you've been hit with a captive bolt
               | gun. It's significantly more efficient to get to
               | understanding than working on it yourself.
               | 
               | And then there's the requirements for things that you
               | would not, yourself, choose: Spanish? !@$&%){ Calculus?
               | Those damn writing requirements? Ethics and leadership?
               | You touch on this yourself: many of the self-taught
               | people I've seen have been depth heavy with little
               | breadth.
               | 
               | Which brings me to another point. Those computer people
               | who built the internet typically already had degrees in
               | physics, math, EE, or something else. And, they also tend
               | to have that depth to breadth problem. (Then there was
               | the afternoon I spent explaining to a former Aerospace
               | Engineer (and quite good programmer) why _string = string
               | + character_ was so slow. And why it wasn 't slow on that
               | other implementation.)
               | 
               | # This has actually been dumbed down since I went through
               | in 1986-1990; it used to also include a full class on
               | formal logic, automata theory, and basic electronics. So,
               | hmph. But then I didn't take physics, chemistry, or
               | biology, so yay.
               | 
               | ## Stay away from CS 340. It sounds like fun, but it
               | seems to be taught by Warren Hunt...
               | 
               | ### Hahahahaha, wheeze... Ah, weekend nights in the
               | computer lab...
               | 
               | #### They're the same thing, remember? :-)*
        
               | wonnage wrote:
               | If we're using "determined person" as the bar, then
               | someone who commits 4-6 years paying tuition to get a BA
               | or MS CS certainly seems more determined than a self
               | taught person who spent maybe 3 months at a boot camp?
               | 
               | Not saying that it's fair, college costs too much in the
               | US, and employers overindex on good schools. but I don't
               | get the argument that a self taught person should be
               | treated equally hiring-wise
        
               | hnfong wrote:
               | The original context was "advice for young programmers",
               | and although I don't think getting a CS degree is top of
               | the priority list, it's at least a important and good
               | thing to have.
               | 
               | But this:
               | 
               | > I don't get the argument that a self taught person
               | should be treated equally hiring-wise
               | 
               | .. this is a totally different question.
               | 
               | If two candidates performed at the same level in
               | interviews/tests/whatever, and one of them has a CS
               | degree while the other does not, IMHO the proper
               | interpretation is that, assuming that their performance
               | scores in the hiring process reflects candidates' actual
               | abilities, is that the candidate without the CS degree is
               | a better learner (of CS related topics).
               | 
               | Put it another way, if a person who only spent a couple
               | months in boot camp performs on a similar level as a CS
               | graduate in interviews, it really means the former learns
               | at a terrifying speed, and has huge potential. It also
               | helps that many people like you would prefer to pass on
               | the candidate without the formal qualifications, so
               | there's even less competition for the candidate even
               | though they at least have the same level of technical
               | ability.
               | 
               | This line of reasoning depends heavily on whether your
               | interview process can actually gauge the technical
               | ability of the candidates. If it can't, _then_ assuming
               | the one with a CS degree has better skills is more
               | reasonable. But at that point, you might want to fix your
               | hiring processes instead of arguing this point.
        
               | wonnage wrote:
               | I don't think you can conclude anything other than the
               | candidate passed your interview.
        
         | vbezhenar wrote:
         | > in the rest of the world where it's affordable/free, most
         | would hesitate to hire self-taught developers, even in web
         | development positions.
         | 
         | I live in a country with free education and nobody cares about
         | developer education, if said developer has some experience.
         | 
         | I, myself, dropped university in the last year (it was my
         | mistake at that time, but whatever) and the only real issue it
         | caused in my life is that I can't easily get work permission in
         | Europe (and many other countries) if I would decide to
         | immigrate there. And even then it's possible to compensate lack
         | of degree with work experience, I just don't exactly know how
         | it works, because most of my work so far is kind of "self-
         | employed freelancer", so I have no idea how I would prove my
         | work experience to the visa office.
         | 
         | That said, getting proper education is not a bad thing, it's
         | just not very essential, at least in my experience.
        
         | zer8k wrote:
         | > Get a degree in Comp. Sci/Comp. Eng or at least some STEM
         | degree and then a Masters. I understand the US-centric view of
         | tertiary education being a risk due to large capital investment
         | but in the rest of the world where it's affordable/free, most
         | would hesitate to hire self-taught developers, even in web
         | development positions.
         | 
         | I can agree that having a BSc would be an asset. Most employers
         | understand Master's contribute almost nothing unless your
         | particular niche is something in systems (compilers for
         | example). However, systems advisors are few and far between
         | these days. You're much more likely to find one of the millions
         | of AI/ML MSc's. Maybe for a research position or something it
         | doesnt matter as long as you have the paper. Even then, you
         | could make an argument for systems programming that a BSc is
         | STILL sufficient. My systems programming classes at the
         | graduate level were basic bullshit. Nothing I couldn't have
         | gleaned from reading either "Modern Operating Systems", The
         | Dragon Book, Engineering a Compiler, or any number of the MPI
         | books.
         | 
         | Lastly, I have the requisite credentials. I work side by side
         | with self taught engineers. Very few companies will not hire a
         | non-degreed person if they can show good work. The idea of
         | "work in open source" is dumb and lame. If that's your cup of
         | tea - great! 99.9% of people don't have enough passion about a
         | single tool, and a single code base, to slog through it to get
         | "noticed". Better to implement your own toy stuff and just talk
         | about it online if you really care. The author's 10x cyber web
         | developer ninja nonsense is a very 2000's way of thinking about
         | "getting noticed".
         | 
         | My best advice to people is usually to get a BSc so you have a
         | strong foundation in Math and Computer Science taught in a
         | structured, standard way. I also advise people to not spend
         | more than ~$20,000 or so getting it. At that point you're
         | usually young enough that the opportunity/time cost is
         | extremely low and ~$20,000 can be paid off pretty quickly even
         | if it blows up in your face. ABET accreditation is an amazing
         | thing. Aside from the "prestige" you're learning the same stuff
         | MIT is. Personally, I paid all-in about $27,000. Worth every
         | penny at that cost.
         | 
         | Everything else, like all things in life, can be boiled down to
         | "just do it". I also work with a lot of MScs. There's a reason
         | they report up to me and it's not because I have more
         | "pedigree". Study theory all you want. At the end of the day an
         | application/idea/paper/etc implemented is more important than
         | waxing poetic about theory.
        
         | kubrickslair wrote:
         | I think it's worth noting that some of the most celebrated
         | programmers have been self-taught - think Aaron Swartz, John
         | Carmack, George Hotz and so on. Among leading academics also,
         | it's not unusual to find those without formal undergraduate
         | degrees in CS. Many come from mathematics backgrounds,
         | including several Turing Award recipients.
         | 
         | In the world of software development, degrees have often held
         | less sway, and I think this trend will only become more
         | pronounced. Too much focus on CS degrees I feel does not
         | account for the inherent nature of the role - and I say this as
         | a CS grad from a top school.
        
           | mcguire wrote:
           | " _Among leading academics also, it 's not unusual to find
           | those without formal undergraduate degrees in CS. Many come
           | from mathematics backgrounds, including several Turing Award
           | recipients._"
           | 
           | Before 1975, computer science degree programs were pretty
           | thin on the ground. Most of the Turing Award winners have
           | degrees in physics, mathematics, or electrical engineering,
           | which were closely related to CS.
           | 
           | Fortunately, today, you can become interested in CS topics
           | and easily find a CS program without going through one of the
           | other disciplines.
        
           | eatonphil wrote:
           | Another datapoint, Anders Hejlsberg (author of C#,
           | TypeScript, etc.) didn't graduate from university.
           | 
           | https://www.thecrazyprogrammer.com/2022/08/anders-
           | hejlsberg-...
           | 
           | However, I'm sure that the ideal (if not the norm) in systems
           | programming companies is that you did finish at least a
           | bachelor's degree. So it's not like you betting against
           | formal education is a good idea.
        
             | anta40 wrote:
             | Torvalds, a hardcore system programming guy got a Master
             | degree:
             | https://www.cs.helsinki.fi/u/kutvonen/index_files/linus.pdf
             | 
             | For example... :D
        
           | SuboptimalEng wrote:
           | I feel this is a weak argument. Like saying Bill Gates and
           | Zuckerberg dropped out -- but they dropped out of Harvard.
           | 
           | IIRC, George Hotz studied at CMU for a semester, took 4
           | difficult classes, got a 4.0, and won a CTF competition
           | before dropping out.
           | 
           | My take is that the normal programmer (frontend, backend,
           | systems, etc.) would benefit greatly from a CS degree.
        
             | bena wrote:
             | Gates was also taking upper and graduate level courses as a
             | freshman/sophomore.
             | 
             | And technically, Gates is on an extended sabbatical from
             | Harvard. He took leave to see if this software thing would
             | pan out. If it fails, he still has Harvard as a fallback
             | plan.
        
           | saiya-jin wrote:
           | I used to think that too when I was younger a way less
           | experienced. Suffice to say, not so much anymore.
           | 
           | The reason, apart from US which is unique in this in worst
           | possible way, is something else than just pure code hacking
           | skills - these are not that important. What even the
           | crappiest school will teach you way better than no school at
           | all - discipline. Wading through tons of useless topics (at
           | least in my case), its hard to be self-centered primadona.
           | 
           | Real work looks much more like meetings, wading through tons
           | of documentation, accepting mundane tasks since they improve
           | things overall but are not fun at all. Brilliant self-thought
           | people usually require fun and challenging work or they
           | quickly move away, which most work isn't, even in software.
           | I'll take OK disciplined guy over stellar one which needs
           | management babysitting re what I mentioned, any day. YMMV.
           | 
           | But yeah what is actually taught in school, at least in my
           | era, was basically useless at work. The stuff that helped
           | were my projects where I picked/created topics that actually
           | helped me to get better at given area.
        
             | hnfong wrote:
             | I'm not sure school teaches you discipline rather than
             | filter out the people who don't have discipline by making
             | them unable to graduate unless they ingest all the useless
             | crap taught there (together with the useful stuff).
             | 
             | If you can't teach an employee to be more disciplined when
             | you can put their job on the line, I don't know why you'd
             | think that even the crappiest school knows some secret to
             | teaching discipline that you don't.
             | 
             | Of course that means if you're hiring and need somebody
             | with "discipline", maybe hiring a CS grad makes sense. But
             | if my hypothesis is correct, a high school student probably
             | wouldn't benefit from going to university to learn
             | "discipline". Not that I think putting up with crap is
             | something I'd want to actively learn.
        
           | sho_hn wrote:
           | It's a bit self-aggrandizing to make decisions based on
           | comparing yourself to exceptional people, though. It may be
           | that John Carmack didn't need to graduate, but that the
           | average programmer could still benefit from structured
           | learning and a suitable environment.
           | 
           | I have a particular perspective on this: I well into my own
           | career now. I'm presently chief architect at an automaker,
           | and a decent enough systems/embedded programmer - you've
           | probably used some code I've written today at some point. And
           | I didn't even graduate high school.
           | 
           | I've often had a chip on my shoulder about this when I was
           | younger. I am particularly sensitive to "so what school did
           | you go to?" class distinctions when I encounter them. I fully
           | agree people in tech should get a chance to be evaluated
           | regardless of their academical background, and I definitely
           | don't insist on one when I hire.
           | 
           | That said, there's an even mix of great people around me who
           | have spent extensive time in education and academia, and
           | those who have spent none at all. The ones who did rarely
           | regret it, and often found ways to use the environment to its
           | fullest.
           | 
           | I got lucky, too: I fell in with open source instead of, say,
           | online gaming as a teen, and spent my "idle afternoons as a
           | lazy kid" fixing bugs in browser engines and other things
           | that turned out to be useful. Because that online environment
           | was motivating and because I had some fantastic mentors. I'll
           | forever be grateful to my past friend who sent me his
           | yellowed old copy of Wirth's "Algorithms and Data Structures"
           | - with code examples in Modula-2!
           | 
           | IMHO: Forget about exceptionalism, what matters is what you
           | spend your productive hours in the day on and who you do it
           | with. For many their best, easiest way to get something like
           | that in place is likely to attend a university. There are
           | alternatives, but make sure you seek out some version of
           | this.
        
         | glommer wrote:
         | author here! I had a whole paragraph on the importance of a
         | formal education. But removed because the post was too long.
         | 
         | it's very important!
        
           | glommer wrote:
           | for posterity, here's the deleted piece:
           | 
           | Don't neglect academic knowledge.
           | 
           | One of the unhelpful discussions I see online is the
           | suggestion that you may not need to have academic knowledge
           | to be a "developer". After all, can't I just watch some React
           | tutorial, code a couple of websites, and be done with it?
           | That usually takes the form of the infamous "In _real life_
           | never have I have ever inverted a binary tree".
           | 
           | Well, I did. Many, many times. I implemented binary trees,
           | B-Trees, red-black trees, tries, learned indexes, linked
           | lists. And I am not saying this to brag: the challenge here
           | would be to find a single systems developer who didn't.
           | 
           | Much of what you do at system level is adapting data
           | structures to new environments, where just using standard
           | data structures won't do. Big-O notation is another example.
           | They are part of systems level discussions all the time.
           | 
           | By "academic knowledge", I don't mean you have to sit for 5
           | years in a university classroom. I mean the kind of knowledge
           | that you acquire by going through the books and exercises one
           | goes through in the "boring" courses in university. If you
           | can learn that by yourself, that's all good too. I have a
           | great friend with whom I worked for years that never went to
           | school, but he could run circles around everyone in the Linux
           | Scheduler.
           | 
           | In my experience, though, few people can, and sitting through
           | 5 years of university does help a lot. Unfortunately.
        
         | commonlisp94 wrote:
         | > US-centric view of tertiary education being a risk due to
         | large capital investment
         | 
         | I can't help but think European perception is a little
         | exaggerated here. Yes, the live on campus and party at age
         | 18/19 experience is expensive. But, getting a state school
         | degree on a budget, and maybe a year of community college?
         | You're looking at 10-30k.
         | 
         | The bigger risk is opportunity cost since degrees start later
         | and take longer.
        
           | alkonaut wrote:
           | I partied for 5 years and got a masters and that cost me
           | around $20k in loans (Of which zero was tuition, it was
           | basically mostly the rent, books, food, and drinks).
           | 
           | If given the choice I'd do it again of course. Even if what I
           | ended up doing had nothing to do with what I studied I'd do
           | it again. Even if you told me that if had started a developer
           | job at 18 I'd now be making twice what I'm doing today at age
           | 45, still do it.
        
             | maccard wrote:
             | If you're 45 now, you studied probably in the late 90's?
             | 
             | In many cities today, rent for 4-5 years is going to be
             | 40k. I live in Edinburgh, where we have a large student
             | population. Getting a _room_ here is going to be the guts
             | of PS8000 /year, before you've eaten anything.
        
             | commonlisp94 wrote:
             | What does this have to do with the discussion?
        
       | tester756 wrote:
       | The biggest problem with system programming for me is that it is
       | very often fully dependent on C / C++ world
       | 
       | I wish we could get rid of that dependency and move to some
       | better technology.
       | 
       | There aren't many compilers-related jobs that don't rely on C++,
       | sadly.
       | 
       | Rust is promising as hell here.
        
       | jroseattle wrote:
       | The author's intent here is for young engineers to build signal
       | and reputation. Open source contribution is one potential way to
       | go about that. Another comment here referenced the importance of
       | a CS degree. There are other ways to go about accomplishing ways
       | of signaling to gain reputation.
       | 
       | As general advice for those early in their career, I find this to
       | be inadequate. These tactics (no offense to the CS peeps) might
       | "get you noticed", but that won't sustain if you don't back it
       | up. A github account or a cert from your favorite uni might
       | potentially get you in the door somewhere, but you will have
       | built expectations about what people can expect from you once
       | you're in the fold.
       | 
       | Very few have ever kept a job because of their G/H reputation or
       | GPA. The number of times I've seen a hire who was "noticed" that
       | failed in their new role is almost meme-level. It's amazing how
       | quickly credibility and reputation from that get-you-noticed
       | effort can be burned down.
       | 
       | By all means, make logical efforts to get noticed, but that will
       | only take you so far. You will significantly improve that
       | signal/rep when you translate your previous activities to skills,
       | learning, and value as you go forward.
        
       | crabbone wrote:
       | I was "lucky" to get into system programming on the cusp of Go
       | introduction. I was a refugee from ActionScript world, and was
       | looking for something else to do with my rudimentary programming
       | skills, mostly looking for Python jobs, especially outside Web
       | because going from ActionScript to JavaScript was way too
       | depressing.
       | 
       | So, I applied to a job posting that was looking for "Python
       | programmers who want to learn a different language" (I think, at
       | first at least, Go advertised itself as "almost like Python").
       | And then I've got a job in the automation department of the
       | company, and from there it was more predictable and sure way
       | forward.
       | 
       | After a while I also had to interview people for positions in
       | system. Obviously, I'd be overcome with joy if I ever had a
       | candidate who knew what our product was and was contributing to
       | the open-source parts of it... but nothing like this had ever
       | happened.
       | 
       | In most cases, people who came to interviews for system jobs
       | weren't themselves system programmers. So, my task was to look
       | for the best match among candidates who didn't generally match at
       | all. It's ironic how much a typical programmer is completely
       | unaware of how their computers function -- so, I was generally
       | fishing for the bits of general knowledge about computers, and if
       | a candidate could master a plausible explanation of how a
       | particular computer component or a process could work, that was
       | already a huge plus.
       | 
       | Now, how can you possibly acquire this knowledge? -- Really, I
       | cannot think of a better way than through contributing to an
       | open-source project, if you aren't already hired by a company
       | that employs you as a system programmer... College doesn't teach
       | anything relevant. Even online boot camps rarely have anything
       | relevant. There are some books, but, mostly woefully outdated and
       | they don't generalize well. The knowledge mostly comes from
       | first-hand experience and following various mailing lists, bug
       | truckers and every so often a conference.
        
       | raydiatian wrote:
       | Thoroughly enjoyed this article.
        
       | _gabe_ wrote:
       | I thought I would give medium one more chance, thinking that
       | maybe it _has_ gotten better, it hasn't.
       | 
       | The author starts off with a self aggrandizing tweet from
       | themself:
       | 
       | > We kernel and database people think this discussion about
       | whether frontend or backend is harder is kinda cute. you're all
       | adorable!
       | 
       | As someone that has a full stack web development job that also
       | enjoys systems programming on the side, both are difficult in
       | different ways and the only reason you could come to the
       | conclusion that one is "harder" (whatever that even means) than
       | the other is from a stance of ignorance. You literally do not
       | know what you do not know.
       | 
       | Than, the author's only career advice is to contribute to open
       | source. That's great, not exactly earth shattering but not really
       | worth the long winded article to get to that point.
       | 
       | If the author is here, consider not starting your article with a
       | self quoted rage-bait Tweet that adds nothing of value to the
       | article. Maybe your intention is to capture engagement, but it
       | leaves any reader that may have been interested in what you had
       | to say and is a web developer disenfranchised.
       | 
       | It's very easy to dismiss an entire field of technology that you
       | don't work in without ever attempting it. It's different to
       | actually dive in and try to understand why there are problems and
       | what those problems are.
        
         | tacker2000 wrote:
         | Yea that tweet also left a sour taste in my mouth and actually
         | made me stop reading right there.
         | 
         | What's hard, what's easy? Who knows? Who cares? Are you a
         | better engineer for being a systems guy? Come on, this is just
         | such a petty mindset.
        
       | 1equalsequals1 wrote:
       | Do some work for my startup and I might hire you if it all aligns
       | with my business plan
        
         | glommer wrote:
         | He happened to contribute to our project, but we hired another
         | engineer recently with a lot of great OSS contributions to
         | other project (yrs).
         | 
         | Back in our ScyllaDB days, we hired a people from both Linux
         | and LLVM. It's a great way to stand out.
        
       ___________________________________________________________________
       (page generated 2023-08-18 23:01 UTC)