Computer Science Degree or Self Learn?

Non-investing personal finance issues including insurance, credit, real estate, taxes, employment and legal issues such as trusts and wills
Topic Author
alex123711
Posts: 276
Joined: Sun May 20, 2018 5:01 am

Computer Science Degree or Self Learn?

Post by alex123711 »

Have read conflicting opinions on whether a degree in computer science is worthwhile or not, some say it's mostly outdated and a waste of time as employers only care about projects/ experience others say that is a pipe dream and you won't get a foot in the door without at least a degree. Makes it difficult to make a decision either way. What is the best option?
Buffetologist
Posts: 374
Joined: Sun Aug 22, 2010 8:58 am

Re: Computer Science Degree or Self Learn?

Post by Buffetologist »

You can teach yourself to code, but a computer science degree will teach you how to think more abstractly and it's that abstract thinking that allows you to transcend technological evolution over a long career and makes you more valuable.
Dockside_Dreaming
Posts: 17
Joined: Mon Feb 04, 2019 8:16 am

Re: Computer Science Degree or Self Learn?

Post by Dockside_Dreaming »

A college degree also helps check the boxes. At 25 years old I purchased my first business with only one year of unrelated work experience using owner financing and an SBA loan. I have always felt the previous owner and bank wouldn't have loaned me the money at such a young age without much work experience and without the undergrad and graduate degree.
damnford
Posts: 10
Joined: Mon Mar 28, 2011 2:25 pm
Location: Seattle, WA

Re: Computer Science Degree or Self Learn?

Post by damnford »

Are you talking about someone (yourself?) who already has a 4-year college degree and wants to pivot into a software role? I would say a CS degree can still be helpful but is definitely not necessary if you can learn some of the basics yourself and then get your foot into the door in a place where you can ramp up and learn from other software devs. Bootcamps can also be helpful here (just be aware that some can be expensive and not that valuable -- look for ones with partnerships with established companies where you basically "graduate" into an internship).

If you don't already have a degree, then yes I would say it is definitely worthwhile and probably one of the best ROIs you can get with a university degree.
alex_686
Posts: 7466
Joined: Mon Feb 09, 2015 2:39 pm

Re: Computer Science Degree or Self Learn?

Post by alex_686 »

I have both formal training and have been self taught. I am one of the most technical people in my non-technical team. I have work with both types.

I have worked with many brilliant self taught people who were great hackers. I almost always prefer the code of the second raters who have formal training. The problem with being self taught is that you tend to neglect the fundamentals. Hackers can build code fast that does the job. But it does not scale and is hard to maintain.

Not saying you have to have a CS degree. The 2 best programers that I know of had a music and philosophy degree. But they did have formal training in CS, math, and logic.
Last edited by alex_686 on Fri Oct 30, 2020 6:05 am, edited 1 time in total.
Former brokerage operations & mutual fund accountant. I hate risk, which is why I study and embrace it.
Valuethinker
Posts: 41718
Joined: Fri May 11, 2007 11:07 am

Re: Computer Science Degree or Self Learn?

Post by Valuethinker »

alex123711 wrote: Fri Oct 30, 2020 4:58 am Have read conflicting opinions on whether a degree in computer science is worthwhile or not, some say it's mostly outdated and a waste of time as employers only care about projects/ experience others say that is a pipe dream and you won't get a foot in the door without at least a degree. Makes it difficult to make a decision either way. What is the best option?
Yes it is very valuable in terms of structuring your thinking and how you attack problems. What sn algorithm is and how you implement them in software and hardware.

In the 1980s when I got to industry I found them to be at least 10 years behind academic practice.

When people interview you they will want, mostly, specific coding skills w particular languages. Examples of shareware you have written etc.

If you are 18 and seeking an undergraduate major CS is a good possible choice although Elec Eng would give you more options.

If you are 30 and seeking a career change into programming I would suggest there are other, quicker ways to do that.
Valuethinker
Posts: 41718
Joined: Fri May 11, 2007 11:07 am

Re: Computer Science Degree or Self Learn?

Post by Valuethinker »

alex_686 wrote: Fri Oct 30, 2020 5:52 am I have both formal training and have been self taught. I am one of the most technical people in my non-technical technical team. I have work with both types.

I have worked with many brilliant self taught people who were great hackers. I almost always prefer the code of the second raters. The problem with being self taught is that you tend to neglect the fundamentals. Hackers can build code fast that does the job. But it does not scale and us hard to maintain.

Not saying you have to have a CS degree. The 2 best programers that I know of had a music and philosophy degree. But they did have formal training in CS, math, and logic.
Pretty much agree w all of the above.

Talented self taught hackers frequently write code which is just not maintainable.
IowaFarmBoy
Posts: 877
Joined: Fri Jan 22, 2010 8:19 am

Re: Computer Science Degree or Self Learn?

Post by IowaFarmBoy »

At the megacorp I worked at, it wouldn't have happened. Actually, I'll walk that back a bit. Back around y2k time, they partnered with a local university to sponsor a re-tooling program where they took people with non-CS degrees and aptitude and ran them through about a 3 month training program to get them functional in COBOL. We picked up some really good people doing this who had backgrounds like math education, economics with a lot of math, etc. But we aren't doing this program any more.

My SIL works for an internet company and they will hire grads from a boot camp. Not sure if they would hire someone that is totally self-taught or not.

A degree of some type is helpful. Completion of some type of training (like a boot camp), an associates from a community college or getting certifications from Microsoft would be good- anything that can objectively establish what you have done. I think some people also build a portfolio working on open source code and projects that they make available through git to demonstrate competency.

So there are a lot of factors. The degree certainly makes the process smoother. A lot depends on your lifestage and situation. If you are 18, I would get the degree. If you are 40, have another degree and are re-tooling, I might look at the other options.
fwellimort
Posts: 463
Joined: Tue Feb 12, 2019 9:41 am

Re: Computer Science Degree or Self Learn?

Post by fwellimort »

So the markets changed quite a bit at entry (NOT experienced) level recently.

