A formal degree and algorithmic problem-solving is the answer. Always has been
zaksa.zip
zaksa.zip
Excellence can also be found in independent reading, and it can be learned with professional mentors as well.
You can learn it from AI, too, actually. I'm skeptical about the central use of AI in writing code directly, but find it incredible as a teaching tool. It is especially impressive when I use it as something between a tutor and a search engine, talking to it a lot about the best way to do things and asking it about standard methods and resources. It's not infallible, to be sure, but it's this incredible combination of tutor and textbook, with a better connection to the zeitgeist than all but the very best of tutors and textbooks.
In this way, AI is not dissimilar from school, independent reading, or work experience: you can use these tools in different ways, to serve different goals. If you focus on credential, skill, productivity, and money, you may entirely miss out on excellence in your craft. On the other hand, you can pursue excellence in any of these contexts.
The golden days are now: We can amplify our mind's ability to get stuff done before our AI overlords supplant us.
Kind of not kidding. My opinion: Get shit done, make stacks because it's going to get interesting even if AI never advances much further. The perception that it will be chaos enough.
The range of degrees is very wide. Even within some universities you will find graduates with completely different levels of ability despite achieving the same degree. Some universities are set up to pass everyone through to graduation and the professors try to give opportunities for the really motivated ones to actually learn.
The range of degrees you will see is also dependent on where you’re hiring. Graduates from the programs with the strongest degrees aren’t applying to average jobs. They’re being recruited before they leave campus and they have a deep network of people in top companies to get referrals from.
This creates a strong selection effect where the type of C.S. graduates you encounter is dictated by the strength and compensation level of your company. Top school CS grads can go straight into jobs that pay higher than Senior SWE compensation in many markets. They’re not interested in applying to average junior SWE comp jobs at companies that nobody will recognize on their resume.
Agreed. Even without considering students’ motivation and skill, sometimes this is just caused by flexibility in the degree design. Some universities offer students a lot of choice in the courses they take. For example, I chose not to take the algorithms class (I decided to self study it at that time) and instead took the graph theory class. It turned out that at that time my self-studying overemphasized algorithms likely asked in interviews (like greedy or dynamic programming) but didn’t cover more theoretical aspects like P/NP, pumping lemma, etc. This was something that I started regretting years after graduation.
I think offering too much choice to students who were still learning is probably a mistake.
My experience has been that it’s the norm to find that even people who come from “recognisable” names follow a bell curve distribution that matches people who come from other places.
The center of that distribution is higher or lower depending on the university. The university matters a lot.
Ultimately, I learn more by studying it myself. Nothing I was formally taught ever went as deep as the things I chose to dive into.
In comparison if you want just structured exercises with known answers, which in cases where you have been in an industry for a while maybe what you are looking for, thats boot camps and certificates.
It is a signal, not the signal.
It really comes down to the individual. Those who are good with CS degrees would likely be good without them. The majority of those who picked CS as a degree because “it pays well” are truly awful. Only a small handful end up enjoying and understand how to write code and make good software.
While I'm an interested self learner, I significantly benefit from structured learning. I don't think I would have had the breadth of depth of knowledge if I didn't do a CS degree since I didn't think I would have done such a variety of focused projects and homework. I would "shop" for good teachers and wait until they taught to take a course. I would have lots of questions in class. At the end of many of my semesters, I genuinely felt like Neo's "I know kung fu" - knowledge given on a platter. I didn't think I would have left covering undergrad subjects if I didn't, well, feel the need to earn my keep and at least aim for higher level studies and get assistantships for initial financial independence.
That being said, this was all before the YouTube era. Although, YouTube is a double-edged library of distractions and amazing educational material.
Again, purely anecdotal, but it is 20 years of anecdotal experience across a very broad range of industries.
Nowadays I hope the CS curriculum explicitly disregards whatever the standard industry code factory meta is, since from the outside it appears to be soulless and dehumanizing. Who wants to take 101: Hit Approve all day on your 20 claude terminals?
Obviously put all 20 in tmux sessions and have a monitor agent do the approvals.
I think philosophy is an excellent match for development, certainly now with AI.
I've worked with an absolute leetcode beast and had a masters in CS. He insisted we use Redis for a project with a lot of relational data. We ended up building a mini relational database on top of redis. Whatever you're imagining about the dev experience, it was worse. He was a lead/senior engineer at the company. Turns out he never bothered to properly learn SQL because he didn't like it. C'est la vie, ggs I guess.
One of the best engineers I worked with was a biochemist who fell in love with programming through chance.
Most of the people I admired in the industry are self taught and passionate about the craft; a lot of them are also immigrants who didn't have access to prestigeus unis. Some went to uni but admit they've been programming since before that.
You can't really learn to be passionate about the craft and to enjoy learning at any uni.
I think the article takes a more nuanced view than you suggest. And the existence of counterexamples to a "for the most part" claim are not counterexamples at all.
It’s always great to find a diamond in the rough who has been passed over by other companies for lack of degree and is looking for an opportunity to shine.
On the whole, a CS degree is directionally correlated with being more likely to have a good understanding of the fundamentals, algorithms, and other important context that helps more as the problems get hard. These things can all be learned by someone without a CS degree, but in my experience being open to interviewing non-traditional applicants it’s more common for the self-taught applicants to be more trial and error type devs who got to this point by experimenting and seeing what works.
I always have to give the blanket disclaimer that a CS degree does not guarantee a great dev and a lack of CS degree does not mean the dev is not good. However, I honestly can’t say that a CS degree is not correlated with better developers on the whole. I choose to interview non-traditional applicants who don’t have CS degrees, but to be entirely honest I can’t fault companies who get a lot of applicants who start prioritizing those with degrees.
Personally I agree that a CS degree isn't needed for most software jobs because frameworks and libraries hide most of the gnarly CS stuff. But those are the software jobs least likely to survive adoption of LLM-based software development.
Most smart people I know don’t like toy leetcode problems, they like real problems which are orders of magnitude harder and not solvable by LLMs. Leetcode is for people who got good grades and want to feel smart by learning the rote tricks to solve leetcode.
I bristled a bit at the scalpel "you don't want to give this tool to the wrong person" analogy. While I agree that there are certain classes of software (like banking/finance, healthcare, etc) that you don't want just anyone writing, but you don't need to have a C.S. degree to whip up a SwiftUI Music.app replacement so you can listen to dad Rock while you work in the basement.
For folks that don't have CS degrees, they just have a little more to learn outside college. When I started my career, a significant majority of my colleagues didn't have CS degrees. It just wasn't a popular major in the 90s.
Among the best developers I've ever worked with never went to college at all.
1. the complete demystification of computing. If you’re writing c or assembly and working on OS concepts there’s a sort of aha moment that the computer is not a mystery.
2. The degree pushes you past the hump where a lot of folks get stuck on when learning to program. There’s a seeming spot where things makes sense and you actually understand what’s going on. Forcing yourself to stick with it for 4 years where you’re taught by experts is helpful for that.
3. It gives you a space to explore a wide array of topics. Whether they are useful to an employer or not.
I assume folks can accomplish these 3 on their own. But it would be more or less building your own balanced curriculum and also trusting as you start that your curriculum will work. Whereas within the school system the trust is baked in: if you successfully complete these assignments you will learn foundational concepts.
My guess is that interview questions would test your skills combined with the llm, because when testing skill without, the difference is just too big.
However, I think the core issue that individuals run into is that the industry does not stop to train engineers in any kind of formal way. If you do not address this, then your skills will never adequately develop over time. This goes for CS degree holders too, they just might have some more confidence initially from the 4 years of marinating in the material.
There are so many ways to develop your skills:
- cs degree, sure
- pair programming with people that have the skills you want
- helping others with their problems
- building personal tools
- reading blogs, watching videos, and generally soaking up external opinions
- taking projects slightly outside of your skill level
- self-reflection and writing down the problems you have, then actively seeking help with each specific problem
- learning to read error messages so you don't sit there slackjawed when red text shows up
- learning to read documentation and scan for useful APIs
- reading books, if that's a method that works for you
- doing retreats like Recurse Center that push you
- SRS practice with tools like Execute Program
- paid courses with work edu budgets
No one will really make you do these things though, so it is very sink or swim. You don't have to do all of these things, but you likely need to be on some kind of upward trajectory, particularly for the first solid chunk of your career. For me, this is mostly work I would do as part of the job, during 9-5 work hours.
Becoming an MBA candidate, the barriers were minimized even more, if not eliminated.
I can only imagine if it was a top ten school instead of top 30.
Combine a top 10 with a proper computer science degree. If only I knew and understood this was the “proper” path a decade ago or more.
Taking the harder path helped me become who I am today, but, it sure is easier to take the easier path.
If you are looking for a practical computer science degree, Georgia Tech’s OMSCS feels tailor made for late 20s and 30s. There’s no age restriction of course, but if you are younger, on campus networking is better.
I plan to do it sometime after my MBA.
Perhaps your experience is unique and not at all representative. This reads very out touch.
Edit. Here's some data.. none of which indicates "rarely works out".
SO survey 2025:
20% of respondants who were professionally coding did not have a 4 year degree. Only 17% of all respondants said they learned to code from school.
SO survey 2017:
> The remaining 20.9% said they had majored in other fields such as business, the social sciences, natural sciences, non-computer engineering, or the arts.
> Of current professional developers, 32% said their formal education was not very important or not important at all to their career success. This is not entirely surprising given that 90% of developers overall consider themselves at least somewhat self-taught: a formal degree is only one aspect of their education, and so much of their practical day-to-day work depends on their company’s individual tech stack decisions.
Most of the people I worked with at Apple didn’t have CS degrees yet they built the thing many of you are using to read this.
Much of software development is deciding what to build rather than how to build it — that takes skills far beyond CS. We are building software for people to use rather than building it for its own sake.
CS people might know algorithms but do they understand why they even need it? How does it help the user? Some of the worst places I’ve ever worked had lots of CS degree people who spent more time complaining about framework defaults than building something people are able to quickly use and pay money for.
Inventors of Perl, C, Turbo Pascal, Typescript, Delphi, C#, FORTRAN, PHP, and COBOL pioneer Grace Hopper — no CS degrees.
Jack Dorsey, Peter Thiel, Zuckerberg, Chris Wanstrath (GitHub,) Arash Ferdowsi (Dropbox.) — no CS degree.
Stewart Butterfield (Slack) had degrees in philosophy! Reid Hoffman — also a liberal arts guy.
Avie Tevanian (Architect of MacOS,) — no CS degree. And while Steve Jobs wasn’t as technically astute as Wozniak — he still did tech and of course, no degree at all.
I could go on all day — I only mentioned the famous ones. At Apple I could list a hundred top engineers with no CS degree. I am sure most people here could.
The CS degree gatekeeping is complete ridiculousness.
I am biased though— I spent 7 years at Apple and have been in this business 16 years and my degree? Journalism.
CS people might be able to answer questions, but many times they don’t know the questions to ask. Tech has room for everyone and everyone brings a different skill set to the party. Not all doctors need to be neurosurgeons.
Some of those (certainly Grace Hopper) are old enough that CS degrees didn't exist. Hopper had a PhD in mathematics.
Dennis Ritchie (C) got his degree, bachelors in physics and applied mathematics from Harvard, after CS degrees came into existence but 20 years before Harvard offered a bachelors degree in the subject. At the time those interesting computing could study it as a special track in the applied mathematics program.
At a lot of research universities I think that was the general pattern. They start a CS research department which takes on graduate students and offers PhD and masters degrees. Then they start offering undergraduate courses, but no degrees. This can go on for a while. Eventually they add undergraduate degrees.
When I was a Caltech student (class of '82) they were in the "this can go on for a while" stage. My degree is in math but I took all of the undergraduate CS courses they offered. It wasn't until 2004 that they finally started offering a bachelors degree in CS.
A big problem with the notion that a university degree is necessary for success— apart from the obvious counterexamples that are all around you— is that university education is such a small percentage of your career as a learner. Another problem is that a degree can be acquired without doing much actual work. Another problem is that degrees are poorly aligned with the needs of industry.
Having been in the industry 43 years, I also have experience. I wouldn’t tell anyone to “stay in school.” I would tell them to relentlessly study their craft and achieve excellence in it. That’s why, in my field of testing, instead of quoting textbooks, the textbooks quote ME.
But then a number of examples are given, that suggest that degrees are orthogonal to skills and promotion, and instead being aggressive promotes better than excellency.
So how a compulsory degree would fix this corrupted promotion mechanism?
This is not true, or at least, the practice that medical students do leading up to their first involvement in a surgery is not with a surgical scalpel.
And if we think college degrees don't matter, there's plenty of professions that require time on the job, rotations, flying low/no passenger planes, and so on.
We require people get a license to own a firearm (or ostensibly should...). And AI can be an extremely powerful weapon.
I see a gatekeeping argument. I don't agree with their requirements. I'd rather see that regulation than banning models.
It also has the side effect of preventing AI from taking jobs as aggressively, keeping it at bay in schools, and getting people to maybe respect(?) / acknowledge the dangers involved here.
Follow up question. Who is zaksa?
Especially with advent of agents, I have dropped all illusions of ever getting paid for this outside of like freelance work. Will keep working through cs:app3e for the love of the game.
It's not like we're in a rush to bring software out there asap, and we still have some people who measure software success by LoC. Something doesn't add up.
Because leading the pack you find Harvard/MIT-bred Leetcode ninjas that are absolutely void of any engineering skills, any whatsoever. The type of people that spend years thinking that Grokking the coding interview is a valuable way to spend time and are pushing memory leaking React+Tailwind garbage to billions of people as a living.
Absolutely pathetic.
If that is engineering and that is what it leads to (people rat raceing big tech while writing very poor bloated software) and that should be the elite, no wonder the rest of the world quickly figured out a degree had little to offer beyond (some) selection.
I’ve worked with plenty of people like this that had degrees. A few of them even have masters.
> The people I wrote above weren’t considered bad performers.
Did management - the people who are supposed to deal with the issues described - have degrees?
Not that I would consider a "licensure required to use a sharp knife" kind of world, even if it would solve some problems.
Ultimately the most affordable worker of the future is going to be the person who knows just enough to prompt an agent to first build a feature and second fix it "fast enough" when it ultimately breaks.
Companies might have a couple of people who actually know how to design systems and think deeply on hand for overall architecture, load balancing design, and serious problems but this will be a small cadre of employees. In some sense, I suspect, in relation to degrees, computer science will eventually look like the field of curation: an extremely small pool of outstanding positions looking to be filled by an orders of magnitude greater number of degree holders.
Unless the bubble does eventually burst, in which case people will hopefully return to their senses.
I'm not denying that it happens. I don't think it's a significant driver, though.
At the minute I would agree that I am going off a broader definition extended to friends and past colleagues but I strongly suspect in the next 10-20 years more traditional family nepotism will seep in as the kids of millennial coders who got their break at FAANG start graduating and using family contacts to land jobs. Yeah engineering will always require a baseline of knowledge but if the basic competence is present there is nothing to suggest that tech is immune to the nepotism which exists in every other industry. The "don't be evil" days are clearly long gone.
address=/.app/0.0.0.0
address=/.vercel.app/0.0.0.0
address=/.zip/0.0.0.0
address=/.mov/0.0.0.0
address=/.so/0.0.0.0