That's the biggest thing I think someone would give up by not pursuing a traditional degree.
If you are self-motivated and intelligent enough to learn the equivalent of a CS degree on your own, then the upper bound on your career trajectory is often significantly higher than "senior software engineer".
So even if you can self-learn, the article is still bad advice. Better advice would be "if you can learn this on your own, maybe aim higher than code monkey jobs".
Go ahead and major in CS because it'll be easy and enjoyable and a good fallback. But also pick up a second major in pre-med/pre-law/econ/finance/engineering/etc. Or get involved in research projects, etc.
So, yes, this is bad advice for weak students. But it's also often bad advice for strong students, who should be aiming high.
Got a bit sick of the attitude that CS is programming. Switched to Data Science and after a while I’m starting to see Data Scientists that can’t do even basic math. With 6 lines of copy pasted code they’ve made a dnn. They know how to separate into test sets and that’s it. I really feel we need certifications that people actually respect because this is just the ultimate lemon market.
Now my colleagues are just PhDs and I couldn’t be happier. But still I do worry about the field. What will math heavy fields do in the future? Slap theoretical in front of the course as to not make self-learners self-conscious?
Many people can self-learn. Those same people often cannot perform well in school because school is rigid and authoritarian.
I'm definitely one of them and my career refutes your idea quite heavily. I'm absolutely not the only one.
Doubling down on debt and the system with another advanced degree is dangerous advice.
If you cannot self-learn, you find out relatively fast and with little cost. Not true for the above advice.
It’s too much for me to seriously consider going back for medicine, tbh. I’d have about 3 years of part time classes at community college or online, maybe less if you could squeeze more in each semester.
Law school requirements where I live aren’t as significant, in fact I don’t think there are any. So I have considered sitting for the LSAT... Family of doctors and lawyers so the thought of going back to school is always on my mind.
I'd echo the vote for Physics.
They went over fallacies, truth tables, tautology, and other things.
I took that with a great professor that wanted you to learn and be able to make strong arguments. You had to be able to break apart anything thrown at you and call out what it was.
Everyone would be able to see how others are trying to take advantage.
The other is also doable. How to phrase things in a way to get what you want. I think he’d approve...
Are those courses actually available in MOOCs? Is the feedback sufficient from the MOOCs for the more technically difficult courses?
I cannot imagine taking, for the first time, a course like CS Theory, but maybe a follow-on course, as a MOOC. So much of what we learned was because of feedback during the semester and tailoring to our level by the professor. If you're talking about an online course with 20-40 participants in a cohort with a dedicated instructor/professor, then it could've worked online. But most MOOCs are not set up that way (from what I've participated in).
On top of that, lacking discipline, I can't imagine anyone in that class but 3 of us choosing to take it voluntarily if alternatives had been provided.
Maybe there are people disciplined enough. ¯\_(ツ)_/¯ personally I need an external push.
Another thing that is easy to misgauge - how much work it takes to understand a topic. All told, across several classes, I probably spent a full semester studying mutual exclusion, critical sections, deadlock and so forth. I would not have known it would take several months of study to start getting a handle on that topic - although I see it all the time when debugging an error (created by myself or others) which turns out to be code that has a race condition.
* I loved political science and sociology classes. I would not have predicted that.
* I use my physics classes all the time, but never in ways I would have anticipated. "Hey, I wonder how high we are. Here's a rock we can toss down into that pond. Get your stopwatch!"
* I very rarely find myself working with finite state machines, but when I do, it's nice to feel comfortable reasoning about them.
* Big-O notation? All the freaking time. That's an enormously powerful tool for thinking about how systems will scale with the number of users, for instance.
These are shallow takes because they're always reflections on personal experience and not really a view of others. Or when it is about others, it's extremely shallow - this article's take is "is salary times expected employment probability minus degree cost positive" which is basically saying nothing at all.
MOOCs like EdX and Coursera have deeply harmed CS degree quality. The most striking evidence for this isn't the crummy completion rate or as you're eluding to, lack of coercion or whatever. It's that in my experience with Harvard and Stanford interns, whose curriculum these MOOCs copy, the quality of the student declines with the number of years they have spent in their institution's CS program. In other words, freshmen and sophomores outperform seniors and just-recent grads!
This is crazy, how could that be? By putting everything on rails. In MOOC CS50x and CS50, as long as you follow all the steps in the videos, you will complete the course with an A+. After the first few problem sets you're conditioned that if you're thinking too much you're doing something wrong because it's supposed to be on rails, it's supposed to be easy enough that you can just complete it by reviewing or copying. There is no space in that class for thinking, you should not be puzzle solving, the things that look like puzzle solving only look that way, they are not actual puzzle solving. It is an amusement park ride for entitled and mediocre people disguised as an elite university course.
This makes sense for what the goals are. It's not really about education. It's about the psychic pleasure of feeling like you learned something challenging. It's about preparing someone for a corporate gig, where in reality it is really bad if a junior person is doing any thinking - they really should be going out there and cramming, copying something or asking someone for the right answers! David Malan and Andrew Ng gave people want they wanted, that is capitalism, that is okay, it just isn't necessarily education.
How is performance defined? What am I asking these students to do? Something original. Like at the end of the day you want people to sit in front of computer and solve an original weird problem, MOOCs will unprepare them for that.
I work in a very technical area where you need to have taken a PDEs course to even understand what's going on. The only amateur developers who can even carry on a conversation about the work have math or engineering phds.
> There is no space in that class for thinking, you should not be puzzle solving, the things that look like puzzle solving only look that way, they are not actual puzzle solving. It is an amusement park ride for entitled and mediocre people disguised as an elite university course.
Being a generic software developer cog in a giant corp sounds soul-crushing. I think smart students who have the drive and intelligence to learn CS on their own should seriously consider if that's the type of job they want.
Math is another biggie I think a lot of people would skip. While I'm not quite sure everyone needs 3 semesters of calculus to be an effective programmer, I think it is helpful to understand at least the basics of calculus and trigonometry.
There are also a lot of aspects of formal schooling that help you prepare for work/ life later on. If you see a degree on someone's resume, you know they've done a least a little bit of collaborative work and building an app to someone else's specs.
I spent years struggling to write quality code, and I couldn't figure out why: I knew syntax inside and out, but still struggled with tasks my peers could do while watching YouTube videos and chatting with their friends.
It's like I could spell but didn't know the first thing about grammar.
I eventually went back and took some classes online to fill in the gaps, but I feel like I would be much further in my career had I just went ahead and done it in the first place.
That's a great analogy and I think often missed by many people. Spelling and arithmetic seem obvious as limitations in more complex fields (where communication and mathematics are involved). No one would say: "I can spell 'journalist' so I should be the editor-in-chief of the Washington Post." or "I can add 2 and 2 so you should hire me as an electrical engineer." (certainly not once they've grown up a bit, at least)
You have to advance to grammar, geometry, algebra, and more to find success in those fields.
But with programming, many people seem to stop at the point where they can program, and don't realize how much more there is to it (or not until much later). Programming is just the spelling/arithmetic level. Being able to design systems, select between different data structures and algorithms, understanding what a state machine is and how to structure your program using that concept, etc. These are the algebra and calculus of the field.
Love this analogy for programming...
It also reminds me that English and Public Speaking are very important skills I picked up in college which are easily neglected in a DIY program.
I've seen self taught students really struggle with introductory courses because they assumed they would breeze through fundamentals because they already knew how to build web-apps.
Really, 90% of the advanced mathematics I do is linear algebra, and I don't have a code-monkey job. Linear algebra has so much mathmetics bang for very little complication bucks.
Those subjects are the foundations on which practical and applies computer science and programming are built. Not having a thorough understanding of them is like building a house without an understanding of its foundation. Don't be surprised if your magnificent Swamp Castle burns down, falls over, then sinks into the swamp if you don't know about foundations.
Once you know a lot of these algorithms, it becomes painfully obvious which developers haven't learned about them. For instance, I know someone who works as a driver for UPS and they have a piece of software that automatically plans a route to each delivery and pickup. There's a lot of variables such as certain packages that have to be delivered before noon, business deliveries that have to be done before the business closes, etc. The software they are currently using is not efficient at all. It will have them deliver to a building, drive down the street and deliver somewhere else, and then drive back and deliver to the building next to the first one. It's so painful to hear about this software because I've solved a very similar problem in under an hour at a programming competition using Dijkstra's Algorithm and Traveling Salesperson. Obviously, my solution didn't have nearly the same level of variables, nor was it held to "enterprise" standards. However, considering the level of inefficiency the software constantly produces, I'm convinced that it isn't using any standard algorithms but instead some hacked-together solution from a programmer who hadn't learned the established way to solve similar problems.
Though there is some benefit to having a business degree as well so it's not all bad.
I've recently finished a well-known online course, with almost maximum grade, and even if the quality of the course is good, there is definitely no comparison with a real-world college course.
Due to the nature of online courses, grades are automated, and definitely don't match the dynamics of a real-world course (eg. better solutions = better grades). It's also practically impossible not to pass.
Cheating is also a factor. I joined purely for learning, but I don't doubt that there is plenty of people taking shortcuts. I've witnessed somebody blatantly cheating exams without even recognizing it was cheating, and against the honor code.
Maybe, in a future where people must take the exams in qualified centers, with the papers/projects reviewed by professors, the points above would change - but the price would necessarily rise considerably.
Other aspects: as somebody wrote, top universitory teacher doesn't imply best teacher; forums are polluted with garbage/trivial questions due to mass (free) enrollment, causing valid questions to drown in the noise; face time, community, college life, structure are all one big package, which I think it's fundamental for the average young adult.
Finally, I'm very skeptical about the impressiveness of the DIY degree. I have the suspicion that only a few "learning freaks" (I don't mean it in a derogative way) would end up taking it - motivated people who decided not to take a degree [in their past], within constraints of limited time, would likely choose different, but still valid, learning routes.
All in all, I'm actually a big fan of MOOCs (loved the course I took), but they shouldn't be compared to traditional education.
The difference I mention between real-world and MOOC is that in the former, [I suppose that] the teacher(s) will give better grades to students who come up with better chip designs.
I paid the course for financial support, and challenge, but it can be finished identically without certification; as I wrote, specifically for this course, grades are practically - but not theoretically - binary: the projects work, or not.
Can we point to any published stats about tech companies, in the US or elsewhere, hiring a higher fraction of engineering candidates with less than a bachelor's degree?
Similarly, can we point to any published stats illustrating the growing ability of startup founders without an exclusive education background to get funding? (No, "dropped out of Stanford to go work with Joe Lonsdale" doesn't count.)
To be fair I'd note a number of people I got to know did have degrees in other STEM fields.
My only run in with a similar issue was not being suitable to be presented as CTO for one company because it was STEM related and everyone else has PHDs.
It also helps to not reinvent the wheel : many problems were analytically solved long before most of us were born.
My advice for a career in computing is "either become world expert in some durable technology with a high barrier to entry, or else find a secondary specialty" (math, finance/econ, natural sciences, an engineering discipline, pre-law are all good choices).
My advice for a career doing generic undifferentiated software development is "don't", or at least "move into management during your 30s".
In fact I recently hired a dev with an associate's degree after interviewing many people with much better educations, but his chances on getting the job were very small. My inbox was flooded with resumes and filtering out weak educations was an efficient use of time.
Seriously, you will have a much much harder time making a living with a DIY degree.
Over time you will have a harder time finding work, you'll get lower salary offers, and you'll be passed over promotion.
If that's the credential you have, it'll have to do. But if you're choosing whether to pursue a full-blown degree, the answer is clear. Yes, absolutely, yes.
Does this hold even after you get a few years of work under your belt?
In my experience, there are some good people with CS degrees, but there are a _ton_ of duds. If I had to choose between someone who's parents paid for them to get a CS degree and someone motivated and interested enough to teach themselves CS and math in their free time, I'd 100% be more interested in the latter.
MS CS
BS CS
BS not CS
Bootcamp, associate's degree, liberal arts <-- weak
It's true that motivated, passionate and smart are the most important things, but there are plenty of people who are those and have a degree.
I do agree with the idea that you might as well try it now. I wouldn’t recommend someone pay full tuition for an online class that was created in a hurry by a professor that didn’t want to do an online class. But you have to be prepared for the idea that you won’t like a DIY degree and will end up starting a regular degree next year. If you’re smart about it, you’ll make sure the classes you take note can transfer the credits- these types of courses are more expensive (hurting some of the DIY value proposition) but it’s a good insurance policy against having to start at square one next year.
A lot of countries have immigration policies that still require degrees for visas. Given how global the world is becoming, it's important to have the option to be geographically flexible.
I will add that so is the job pipeline. I think having companies come, sign up dozens of students and recruit wholesale completely changes your odds of ending up at one of the top companies (for whatever your definition of top is: whether you want to write algos at a hedge fund, perform tech diligence for a consulting firm, work at the big tech companies, etc)
That being said, it's almost certainly easier to land an interview in the first place with a good degree. I'm in Atlanta, and every company I've worked for here has almost automatically granted an interview to anyone with a degree from Georgia Tech.
Once you're in and do good work, you should be fine for a good career.
These things are definitely good for knowledge but for employment (Local or International) - Degree - that too from a prestigious Institute (as most Job requirements mention) is very much required!
I suspect the diploma is used as a filter for the large amount of applications companies receive.
[0] https://restofworld.org/2020/india-engineering-degree/
[1] https://economictimes.indiatimes.com/jobs/only-6-of-those-pa...
But let’s just say the best lecturers really are at these places and you can watch their lectures via a MOOC. Remember the M stands for “Massive”. How much time do you think the average student gets to spend 1:1 with the instructor? The best students that graduate from from my department are those who seek me individually for 1:1 help, who put in extra effort over summers and the semester to join my or other research projects, and who stand out by becoming involved with department activities. They tend to get glowing recommendations, and connections to startups and industry partners with which t he faculty member has contacts.
There are a number of projects being worked on in my department with inroads to Facebook, Microsoft, Google, etc. When I pass a recommendation over for a student I know well, they get seriously considered. Is there an equivalent benefit for a MOOC?
From my personal experience in academia, both as a student and as a lecturer I honestly think most students don't really benefit from being present in person.
Also, about the inroads to places like FAANG, almost all of those companies require you to go through the entire interview process even if someone recommends you and landing interviews isn't that hard. I actually know plenty of people who self-studied their way into those companies without degrees.
If you do manage to stick to the program and go through everything on your own (which requires an incredible amouunt of discipline) in my opinion the biggest issue you would face right now is bias and stigma.
Courses in sciences are often split between lectures, that might be "amphitheater style" for introductory courses (think 8.01 or most introduction to programming), lab work and recitations that are typically done in much smaller groups with a T.A to work on problem sets. MOOCs have no obvious alternative to the last two. In my experience it's relatively easy to work through a course by skipping lectures and reading from the textbook than to skip recitations and lab work.
That and group projects, that are often a requirement to graduate, makes MOOC-only a tough sell for me.
You could do that on VHS tape if you wanted to.
The hard part is problem sets, recitations, grading, peers, etc. And MOOCs do very little there. Automated grading is better with programming than it is wirth other things. But it's still just looking at the result.
CS should be a trade school because programming is an unlicensed skill like carpentry or plumbing opposed to a licensed profession like medicine, law, engineering, or even truck driving. You can teach yourself programming and be just as employable as somebody with a CS degree, so why not get a real education while also teaching yourself the necessary technical skills. Why spend that kind money on something you can teach yourself? I don’t have a CS degree and it hasn’t prevented me from getting any job or from being a senior developer.
Definitely made me a better programmer (even though I've never actually used stuff like dynamic programming in the "real world").
After 3 years I've finally convinced my employer to drop the "bachelors degree" requirement from all our job ads but I can't see it making any difference. The way people are hired is totally broken and being able to flash your credentials hugely increases the salaries of most people.
If you don't agree look up how much actuaries get paid. The maths isn't all that hard and 5/7 of the exams to qualify as an associate are just maths and stats.
Has anything actually changes with the pool of candidates and hires the company is making?
It's highly unusual (except maybe at Google) to compare how well someone is doing in a job to how well they were thought they would do that job.
The idiosyncratic nuances of most jobs is hugely underestimated (in the sense that the more specific the prior experience the more it should be discounted).
My suspicion is that we'd all do a lot better if we took all the candidates that applied that we thought "would do" and then drew lots.
We'd probably do even better if we agreed "no fault" severance packages in advance that could be triggered by either party.
Heck, even if you are 18 you could learn to code in a year or two and then be earning good money by the time you are 20.
I've published over 90 success stories of devs without CS degrees over at www.nocsdegree.com if you wanna take a look
Luckily, I failed my A levels so was spared the trauma of studying Biochemistry for 3 years. I finally got my degree with the Open University - an 'Open' degree[1] which allowed me to pick and choose my education from a wide variety of subjects[2]. The OU have been practicing distance learning since they started in 1969[3] - I have fond memories of watching their broadcasts on BBC2 when all the other channels were closed down for the night.
[1] - What is an open degree - http://www.open.ac.uk/courses/combined-studies/degrees/open-...
[2] - In the end I settled for equal measures of computer science and creative writing - perfect for writing job specs.
[3] - Wikipedia - https://en.wikipedia.org/wiki/Open_University
It is somewhat on hiatus right now. Goal was first eliminate most of the searching. Here is a path laid out, with a some choices but still don't have to think how to replicate a degree, its done for you.
It needs major update, sorry for broken links.
If I were to mentor someone entering college right now (or lets say in 2 years when the pandemic is over), and they knew they wanted to become a software engineer, I’d recommend only taking maybe 5 CS courses at most, and taking a number of courses on art/design, psychology, statistics/data analysis, creative writing, anthropology, and communications.
They may later decide they want to be in a leadership position, so having a background that would allow them to be able to talk to product leaders, designers, marketers, etc. would be valuable.
Getting a brand name CS degree definitely has its advantages, allowing you easier access to even higher-paying engineering jobs, and can really help build the foundation for you to become a much better engineer. But it's really just a better starting point (assuming financial aid), and your path from there is much more dependent on how you invest in your own career.
It's pretty depressing once you get a few resumes that all have the same portfolio, because the whole bootcamp was about building their portfolio website.
I'm not convinced that bootcamp grads are particularly worse at CS fundamentals than many college grads. If you care, you'll put in the time to learn using the infinite amount of free classes and resources out there. If you don't, being forced to take the minimum number of core classes and get passing grades in them doesn't change much about how you think and approach problems.
* Skip the degree. It's expensive and you'll never recoup the cost.
* Choose a sub-field carefully.
1. Avoid dead-end niches. An expert in the Linux kernel or Rust compiler is just that; there's nowhere to go from there.
2. The same goes for embedded systems and the like. Nobody cares if someone knows everything there is to know about car engine management systems.
3. Check the job openings. Some things are hotter than others.
4. But don't count them too much. Five or ten years ago, being able to spell "Hadoop" or "TensorFlow" meant that everything that came out of your pie-hole was gospel. Now, not so much. Look for things that are hot, but relatively unknown.
5. Bonus: UI/UX is a dandy choice; everyone needs them and the framework developers have gotten the formula down: change things often and deprecate fast.
* Remember, it's a career, not a job.
1. Always be hunting the next job.
2. Never stay at one place too long. If you can't change projects every 6-8 months, make sure you change jobs every 12-18 months.
* Network, network, network. No, not that HTTPS/BGP/OSPF crap. See point A1. Remember, who you know trumps what you know every time.
...how do the suggestions you made factor into "building a career"? TBH your suggestions sound more like "remember it's just a job" advice than "how to build a meaningful and high-impact career" advice.
I don't see how you either reach "principal" or reach executive positions by hopping through commodity IC roles in "whatever's hot".
Counterpoints: the vast majority of people in the industry will have technical degrees. A degree makes getting that first job much, much easier. In fact going to the right schools with good internship connections can be the easiest and most direct way to get a job at FAANG. Finally college can be an enriching and fun experience. If you are already going to make enough of money to live/retire well, you may consider it well worth it to trade 4 extra years of career/income for the social/academic experience of college.
BTW I majored in history before getting a job in the industry
- Linux kernel = dead end
- Embedded = dead end
- Front End/UI/UX = great opportunities
I don't think you could be wronger. In a few years the no-code movement is going to completely demolish front-end development but there's still going to be a lot of high paying jobs for embedded linux experts. You'd be surprised how few people there are that can even plug in a raspberry pi.On the other hand, that's a collection of suggestions I've seen often here on HN.
If your only interest is studying computer science, even at the expense of all the privileges university education incidentally provides, then I don't see any downsides.
That better be a hell of a sequence of projects.
How is it different from just "learning online" ?
If you're really good hacker you'll find a lucrative job, as long as you have the basic soft skills to work with people, even without a degree. If you're just an average coder you're not going to get a job that pays well without one, and if you do get a job it will not pay as well, and you will be the first on the chopping block.
I have managed to secure some pretty lucrative and rewarding jobs, but I went back to school at a brick and mortar anyway, because I want the education and I want to do academic research. I'm currently working full time while I attend part time and also do research, so it's working out.
For the DIY degree: I can promise you that even if you do enroll at a 4-year, you're going to end up doing this DIY degree in your spare time. You're gonna sign up for courses that make you facepalm and wish you were just reading Ed-X. I studied for a lot of my classes by watching the OCW lectures on the same material.
Now, with school going online, you're also gonna find some schools don't have high quality lectures on video. Some professors are passionate and do... one of mine has a fully loaded youtube channel. Others don't even get the basic mechanics right, and you can't hear them during the videos because they don't have a good microphone.
The difference is the 4-year gives you connections to research, academia, and industry, as long as you do it right. You show up and talk to the professors after class and during office hours, be a good student, and ask good questions. You can even do this with online courses: go to the office hours on zoom. You can't do that with MOOCs as well, the professor probably isn't going to have that much time for you (it is called massive for a reason.)
If you are the rare person who actually does what I'll call "homeschool college" and finish an entire degree worth of MOOCs, more power to you. If you have the gall to put it on your resume, you already know you're eccentric. If the stars align and some weirdo hires you for it, congratulations, you won. You are in the statistically improbable category and for the amount of time you're going to spend on this DIY journey, you could have popped by the local university and met a lot of interesting people while you did this.
IMHO, you are best off if you do all of the following (any order is fine)
* become a really good programmer who can build incredible things and make awesome contributions on teams, writing great docs, help and lead others
* get a 4 year degree and do it right: don't go there to check a box or go to a diploma mill, meet the professors and network, find something you are truly interested in
* never stop learning, reading, working on projects, or perusing MOOCs etc
There shouldn't be a significant obstacle to doing all 3 in my experience. I started in a a really deep rut and if you manage to bang out 1/3 the other 2 start to become easier. For example, you can find yourself in a career that pays for school, or a school that helps you find a career. The possibilities are endless.
The academic environment of university is extremely bland and uninteresting to me.
Especially the way you're tested. It doesn't promote understanding, it promotes memorization.
What you're describing with being tested and memorization sounds mostly like the first 2 years of college to me. What lies at the end of the road is literally the total sum of human knowledge and the advancement of it. I think 2 years of drudgery is a small price to pay for that.
If I had to recommend online courses, here are the ones I would recommend. Unfortunately, one does not get access to exercises and folks who are willing to verify your work. Math.stackexchange is unfortunately far more active than cstheory.stackexchange. I don't really know of an effective way to "bootstrap" this, except for implementing a lot of the things that show up in computer science.
I'm collecting links of courses that have videos, lecture notes, and exercises, which I would be happy to learn from [or have learnt from in the past].
Theory courses that are must-know:
- Linear algebra: https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra...
- Basic Combinatorics: https://www.coursera.org/learn/combinatorics#syllabus
- Introduction to Algorithms by Erik Demaine: http://courses.csail.mit.edu/6.006/fall11/
- OR, Introduction to Algorithms by Robert Sedgewick: https://www.extension.harvard.edu/open-learning-initiative/a...
- Complexity theory/theory of computation: https://web.cs.ucdavis.edu/~rogaway/classes/120/spring14/
- Structure and interpretation of computer programs: https://ocw.mit.edu/courses/electrical-engineering-and-compu...
Computer engineering courses that are must-know: I do not immediate know of good online courses, so I list the topics below
- Operating systems:
- Networks
- Computer graphics [Is a great applied course to see linear algebra in action]
- Distributed systems
- Compilers
- """Machine learning""": Scarce quotes since there's a divide between old-school machine learning and newfangled deep learning. Is useful to know ideas from both.
Advanced good-to-haves:
- Advanced Data structures: http://courses.csail.mit.edu/6.851/fall17/
- Graph theory: https://www.coursera.org/learn/graphs#syllabus
- Abstract Algebra: https://www.extension.harvard.edu/open-learning-initiative/a...
- Nand2Tetris, where one builds a computer "from scratch": https://www.nand2tetris.org/software
- As much math, physics, and computer science as can be learnt!
To me, combinatorics, probability and statistics are much more used day to day.
In college, we were told to spend at least three hours studying for every hour in the class. So I am not sure what people mean when they talk about "DIY degree". Over 75% of a standard BSCS degree is already "DIY". What we get in the other 25% is lectures, office hours, discussions with the professor before and after class, discussions with other classmates, access to a library with many volumes on math and computer science, access to computer labs. Also verification that someone had learned these things. We can look at their GPA and transcript as a loose indicator.
I have worked with programmers who went to boot camps, did "DIY degrees" etc. None of them would be able to tell me what a pushdown automata was, or how to deal with critical sections, or had ever written programs in Lisp, or could derive 8x, and so forth. I am sure there are a few out there who could, and there are certainly a number of people who somehow got a BSCS and who don't know these things. Nonetheless, people without a degree usually don't learn about the pumping lemma, or
> you’ll end up with a very impressive “DIY degree”. As a hiring manager, if I saw this on a resume (I haven’t yet) - I would be very impressed.
Well, with the US unemployment rate, this is a great time to test this hypothesis. From personal knowledge, only one of the college graduates in IT I worked with is unemployed (he has a specialized role, does not live in a major tech hub, and his job search has locally been in his local area), several of the boot camp grads I worked with are not working in IT at the moment. In times like these, when you're sending your resume in to the position alongside one or two dozen people who have a degree, it is better to have a degree.
This is the biggest one.
After dropping out of high school, I never attended another school. The amount of socialization and long-lasting human connections that I missed out on is incalculable. Not to mention exposure to different subject matter. Macintosh had great fonts because Jobs took a calligraphy course on a whim. You might discover a hidden passion for entomological forensics. You might join a friend for a gap year trip, meet an amazing person, get married, move to Spain, get divorced 3 years later, become an accountant. Or experience the rush of unity and purpose from joining your classmates at a protest march. Or attend your dorm mate's band in some dinky basement and fall in love with beatboxing to electro swing. Screw education; go to college to wade hip deep into new experiences.
$40K to be totally immersed in innumerabile possibilities that will effect the next 80 years of your life? Compared to ~$15K for an economy car, or ~$250K for a house? Sounds worth it to me.
...that said, if you have economic hardships, self-study is completely feasible, and you can have a great career with no degree. It will still take you years to really get going, but it can work.
Regardless of your major, a college education will now cost over $100,000. That is at least $25,000 per year.
Unless you get grants, scholarships, or some financial aid, then the brunt of this is going to be paid in loans. Loans that cannot be discharged in bankruptcy.
Now, do you want a 19 year old to be making a life decision to go into such a heavy debt burden, of which they cannot escape?
Some low level business jobs earns less than $50,000, but yet, these jobs still require some college degree. Simply because the company is lazy, and wants the best worker they can get, without having to actually pay for it.
The low earnings, the tax rate, and the cost of living to pay for an apartment to live near that job, makes the numbers illogical.
I think America, and the world, would be better served, if we went towards some kinds of journeyman and tradecraft system instead. Businesses can instead hire people with a minimum of a high school education, and train them for the jobs. Those businesses can apply for some kind of federal or state assistance if they need to, to get credit for doing this.
Yes, if you include room and board into the equation it gets around $100k, but you don't get to not pay room and board by not going to university.
$65k is easily worth it if it increases your payback $10k/year over a 40 year career.
I agree that an apprentice system would be nice but having participated in an "apprentice like" training system for technical consultants it is MUCH harder to create such programs than you think.
In our case we are training people who already have college degrees and some programming experience. The rule of thumb is that we can't get them consistently billable for at least 4 months after hiring, they'll add overhead to projects for a year, and they won't pay back the cost of training them for at least 2 years. And that is with a well-structured and experienced program. How many businesses are willing to to deal with unproductive employees that long, even if they are potentially subsidized?
Secondly, college is free for a lot of people, as in some states anyone making less than $20k/yr goes to a state university for free. This isn't incredibly obvious, and some grants received may be relatively unknown, such as a grant from a college that's not on their website of $7k a year for low-income students.
You also can't generalize everyone's feelings. Some people aren't compatible with trades.
Saw a guy I knew in school post a pic where there were two people. On the left was a person who was clearly supposed to represent some sort of business man, perhaps and executive. The image claimed this man made made $120k per years and had $100k in student debt. On the right was a linemen. The image claimed there made $130k a year with 0 debt.
The average salary for a lineman? Decent, but definitely nowhere near $130k. Both BLS and Glassdoor have it around $65k. There seems to be some myth going around that certain trades are an instant path ot size figures. Sure, after many many years of experience, in a specialized trade and/or in an expensive state with strong union protections you can maybe make six figures, but most trade apprenticeships I've seen dont pay much better than entry level office admin jobs I see.