Since around a year ago, there's been somewhat of a glut of CS majors out of college (and currently this pandemic is not helping any fields).

I think the sentiments found in r/cscareerquestions from 3 years ago and today have changed quite dramatically.

Just 3 years ago, it really did seem a bootcamp graduate could get jobs anywhere. Today, if you look at the same subreddit, you will notice that many CS graduates are unable to find jobs and giving up hope on breaking in into the field. Also, entry level developers have a really high bar today (relative to the past) when it comes to coding interviews.
I think Facebook in its phone screen sometimes expects 2 Leetcode Hards within 35 minutes now. The company I work at gave 3 LC medium (all around similar topic) + object oriented design in 50 minutes to a recent MIT grad. Meanwhile, for senior developers, the company I work at gives a LC easy or an easy medium (sometimes just ignores all together) and care more about system design and work experience.

It does seem that there has been a 'gold rush' effect in CS and now the entry market has more new grads than the market can absorb.

On the other hand, for experienced developers, jobs are still easy to find. So I assume many bogleheaders here will be unable to relate to the current new grads.

The craze for 'learn to code' in the recent years seem to finally be taking an effect. Everyone seems to be getting a major or at least a minor in CS now. The constant ads, government endorsement, and the effects of automation has convinced the younger generation that software will replace almost all jobs: no job market is infinite in supply and entry level developers are generally cost negatives for a company.

I would argue if you are planning to break into this field without relevant experience today, you probably should be getting a CS degree. For instance, unlike two years ago, the company I work for in SF office now gets too many EECS graduates from schools like Berkeley and almost all of those resumes gets 'rejected' even before the phone screening.
If you have software experience (or have engineering/math/physics/statistics background with a few years of experience in a similar industry), I don't think a CS degree might be as useful for job searches. At that point, I think it's more for an intellectual pursuit than for a career move. Also, if you already have an undergrad in a related field, it's probably more cost efficient to get a master's and graduate within two years than go through undergrad again.

If you just want to learn in your free time (out of curiousity) for the sake of learning, then I recommend using the Internet as a resource. There's some really good free online courses available today like Princeton's Algorithms and the like. The CS degree is more of a piece of paper to get interviews for new grads than anything else: e.g. just a 'checkbox' in the industry to get an interview.
Last edited by fwellimort on Fri Oct 30, 2020 6:53 am, edited 5 times in total.
jzachary
Posts: 27
Joined: Mon May 13, 2013 8:41 pm

Re: Computer Science Degree or Self Learn?

Post by jzachary »

If you want to be a programmer, then get some O'Reilly books, a GitHub account, teach yourself Python and Golang, and create or contribute to some projects. Knowledge of Linux, networking, and commonly used databases is a bonus.

If you want to learn the fundamentals of computing, including computability, algorithm analysis, data structures (beyond arrays, linked lists, and hash maps), information theory, and why all of those things that programmers do work, then get a degree in computer science.

You should expect to paid less as a self-taught programmer compared to others with CS degrees, although there certainly are exceptions out there.
Jack FFR1846
Posts: 13058
Joined: Tue Dec 31, 2013 7:05 am
Location: 26 miles, 385 yards west of Copley Square

Re: Computer Science Degree or Self Learn?

Post by Jack FFR1846 »

I have a cousin who's self taught with nothing but high school and has been running his own computer "help" company for decades. You need to set up an office computer system, that's what he does. But if he were to interview to work for someone else, the HR department is going to shred his resume moments after opening the envelope.
Bogle: Smart Beta is stupid
valleyrock
Posts: 199
Joined: Sun Aug 12, 2018 7:12 am

Re: Computer Science Degree or Self Learn?

Post by valleyrock »

A couple of points/ideas:

--Sometimes taking a number of the right courses might be sufficient to break into a field. For example, there might be 10 courses in computer science that would do the trick.

Analogously, there are master's degrees for people with diverse backgrounds. The first degrees in computer science were master's degree, and the bachelor's degrees to get into those programs included, and probably still do, humanities degrees.

Of course, some basic background in math and science would help depending on the type of job. A degree would help there. And if a person can learn to write, that's always an asset. College can help there, in coursework or at the school's writing center.

--I wonder about online degrees in computer science. Some are probably better than others, but schools are going online big-time now, due to the crisis. It might beat watching Netflix and gaming all day, or even nights and weekends.

--Then there are the MBA types who majored in political science or English, get an MBA and learn how to make spreadsheets and do business case studies, but make enough connections to get jobs where they view coders are cogs in the machine. On the other hand, startups often are driven by coders.

--I agree with those who say it's important to learn the fundamentals first, so for a young person, get a degree. Then you'll have done something, and, as one view has it, a degree is something they can't take away from you.

--Mid-career or for a career change, invest some time in tracking down people who already have the job you might want to have in the future, and ask them how they got there. The answers can be very illuminating. That's good advice for a young person, too, but many young people don't have enough experience to to really project ahead very much.
User avatar
AerialWombat
Posts: 1976
Joined: Tue May 29, 2018 1:07 pm
Location: Cash Canyon / Cashville

Re: Computer Science Degree or Self Learn?

Post by AerialWombat »

I’m the non-technical co-founder of a tiny tech startup. All three of our software engineers lack CS degrees. We hired them out of a coding boot camp program. All three were changing careers.

My sample size is insignificant, but we couldn’t be happier with the team we have and the skills they bring to the table.
azanon
Posts: 2986
Joined: Mon Nov 07, 2011 10:34 am

Re: Computer Science Degree or Self Learn?

Post by azanon »

The most important part of a Computer Science Degree, is the college degree part. The chosen major is ancillary by comparison to the general value of a college degree.
flyingaway
Posts: 3167
Joined: Fri Jan 17, 2014 10:19 am

Re: Computer Science Degree or Self Learn?

Post by flyingaway »

If you want to start your own business like Bill Gates or Mark Zuckerberg, you don't need a computer science degree. If you want to be hired to work for others, it is better to have a formal degree.
hicabob
Posts: 3225
Joined: Fri May 27, 2011 5:35 pm
Location: cruz

