The background in computer technology from a university level is the "why" behind what you're implementing. Not the "how" you implement it. The hands on exercises are more to apply what you've learned than to give you skill training like a technical college.
I've worked with 1000s of developers over my career. The more knowledge you have, the more well rounded you'll be. This tends to lend itself to better developers in my experience. Where self taught is fantastic, but typically those coworkers (not all but most) tend to be pigeon holed into technologies instead of concepts.
Developers could learn a lot about business too, accounting, finance, marketing, etc.
I loved college and feel it really prepared me for figuring out my way in the world, much more so than simply reading Programming in C.
I loved programming and still do, but I went to college because I knew -- by the time I was 18 -- that I really wanted to do something more with my life than build other people's boring websites.
My advice to extremely bright and/or motivated high school students who have the option to get into the programming profession right away: consider whether this is going to be as intellectually stimulating in 5 years (or even 5 months) as it is now. There's no "right answer" to this question! But consider it carefully.
And don't under-estimate your potential.
Note: Being way ahead in CS allowed me to study a lot of other stuff beyond the introductory level. Econ, art and architecture, a bit of business and law, the natural sciences, etc.
There's a lot more to CS than software engineering. And a lot more to software engineering than application development.
A wise man once said computer science is no more about computers than astronomy is about telescopes.
In addition, it seems pretty obvious that with 20+ years of industry experience, a reasonably competent 40 year old candidate would be as employable as one with a degree. Who cares about university degrees that far removed from obtaining one anyway?
That is correct. End-user utilities like Git are left as an exercise for the student, something that a CS graduate should be able, not only to learn to use in a couple of hours, but understand its inner workings without reverse engineering, and write its own version after.
The reason why Git is not tough in CS classes is that it is considered so trivial that is will be a waste of time (and tuition) to do so.
"In addition, it seems pretty obvious that with 20+ years of industry experience, a reasonably competent 40 year old candidate would be as employable as one with a degree. Who cares about university degrees that far removed from obtaining one anyway?"
It depends on what it will be writing; if it is another website that is just a magazine on HTML sure, no difference. If it is optimizing a compiler in assembler, correcting performance problems on a multiplatform system, or evaluating code for security holes in a sizable institution, then you better have your degree.
So if you have a CS degree, you're qualified to optimize compilers and perform security audits at large institutions? No way.
In practice these are two different and highly specialized jobs. Why would you not consider someone who has a proven track record of optimizing compilers? Or finding security holes in code? I'd rather look at a portfolio than a certificate any day.
If you've spent 20+ years doing exactly that (because you're 40+), then what difference does a degree make?
My other family of nurses and factory workers definitely think of software as white-collar professional work. Especially anything www.
I think the same thing happens with engineering, except engineers have a bit more social capital due to their guilds.
More-over, the answer isn't static. E.g., a couple hundred years ago, we could've had this same conversation about whether carpenters or silver-smiths are laborers (or whatever other blue-collar-label-of-the-time).
But the answer also doesn't much matter. What matters is that your compensation makes you happy, will keep you happy in the future, and the work is interesting enough to make you feel sufficiently fulfilled (or the pay high enough that you don't care about that).
Programmers, engineers, and the like don't get that automatically, without more context—money, notable employer and notable position at that employer, and even then maybe not quite placed at the same social rank as a doctor/lawyer without even more context, e.g. school, other non-tech accomplishments (languages and arts especially), and so on. Going to any Ivy, top public, or famous European (especially British) school gets you closer (see the part above in paragraph one about socialization into the upper-middle).
[EDIT] I should add that you also don't gain Academic cred that puts you on a kind of adjacent track on the whole class system, with full professorships granting similar social standing to doctors/lawyers and the like. Unless you are in academia, and don't bail on it for private industry too early.
Not just class system, but also career track.
If a DotCom 2.0 bust happens tomorrow, I can bail on tech of a half dozen other fields -- I have the network and the knowledge base to find high five/low six salaries outside of software. That's probably less true for me-N-years-ago, who could program certain things real good but that was about it.
I have some news for you folks, most white collar jobs (account, finance, etc) are more boring than a job as a enterprise CRUD developer.
If development is blue collar, then 95% of jobs are blue collar...
That doesn't make them blue collar, even when we consider some software to be blue collar.
Now, whether blue collar is a useful label and whether people should be considering social capital when choosing a career? Those are the more important questions.
A lot of this is more about social standing/perception than earning potential or type of labor.
> Programmers are well paid and have a high social standing compares to real blue-collar jobs
Neither of those is universally true, and it's not even clear to me that they're true often enough to justify your generalization.
You'll have to be more specific. Your current comment is equivalent to "you're an idiot"
That said, I really really wish I spent more time learning about myself and what I like to do. I think I'd be much further along in my software career if I had an MS in CS.
In any case, I do not regret going to college at all.
I started programming at ~12 (early 90s). My jobs where limited until I went to uni (graduated at 29).
The actual coding taught at uni was minimal and outdated, and I wouldn't trust some graduates with a calculator. If you're good at coding, then you'll probably know it before you enrol.
But with my degree I was able to progress out of the sweat-shop type places.
It's hard for those who haven't been to uni to understand the benefits of it. It's more than just "experience vs study".
Here's my challenge to those who are "self-taught" (like I was): If you think you're so good, then why not enrol? (even P/T)
(The author is not based in the states and is currently enrolled in grad school)
No one needs to go to college for coding because coding is a blue collar job these days. In fact, when I went to university they didn't teach much coding beyond a programming 101 class and you were simply expected to learn various languages on your own time.
That class also certainly didn't teach you about the latest frameworks or trends either, just straight C and Java, which in hindsight I think were smart choices but at the time I didn't understand why they didn't teach more practical stuff.