> I can guarantee there's a huge amount of knowledge in a proper CS degree that they don't have.
Idk, I don't buy it. I have a master in Chemistry, but ended up a software engineer 8+ years ago with no formal CS education.
Way after starting to work, I started digging in most CS topics and I'll just plainly say that: I know more about networking, OSs, math, programming languages, type systems, algorithms and ds, system design etc than fresh graduates I interview, let alone people that graduated ages ago.
Unless you've been living under a rock, most universities out there programs are public, lecture and notes are there, and there's an overabundance of excellent full courses on YouTube and simila.
The only thing that a degree tells me is that you went through a series of tests and passed them, tells me absolutely zero, nothing, about what you retained in years studying.
It's not surprising, in chemistry it was the same. There were many people that would ace all exams but literally forget stuff or not really understand it just few weeks after an exam.
Firstly, congratulations (seriously) on your efforts. Firstly for getting a degree in chemistry (not easy) and secondly for a rigorous approach to self-improvement.
I would however suggest that you are not a prototype for self-taught programmers, much less self-taught programmers with no other degree (and thus no exposure to academic rigor.)
Of course the OP might be as advanced as you are, but its fair to suggest they likely aren't.
Personally I learned to program as a child, and then did a comp sci degree. And I got a lot of value from that which I've used through my career.
Of course (these days) there are lots of resources online so the OP could learn everything he needs "self taught", but degree programs formalize this, and give you a degree at the end of it. (And formal degrees are still a valuable hiring filter.)
> I would however suggest that you are not a prototype for self-taught programmers
Twenty-five years ago this was bog standard. Most people who were programmers did not come from a computer science background. They were self-taught. What is so different today that they cannot do the same? If anything, the biggest difference is the "gates are higher", but the work is barely different. I work in a field where most of my customers are self-taught, often (but not always) degrees in other fields. I can only use my experience as a reference, ymmv.
What ive noticed is that people have different strategies to learning. Most adopt a "just in time" approach. They learn only enough to complete the task at hand. There is very little curiosity in the bigger picture, or the fundamentals.
This is the opposite to the formal approach, which grounds the learning in theory.
can people learn the fundamentals in a self-taught way? Obviously yes. Do most people learn this way? Id suggest not.
The contrast is to students at college who are always asking "hey am I learning this? When will I use this?" It's not always obvious where they become important.
In my own career I was able to leverage my fundamentals training and translate that into value to those who just want to complete a task.
25 years ago computers were mostly interesting to "geeks", and those looking to program them were even more so (ok, that's really 30-35).
Yes, it started to shift 25 years ago already, but what has obviously changed significantly is that software development became a good paying job, which attracted even wider masses not caring about the fundamentals. There are certainly more self-taught programmers who dive into those fundamentals in absolute numbers, but relatively they are more of a minority. But that means that there are even more who do not care in absolute numbers.
You have a point I did not consider. Having studied advanced chemistry, math and physics as a chem master obviously taught me a lot how to approach CS.
There's that, but more than just how to approach a technical topic you put in the effort to lean to such a depth on your own. Most people will not bother (if they even know how in the first place).
Also it sounds to me as though you are fully capable of independent research. Even among those who hold masters degrees that's not guaranteed. A significant part of PhD programs is ensuring that students are capable of that.
I think you are more of an outlier than you realize.
You know more than fresh graduates, but fresh graduates don’t absorb 100% of the material being taught — more like 50% at best, and many promptly forget that knowledge after taking the final. As someone who went back to school after about five years in SWE industry, I did (and still am) learning things in CS classes.
Granted I did know a lot of the material already, and I do go to Berkeley which has a comprehensive CS program, so YMMV. My main point is to not compare your knowledge to fresh grads knowledge to determine what they are taught.
I hear this refrain quite a bit: "But what have YOU retained?" and it almost comes across as weirdly accusatory. I can't speak to everyone's experience, but since we're tossing out anecdotal evidence, I've also acted in the role of interviewing applicants for software engineering positions (granted this was over a decade ago). Occasionally we'd discuss CS topics just to get a feel for the applicant and most of the applicants with BS/MS in computer science knew their stuff.
I mean if you aren't retaining a majority of what you spent 4 damn years studying then what was the point? I don't claim to have an eidetic memory but I recall the theory/application of most of what I studied in university. A few months ago, I had to whip out the Taylor series for a particular problem and I pretty much hadn't touched the concept since taking Calc 2.
It also seems like you along with a number of people seem to be addressing a point that I never once made.
Once again I suppose I need to restate the original argument because basic logic apparently missed the cutoff.
The argument was not:
- something something the vast wealth of knowledge on the internet replaces the need for your stuffy ivory tower something something
- something something my horatio algers narrative elevates me beyond the filthy CS grad mugbloods something something
- something something but what did YOU RETAIN Leonard Shelby something something
The argument was that the OP would not LEARN ANYTHING NEW in the course of acquiring a formal degree since they've already started working professionally. If the OP got a job in frontend development (for example), it's highly unlikely that they've ever encountered any of the aforementioned subject material I mentioned.
That you N=1 spent your formative years poring over scrolls of the SICP and The Art of Computer Programming like you were preparing for your bar mitvah is not generalizable to the vast majority of people working in IT.
> the OP would not LEARN ANYTHING NEW
Do you perhaps mean "useful to them"? One of the most common complaints is that CS degrees include "useless" stuff. Based on that observation alone it's difficult to believe that OP will have encountered all the relevant material in the workplace.
But then OP said ME/EE. Surely you don't mean to suggest that working as a software developer will have covered that material to any significant degree?
Edit: Nevermind, I see we agree and I misunderstood you. I'll leave the comment though because the point stands.
I think of working problem sets as training in the sense of gym training rather than job training.
Gym training is also good for your brain of course.