Re: Computer Science Degree or Self Learn?

Post by hicabob »

Depends on the job you would be going after. For a couple simple examples .... being an IT weenie for the local government a CS degree is probably not important. Developing algorithms for Tesla doing image recognition/navigation/etc a CS degree or other technical degree would almost certainly be expected.
Xrayman69
Posts: 689
Joined: Fri Jun 01, 2018 8:52 pm

Re: Computer Science Degree or Self Learn?

Post by Xrayman69 »

Both. Degree and self learn. This is the same for ANY profession.
newguy123
Posts: 100
Joined: Tue Oct 13, 2020 8:44 am

Re: Computer Science Degree or Self Learn?

Post by newguy123 »

alex_686 wrote: Fri Oct 30, 2020 5:52 am I have both formal training and have been self taught. I am one of the most technical people in my non-technical team. I have work with both types.

I have worked with many brilliant self taught people who were great hackers. I almost always prefer the code of the second raters who have formal training. The problem with being self taught is that you tend to neglect the fundamentals. Hackers can build code fast that does the job. But it does not scale and is hard to maintain.

Not saying you have to have a CS degree. The 2 best programers that I know of had a music and philosophy degree. But they did have formal training in CS, math, and logic.

This is true, I had 1 year of formal CS training before switching majors to business. After graduating I stayed with coding as my career with self taught books/online tutorials , and it was a constant struggle versus those who had formal training as the way I structured my code and how I commented my code was always frowned upon by my peers who had formal training. It is hard to learn how to do something the "standard" way after you learned to do it your own way. Scalability, readability, structure are probably the things that are most important from a CS degree which is very hard to learn on your own.

With that said I am pretty successful without a CS degree, I think it is just the job market right now as there is a huge demand for software developers.

I forgot where I read it, but a company makes on average ~250k per year from each software developer. Which makes sense from the automation stand point and how software can do what it took 10 people to do before.
Would I rather relax and make money or make money and relax ?
User avatar
TomatoTomahto
Posts: 11618
Joined: Mon Apr 11, 2011 1:48 pm

Re: Computer Science Degree or Self Learn?

Post by TomatoTomahto »

AerialWombat wrote: Fri Oct 30, 2020 8:00 am I’m the non-technical co-founder of a tiny tech startup. All three of our software engineers lack CS degrees. We hired them out of a coding boot camp program. All three were changing careers.

My sample size is insignificant, but we couldn’t be happier with the team we have and the skills they bring to the table.
I had an unrelated degree (Psychology, fwiw). I learned programming on the job, and was a very skilled code monkey. 20-30 years ago I was making between $250k-$420k per year, which was probably top 1% then. I was considered “cream of the crop.”

My recent CS grad knows stuff where I barely understand the question. Companies would hire him in a heartbeat; I don’t think I’d make it through the HR phone prescreen except for a few “legacy code” jobs.

It depends on what job you’re looking at.
I get the FI part but not the RE part of FIRE.
Theseus
Posts: 862
Joined: Sat Jan 23, 2016 9:40 am

Re: Computer Science Degree or Self Learn?

Post by Theseus »

I have two grad level degrees in this field so I can speak from experience. IMHO choice depends on your goals.

If you just want to be an application coder then probably coding school is fine. Application coding has become much simpler these days than in my days. Ton of frameworks and existing libraries of code help you build things quickly.

However if you want to build a career and progress beyond just coding then a CS degree from a good school (average to above average school) will help you propel further. The fundamentals you learn are directly applicable (and some indirectly applicable) in the jobs and will set you apart. Also the problem solving skills and thinking process you start to develop are more methodical in a CS degree.

This is from early 90s, but my degrees helped me double my salary in 3 years of starting an entry level job (at the same company) while others without a CS degree were progressing - but not at the same rate. And growth difference (not at the same rate obviously) continued on during my entire career.

I ended up starting my own firm after 12 years of corporate career. Became less hands on to mostly management as years passed. But I remember my CTO (much more intelligent than I am) did have an engineering degree from a very reputed school and an MBA from Cornell and a ton of experience in IT. But despite not having current tech skills, I was able to identify and prevent potential strategic disasters purely based on my CS degree and the job experiences the degree afforded me in those 12 years.

I am sure there are those who could achieve the same thing without a CS degree. But I doubt I could have.
nigel_ht
Posts: 1577
Joined: Tue Jan 01, 2019 10:14 am

Re: Computer Science Degree or Self Learn?

Post by nigel_ht »

alex123711 wrote: Fri Oct 30, 2020 4:58 am Have read conflicting opinions on whether a degree in computer science is worthwhile or not, some say it's mostly outdated and a waste of time as employers only care about projects/ experience others say that is a pipe dream and you won't get a foot in the door without at least a degree. Makes it difficult to make a decision either way. What is the best option?
Lol...do you know how many resumes we get? No degree is filtered out long before it gets to me to see how awesome you are.

The primary way in without a degree is to start your own company. Most of those are already badass coders who've been doing it since elementary school. They've been "self learning" for a decade already.

If you were likely to get into a software career on the "self learning" path you wouldn't need to ask this question in the first place.

If you want the least amount of cost and time investment get in a CS program at a community college while "self learning" like crazy. You're years behind the other self learners. Maybe grab a boot camp. Keep coding a lot. Do hackathons.

Get an internship after freshman year and try to parlay that into a full time job. Finish your BS in night school.

Being able to say "I'm a sophomore in computer science and here's my stuff on GitHub" is the backdoor to getting your resume on my desk to look at.

Try very hard not to have sucky grades.
dts_12
Posts: 37
Joined: Mon Feb 03, 2020 5:34 pm

Re: Computer Science Degree or Self Learn?

Post by dts_12 »

Yes its absolutely valuable. Is it the only path? Not at all. But I would go back in time and turn my CS certificate into a full blown degree in a heart beat even with 10+ years of experience now.
stoptothink
Posts: 8687
Joined: Fri Dec 31, 2010 9:53 am

Re: Computer Science Degree or Self Learn?

Post by stoptothink »

Dockside_Dreaming wrote: Fri Oct 30, 2020 5:34 am A college degree also helps check the boxes.
I'm not in the industry, so take my opinion FWIW; this is the value of the college degree in many industries. My wife is a certified information systems security professional (CISSP, she's ended up in tech sales) and she got tired of being filtered out because she didn't have that box checked. She also was told by pretty much everybody around her that her ceiling was limited without that degree, so she went back and got that box checked off and it has definitely opened doors. You can definitely self-learn (my sister, who has two totally unrelated masters degrees, is a self-taught coder who now does it for a living), but checking off that box gives you so many more options.
KlangFool
Posts: 19033
Joined: Sat Oct 11, 2008 12:35 pm

Re: Computer Science Degree or Self Learn?

Post by KlangFool »

OP,


What is your career goal? 5 years? 10 years? 20 years? 30 years?


I have a BSEE and an MSEE. I self-learned all the computer science stuff.


A technical degree laid the foundation that let you go further. There is the stuff that you need to be forced into learning in a formal degree. It would not happen in a self-learning environment. For example, 30+ years ago, I learned about the CLOS switch. Never think that it would matter. Then, it comes back again in the cloud environment.


https://www.networkworld.com/article/22 ... again.html


KlangFool
User avatar
bertilak
Posts: 8065
Joined: Tue Aug 02, 2011 5:23 pm
Location: East of the Pecos, West of the Mississippi

Re: Computer Science Degree or Self Learn?

Post by bertilak »

Buffetologist wrote: Fri Oct 30, 2020 5:15 am You can teach yourself to code, but a computer science degree will teach you how to think more abstractly and it's that abstract thinking that allows you to transcend technological evolution over a long career and makes you more valuable.
+1
May neither drought nor rain nor blizzard disturb the joy juice in your gizzard. -- Squire Omar Barker (aka S.O.B.), the Cowboy Poet
User avatar
ClevrChico
Posts: 1886
Joined: Tue Apr 03, 2012 8:24 pm

Re: Computer Science Degree or Self Learn?

Post by ClevrChico »

It depends on your goals. The last time I interviewed at Big Tech, all the interviewers had some kind of degree, with one only having a traditional CS degree. F500 Megacorps are similar. It would be an uphill climb without a degree, but not impossible.
Dottie57
Posts: 9543
Joined: Thu May 19, 2016 5:43 pm
Location: Earth Northern Hemisphere

Re: Computer Science Degree or Self Learn?

Post by Dottie57 »

Buffetologist wrote: Fri Oct 30, 2020 5:15 am You can teach yourself to code, but a computer science degree will teach you how to think more abstractly and it's that abstract thinking that allows you to transcend technological evolution over a long career and makes you more valuable.
+1
User avatar
Watty
Posts: 21353
Joined: Wed Oct 10, 2007 3:55 pm

Re: Computer Science Degree or Self Learn?

Post by Watty »

Retired software developer here with a CS degree so my perspective is a bit out of date.

Something that has not been mentioned is that there are lots of computer jobs that do not require a lot of coding and many people with CS degrees will follow career paths that cause them to do a lot less coding after they get about five years work experience. These jobs will be a lot more difficult to do without formal training.

I managed to do it but a lot of people end up having difficulty in having a 30+ career just in software development just because it can be hard to keep up with the changes.
Valuethinker wrote: Fri Oct 30, 2020 5:57 am Talented self taught hackers frequently write code which is just not maintainable.
+1000

This is especially true when it comes to database design. A company I worked for merged with another company that had a computer system with files that were designed by someone who was self taught and she had made multiple novice mistakes with file normalization that were always causing problems. Part of learning is that you will sometimes make mistakes and when you learn on the job those mistakes could end up being around a long time.

I worked in corporate IT and there were exceptions but most systems were planned to last at least 10 to 15 years and change was slow unless there is a big payback if you replaced it.

At least in a corporate environment it is easy to underestimate just how long code may be used. I know that some code that I wrote over 30 years ago is still being used just because it is rock solid and it still gets the job done. The company already has newer versions of software that does the same thing but they have not installed it everywhere yet. The problem is that they have lots of facilities and it costs about a quarter of a million dollars to convert a facility to use the new software so they will not convert a facility until there is a clear need for the additional features in the newer software. It is slowly being replaced but I suspect it may hit 40 years before it is totally replaced which is sort of scary since it was originally expected to be used for about 10 years.
Last edited by Watty on Fri Oct 30, 2020 11:05 am, edited 1 time in total.
KyleAAA
Posts: 8699
Joined: Wed Jul 01, 2009 5:35 pm
Contact:

Re: Computer Science Degree or Self Learn?

Post by KyleAAA »

I'm an employer. Get the degree. Employers don't care about projects. The biggest piece of bad advice floating around is that you should spend time working on personal projects for your personal portfolio. Don't bother. Sure, work on projects if they are interesting to you or you learn something, but they will not be valuable for getting a job. The people repeating that advice are usually other people trying to break into the industry, not people who HAVE become successful in the industry. If you have the option of getting a degree, that is the right path 100% of the time.
Last edited by KyleAAA on Fri Oct 30, 2020 10:21 am, edited 1 time in total.
random_walker_77
Posts: 1282
Joined: Tue May 21, 2013 8:49 pm

Re: Computer Science Degree or Self Learn?

Post by random_walker_77 »

Make sure you understand that there's a difference between computer science and coding. It's somewhat analogous to the difference between a "maker" and a mechanical engineer.

Self-learning CS is similar to self-learning Calculus, Differential Equations, or Physics. Yes, it's possible for a smart determined individual to learn entirely from textbooks and self-study, but formal guided instruction works better and most people won't be able to do it without formal schooling.

Programming, however, is a subset of CS. As a practical skill, it's certainly an important aspect for any career utilizing a CS background, and it teaches a disciplined and structured approach that you rarely see in the self-taught.

With many CS classes online, self-learning outside of formal instruction, but utilizing lectures and highly-curated hw assignments from a respected course makes the approach much more accessible. At the beginning levels, the personal feedback (usually from TA's) that you'd receive on deficits in your code and structure are invaluable, and difficult to replicate in a self-study approach.
nullisland
Posts: 64
Joined: Fri Dec 06, 2019 12:20 pm

Re: Computer Science Degree or Self Learn?

Post by nullisland »

alex123711 wrote: Fri Oct 30, 2020 4:58 am Have read conflicting opinions on whether a degree in computer science is worthwhile or not, some say it's mostly outdated and a waste of time as employers only care about projects/ experience others say that is a pipe dream and you won't get a foot in the door without at least a degree. Makes it difficult to make a decision either way. What is the best option?
Employers really do only care about experience, a degree is something to help you get your first job before you have any. After that it's up to you to build your resume.

This is mostly about opportunity cost. If you're going to be in college anyway, then majoring in CS is a good use of your time. If the decision is between going back to school and working, though, it's a tougher call. If you can get an entry-level job without going back then you'll probably come out ahead, once you have a few years of solid experience the degree doesn't matter as much.

If you do study CS, make sure to take some non-engineering classes and learn to write. The most lucrative positions go to those who can do more than one thing well.
fwellimort wrote: Fri Oct 30, 2020 6:40 am Just 3 years ago, it really did seem a bootcamp graduate could get jobs anywhere. Today, if you look at the same subreddit, you will notice that many CS graduates are unable to find jobs and giving up hope on breaking in into the field. Also, entry level developers have a really high bar today (relative to the past) when it comes to coding interviews.
I think Facebook in its phone screen sometimes expects 2 Leetcode Hards within 35 minutes now. The company I work at gave 3 LC medium (all around similar topic) + object oriented design in 50 minutes to a recent MIT grad. Meanwhile, for senior developers, the company I work at gives a LC easy or an easy medium (sometimes just ignores all together) and care more about system design and work experience.

[...]

If you just want to learn in your free time (out of curiousity) for the sake of learning, then I recommend using the Internet as a resource. There's some really good free online courses available today like Princeton's Algorithms and the like. The CS degree is more of a piece of paper to get interviews for new grads than anything else: e.g. just a 'checkbox' in the industry to get an interview.
This tracks with my experience. I went to a bootcamp 5 years ago when I was in my 30s (with no college degree) and wanted to switch careers, I was able to get an entry-level job relatively easily and at this point I'm glad I got 4 years of actual work experience rather than 4 years of undergrad CS by going back to school. Those entry-level positions are now largely being filled by new CS grads, though.
TravelGeek
Posts: 3975
Joined: Sat Oct 25, 2014 3:23 pm

Re: Computer Science Degree or Self Learn?

Post by TravelGeek »

Jack FFR1846 wrote: Fri Oct 30, 2020 6:56 am I have a cousin who's self taught with nothing but high school and has been running his own computer "help" company for decades. You need to set up an office computer system, that's what he does. But if he were to interview to work for someone else, the HR department is going to shred his resume moments after opening the envelope.
Setting up an office computer system is not what you learn in a university computer science program.

A lot of people seem to assume that, though - they always ask me how to do XYZ in MS Office or how to fix their virus problem... (I can do that because I am a geek, but not because I have degrees in computer science)

OP - I am obviously biased, but while I know some good programmers who don't have any formal training, I would not hire most of them for any job that requires architectural work. Programmer != software engineer. My megacorp employer required an engineering degree as a minimum requirement for a software engineering role. CS or EE preferred.
rich126
Posts: 2318
Joined: Thu Mar 01, 2018 4:56 pm

Re: Computer Science Degree or Self Learn?

Post by rich126 »

I have mixed thoughts on this. Those that are self taught aren't going to be posting on this web site because they mostly would have started programming as a kid and not self taught at 20+.

My opposing comment is that I've known a few people who went back to school for a CS degree (two were nurses).

I think the self teaching is mostly for the kids.

Companies like the Googles, Facebooks, etc. it is all about proving you can do the job. Other companies and government positions it is about having credentials. I actually just had a government interview (I've worked there before and have had a number of interviews with them over the years) and for the first time they actually put code and problems up on the screen and asked me technical questions. It was a nice change.
quantAndHold
Posts: 5174
Joined: Thu Sep 17, 2015 10:39 pm

Re: Computer Science Degree or Self Learn?

Post by quantAndHold »

I was a hiring manager at a FAANG. Before that, I was a hiring manager at a defense contractor. I’ve interviewed and hired literally hundreds of early career software developers.

Once you have five years of professional software development experience, your educational background will not matter. Your professional background, coding, organizational, and communication skills, are all that matters.

But how you get those skills...does matter. I’ve never met a single person who was either self taught or graduated from a coding boot camp or other short program, who was able to jump directly into a professional software development job at the same level as a CS grad. Usually the path for those people is several years of grinding it out in lower level positions, doing remedial work at night to learn the things they would have learned in a CS program, before they are able do an internal corporate transfer into a software development role. 99% of those people are never able to make the leap into the higher level jobs. The people who are able to make that leap tend to be pretty exceptional people.

I did occasionally interview recent boot camp grads who coded well enough to pass our online test and get an interview, but they didn’t have the fundamental CS knowledge to get through the actual interview.

My advice has always been....if you don’t have a 4 year degree in something, and want to do software development, get a CS degree. If you already have a 4 year degree in something else, but want to do software development, get a MS degree in CS. Most masters degree programs are set up so that people without 4 year degrees in CS can still be successful, and it’s a much shorter path than trying to get a BSCS.
Yes, I’m really that pedantic.
KyleAAA
Posts: 8699
Joined: Wed Jul 01, 2009 5:35 pm
Contact:

Re: Computer Science Degree or Self Learn?

Post by KyleAAA »

quantAndHold wrote: Fri Oct 30, 2020 12:26 pm I was a hiring manager at a FAANG. Before that, I was a hiring manager at a defense contractor. I’ve interviewed and hired literally hundreds of early career software developers.

Once you have five years of professional software development experience, your educational background will not matter. Your professional background, coding, organizational, and communication skills, are all that matters.

But how you get those skills...does matter. I’ve never met a single person who was either self taught or graduated from a coding boot camp or other short program, who was able to jump directly into a professional software development job at the same level as a CS grad. Usually the path for those people is several years of grinding it out in lower level positions, doing remedial work at night to learn the things they would have learned in a CS program, before they are able do an internal corporate transfer into a software development role. 99% of those people are never able to make the leap into the higher level jobs. The people who are able to make that leap tend to be pretty exceptional people.

I did occasionally interview recent boot camp grads who coded well enough to pass our online test and get an interview, but they didn’t have the fundamental CS knowledge to get through the actual interview.

My advice has always been....if you don’t have a 4 year degree in something, and want to do software development, get a CS degree. If you already have a 4 year degree in something else, but want to do software development, get a MS degree in CS. Most masters degree programs are set up so that people without 4 year degrees in CS can still be successful, and it’s a much shorter path than trying to get a BSCS.
100% agree with this advice as someone with a similar background. I've managed a few bootcamp grads over the years. One was great, but most were sub-par and their compensation reflected that. Bootcamp grads will get a lot more traction at tiny startups who probably can't afford market rates for experienced engineers. You can take that path and reach the high compensation numbers mentioned here and elsewhere, but it is by far the more difficult path. The online MS in CS degree at Georgia Tech has been a bit of a game changer for a lot of people and I think we'll see that model repeated all over the place over the next decade.
Normchad
Posts: 1773
Joined: Thu Mar 03, 2011 7:20 am

Re: Computer Science Degree or Self Learn?

Post by Normchad »

I didn’t read all the posts. I do a lot of interviewing and hiring for software developers.

I will not even see your application or resume if you don’t have a degree. The HR system will just squash it.

It doesn’t have to be a CS degree, but for us, you must have a degree to even get an interview.

I think the bootcamp’s are rip-off artists, promising people access to high paying jobs they are very unlikely to ever get.
humblecoder
Posts: 263
Joined: Thu Aug 06, 2020 8:46 am

Re: Computer Science Degree or Self Learn?

Post by humblecoder »

As you can see from my user name, software development/engineering is my jam. I have been in the field for over 25 years and have been programming since the days of the TRS-80 and am currently a Director of Software Development at a major corporation (one whose name you would know if I said it). I have degrees in both Electrical Engineering and Computer Science. I am not telling you this to brag, but to establish myself as an "expert witness" on this topic.

I think the most of the posters are not answering your question. They are answering the question "Is a programmer with a CS degree better than a programmer who was self-taught?" That is not your question. Your question is "Will I have a better chance of getting a job with a CS degree or self-taught?"

I'll attack this question from a couple of perspectives.

First, you need to be honest with yourself whether programming is a good fit for your skillsets. I think there is this general feeling that programming is something that anybody with the right training can do. Maybe if you are doing things like simple business automation and the like it isn't rocket science, but software for missiles and satellites is a little different. It literally IS rocket science! Being a competent professional programmer, like most fields, requires a certain innate ability and aptitude. Abstract thinking, logic, hyper attention to detail, ability to focus. It is part art and part science, like many engineering fields. You are constantly thinking of tradeoffs. You also need to be comfortable both collaborating and working in your own head, which is an interesting combination. Many people tend to gravitate towards one or the other, so doing both requires a unique personality type. And of course, you also need some level of training, which brings me to the second perspective...

Second is whether you will learn to be a better programmer if I go through a CS degree program.

In my opinion the answer is, for most people, yes. As others have mentioned, much of programming isn't the nuts and bolts of the syntax of "how do I form a while loop", but it is abstract thinking about how to design code and data structures (for testability, for extension/reuse, for efficiency). It is learning about common algorithms and design patterns on how to apply them. It is learning about the fundamentals of databases, operating systems, memory management, etc. If you want to do any non-trivial programming, you need to know these building block items in order to be successful.

Can you learn these things on your own? Of course you can. However, it takes time to do it. It's more than just reading the latest book on python programming. Most of the "Learn X in 24 hours" focus on syntax and tooling rather than the more abstract fundamentals. And these fundamentals aren't easy. They require a certain engineering aptitude in order to truly "know" them. Doing this outside of a degree program is certainly possible, but it takes a special person to have the aptitude and ability to do this without any sort of structure.

That said, I have seen people who have self-learned who have been very successful because they put in the time and sweat to hone their craft on their own. Because of this passion, they actually made some of the best programmers. However, these people are the exception rather than the rule.

There is also a middle ground. There are these "bootcamp" programs that many of these for-profit tech schools run. You've probably seen them advertised on TV or the radio. However, the quality of these programs vary and they usually don't focus as much on teaching the fundamentals. They can't. Most of much shorter than a degree program so they obviously need to cut corners, so you are still left to fill in many of the gaps on your own.

The third perspective is whether you are more likely to get a job with or without a CS degree. The answer is, "it depends". If a company can't find anyone for a job, they'll pretty much look at every resume and interview any candidate who they think has a fighting chance. However, if a company is getting 1000 resumes for a single opening and 20 of those people have a degree, They will start by looking at the 20 people who have degrees first because they don't have time to look at all 1000. The only way to get noticed without a degree is to get some sort of personal referral.

Is this fair? Probably not. Companies might miss out on the diamond in the rough. However, that's the corporate reality.

So in summary, here is my advice:
1. Be honest with yourself and your abilities. Do you truly think that you have the aptitude to go into programming? It isn't a career that everyone can succeed at. If so, do you truly think that you can learn this craft on your own through books/videos/etc? Or do you think you that you really need the more structured approach that a degree program provides.

2. Consider that if you are self-taught, it is going to be more difficult to get your foot in the door. You may need to work harder to sell yourself and set yourself apart.
Northern Flicker
Posts: 6854
Joined: Fri Apr 10, 2015 12:29 am

Re: Computer Science Degree or Self Learn?

Post by Northern Flicker »

alex123711 wrote: Fri Oct 30, 2020 4:58 am Have read conflicting opinions on whether a degree in computer science is worthwhile or not, some say it's mostly outdated and a waste of time as employers only care about projects/ experience others say that is a pipe dream and you won't get a foot in the door without at least a degree. Makes it difficult to make a decision either way. What is the best option?
Teaching yourself current technologies and how to code is a very short-sighted approach. There will be many technology changes over your career, and having a computer science foundation will enable you to apply fundamental principles to the new technologies you learn over time. The computer science degree will also lay the foundation for future specialization if you decide you want to acquire deeper expertise in a particular area.
Last edited by Northern Flicker on Sat Oct 31, 2020 2:23 am, edited 1 time in total.
Risk is not a guarantor of return.
bwalling
Posts: 119
Joined: Thu Nov 25, 2010 1:04 pm

Re: Computer Science Degree or Self Learn?

Post by bwalling »

Buffetologist wrote: Fri Oct 30, 2020 5:15 am You can teach yourself to code, but a computer science degree will teach you how to think more abstractly and it's that abstract thinking that allows you to transcend technological evolution over a long career and makes you more valuable.
The majority of people that "write code" for a living shouldn't. The profession desperately needs the equivalent of a CPA license, because far too many self taught coders have no concept of software design or software engineering.

The difference between good programmers and the majority of programmers is massive. Massive. As CS degree or a math degree is a big step towards doing it right versus just being better than non technical people and fooling the non technical people into thinking you know what you're doing.
fwellimort
Posts: 463
Joined: Tue Feb 12, 2019 9:41 am

Re: Computer Science Degree or Self Learn?

Post by fwellimort »

bwalling wrote: Fri Oct 30, 2020 1:39 pm The majority of people that "write code" for a living shouldn't. The profession desperately needs the equivalent of a CPA license, because far too many self taught coders have no concept of software design or software engineering.

The difference between good programmers and the majority of programmers is massive. Massive. As CS degree or a math degree is a big step towards doing it right versus just being better than non technical people and fooling the non technical people into thinking you know what you're doing.
I don't want to sound rude but I actually agree with this.
A lot of non-tech people who transitioned to software development really cannot code at all. They are simply net negatives to the team and end up clogging the codebase with code that burns the eyes of other developers. The HR/managers don't know this because they don't know much about coding.

It's actually one of the reasons why I avoid a team full of older developers. There's quite a few 'experienced' developers who really shouldn't be in this profession and seemed to fake their ways in. They write code worse than new grads with a CS degree a year or two out of college.
It's really the younger generation that can code and actually care about readability / maintainability / scalability. And the younger generation also seem better educated and more motivated to follow best practices: a lot of the new grads at the firm I currently work at are from UCBerkeley EECS while the older generation developers have degrees from no name schools.

To the business managers, priority is more short term: if the code works, all is good.
However, long term, this can be quite negative because the code can be unreadable/unmaintainable/full of bugs resulting all the 'good' developers to start leaving the company. A lot of the 'good' developers at the firm I work at over time move away to Amazon and Google.
And honestly, once all the good developers leave the team, it's only a matter of time before that project fails long term.

I have seen near production codebases including a bunch of TODO / null / pass / ??? / a crap ton of if statements / lots of nested stuff that should be broken down / inefficient code such as iterating through an entire list repeatedly instead of using a hashSet / lack of understanding with concurrencies / un-scalable code projects / lack of proper unit tests (generally if there are unit tests, they are worthless unit tests) / functions written in a way that is difficult to unit test / etc.
The good developers end up 're-fixing' everything and unable to shine much in the team because they have to spend the extra time fixing these codebases. At a certain threshold, good developers will get frustrated due to lack of appreciation for fixing all the issues and move to a better paying firm.

The only annoying part of this industry is that the ones that "can't do" are really good with faking their ways in: really nice looking resumes, bluffing well in interviews. It's more frustrating to know that because of their 'year of work experience', they are some type of director developer or whatever and hence get paid a lot more than the actual developers carrying the company.
Personally, if I were hiring junior developers today (I'm a developer, not a recruiter), I would honestly trash out every resume without a computer science degree from a reputable school unless they worked as developers in a FAANG like company. Then from there properly filter out the candidates before the phone screen.
Now, this practice is unfair but the truth is, when there's so many resumes to filter out for a position, looking for that 'needle in haystack' isn't worth it unless that person has referrals from senior+ developers: there's already plenty of desperate UCB EECS new grads, why should I bother spending the extra time looking elsewhere.
oldfort
Posts: 2343
Joined: Mon Mar 02, 2020 8:45 pm

Re: Computer Science Degree or Self Learn?

Post by oldfort »

When I was trying to get coding jobs a decade ago, it seemed like you couldn't get an interview without a CS degree. The days of being self taught and expecting to get a good job at a major company without a CS degree or something closely related seemed like a bygone era back when I graduated college. I imagine it's only gotten tougher now.
anthonyphamy
Posts: 78
Joined: Sun Aug 05, 2018 8:59 pm

Re: Computer Science Degree or Self Learn?

Post by anthonyphamy »

Thank you for this informative post, OP and responders. I am actually non-programming background (ie, biology), and considering an online MSCS-data science paid for by my company while working full time.
stan1
Posts: 9540
Joined: Mon Oct 08, 2007 4:35 pm

Re: Computer Science Degree or Self Learn?

Post by stan1 »

anthonyphamy wrote: Fri Oct 30, 2020 4:22 pm Thank you for this informative post, OP and responders. I am actually non-programming background (ie, biology), and considering an online MSCS-data science paid for by my company while working full time.
Yours is a very different situation than OP posted and has information specific to your current degree and employer. In your case, why not? Go for it if you are interested and are OK with the work/life balance that comes with a rigorous online program while working full time. Even better if your employer will give you job duties involving data science so you get experience as well as education.
Last edited by stan1 on Fri Oct 30, 2020 4:36 pm, edited 1 time in total.
MarkRoulo
Posts: 300
Joined: Mon Jun 22, 2015 10:25 am

Re: Computer Science Degree or Self Learn?

Post by MarkRoulo »

Normchad wrote: Fri Oct 30, 2020 12:38 pm I didn’t read all the posts. I do a lot of interviewing and hiring for software developers.

I will not even see your application or resume if you don’t have a degree. The HR system will just squash it.

It doesn’t have to be a CS degree, but for us, you must have a degree to even get an interview.
Is this your decision or company policy where you work?
bling
Posts: 759
Joined: Sat Jan 21, 2012 12:49 pm

Re: Computer Science Degree or Self Learn?

Post by bling »

alex123711 wrote: Fri Oct 30, 2020 4:58 am Have read conflicting opinions on whether a degree in computer science is worthwhile or not, some say it's mostly outdated and a waste of time as employers only care about projects/ experience others say that is a pipe dream and you won't get a foot in the door without at least a degree. Makes it difficult to make a decision either way. What is the best option?
that's like saying math is outdated and is a waste of time.

can you get a job without a degree? yes.
does a degree increase your chances of getting a job? yes.
does a degree increase your chances of being effective at your job? yes.
does anyone care what degree you have after you've been in the industry for a while? no.

but what you didn't ask is the most important question of all. do you actually enjoy programming or not? if the answer is no then walk away and save yourself the misery.
Normchad
Posts: 1773
Joined: Thu Mar 03, 2011 7:20 am

Re: Computer Science Degree or Self Learn?

Post by Normchad »

MarkRoulo wrote: Fri Oct 30, 2020 4:36 pm
Normchad wrote: Fri Oct 30, 2020 12:38 pm I didn’t read all the posts. I do a lot of interviewing and hiring for software developers.

I will not even see your application or resume if you don’t have a degree. The HR system will just squash it.

It doesn’t have to be a CS degree, but for us, you must have a degree to even get an interview.
Is this your decision or company policy where you work?
Although it is not my decision, I 100% support it.

To me getting a degree means something. It means you can endure being in a bureaucracy for many years, can comply with whatever rules they throw at you, didn’t give up, and somehow came out the other end with an accredited degree. If you. If you can’t do those things, I don’t want to interview you.

I’m sure it’s true though that some can do those things, but don’t go to college. I just don’t have enough time to interview everybody..... with recruiters and staffing agencies now, I probably get 50 resumes for every position I personally hire for.

But, anybody who has done this for long knows that a lot of hiring decisions turn out to be mistakes. The entire industry is searching for better ways to make good hiring decisions.
Northern Flicker
Posts: 6854
Joined: Fri Apr 10, 2015 12:29 am

Re: Computer Science Degree or Self Learn?

Post by Northern Flicker »

Normchad wrote: To me getting a degree means something. It means you can endure being in a bureaucracy for many years, can comply with whatever rules they throw at you, didn’t give up, and somehow came out the other end with an accredited degree. If you. If you can’t do those things, I don’t want to interview you.
And if you want to be a software developer, getting the degree in computer science means something even more-- it demonstrates a level of commitment to the field, and meeting some standard in the field.
Risk is not a guarantor of return.
GaryA505
Posts: 755
Joined: Wed Feb 08, 2017 2:59 pm
Location: New Mexico

Re: Computer Science Degree or Self Learn?

Post by GaryA505 »

If you're really a good self-learner and you think you can learn data structures, signaling, multi-threading, device drivers, TCP/IP and a bunch of other stuff, go for it. Most employers still want a degree though. You wouldn't get an interview at my company without one.
fwellimort
Posts: 463
Joined: Tue Feb 12, 2019 9:41 am

Re: Computer Science Degree or Self Learn?

Post by fwellimort »

GaryA505 wrote: Fri Oct 30, 2020 11:21 pm If you're really a good self-learner and you think you can learn data structures, signaling, multi-threading, device drivers, TCP/IP and a bunch of other stuff, go for it. Most employers still want a degree though. You wouldn't get an interview at my company without one.
This is the biggest barrier to job. Without connections or luck, it doesn't matter if you are more talented and capable than the other candidates.
On a resume, there's no way to 'validate' without knowing the person ahead of time.

For instance, I could have studied Real Analysis, Modern Algebra, Abstract Topology, etc. by myself and not have attended college.
Say though I decided to apply for Princeton's PHD program for theoretical mathematics (in say Algebra). Why would any sane professor take me in when there's countless other applications with a college degree (a 'stamp' of proof). Unless I'm getting a referral from a renown professor like Terrance Tao, none of the professors are going to give me a chance to prove myself.
Of course, if there's a lack of applicants applying to these programs, such situation might differ: e.g. just over two years ago, a bootcamp might have been enough to break into this field while today, due to the sheer number of graduates with computer science degrees, it's really difficult to break in without a college degree for those without relevant experience.

College degree is a piece of paper that acts as a 'stamp'. The faster one understands the world does not run entirely on merit, the better one might go through one's career. For those without 'connections', college degree is 'THE' connection to break into the field: it's one of the best 'equalizers' society has currently.
It's the most overrated/overpriced piece of paper you might pay for (please do not take a loan or take as little as possible). But sometimes, this 'overrated' piece of paper might be the difference between being treated/paid well and not.
Last edited by fwellimort on Fri Oct 30, 2020 11:55 pm, edited 3 times in total.
phxjcc
Posts: 673
Joined: Thu Aug 23, 2018 3:47 pm

Re: Computer Science Degree or Self Learn?

Post by phxjcc »

Perspective.

You could have read the same thing in 1985, 1990,..., etc.

I started in 1978 with Intel assembly language and a BS in microbiology.

By the time we hit C/Unix in the mid-80’s we wanted BSCS. Until we couldn’t find them. Then DeVry or an AA from a JC was good enough, then we ran out of those and would just hire good code cutters. (400 person shop in SoCal)

So, like everywhere else in all fields, better qualifications get you in more doors.

If you want a job, learn to code and DO a LOT of it.
Post Reply