Ask HN: Does a college degree hold more power than a strong portfolio?
When I got into the web development business there were no college degrees for it, just CS at the time. Times have changed and if someone were to get into the business right now, straight out of high school, with a strong portfolio of work would they have a better shot at a job than a college grad with only the examples that they did in class?
57 comments
[ 3.0 ms ] story [ 116 ms ] threadThere are some high schools in the US (probably other places too) though that have specific programs where their students are coming out highly trained and with solid skills. My son is coming out of one next year, and while he is planning to go to college as it stands right now, he is employable today. I have used him as a junior developer on a few of our consulting projects in the past couple of years as he can produce and do the basics. I am also potentially going to hire 1 or 2 of his classmates as interns over the summer because we have some temporary needs for basic HTML/CSS skills and to your point they get to build a portfolio on real projects and products.
In the context of software development, the most important thing you can get from a degree that you won't get from independent learning is the people connections. If you're wanting to start your own business and you've been living in a social cave for the last 5 years, you're at a significant disadvantage compared to someone who has spent the last several years rubbing elbows with the best brightest and best-connected people at Stanford.
On the other hand, you're going to spend years studying things that may or may not seem relevant to you, when you could be learning and building things of direct impact this month.
Most employers worth working for today want to see that you can do the job effectively, and you can demonstrate that with a killer portfolio and excellent interviewing skills.
I went straight into the software industry out of high school. Well, technically before-- I got my first programming job at 16. I've never had trouble finding employment except for a brief period at the end of the dot com collapse in 2001. But not having a degree has always limited my options. Almost all jobs 20 years ago stated they require a degree, and they meant it. Today it's a small minority of jobs that state that they require a degree and actually mean it.
The importance of a degree on paper is waning, and has been for some time. But the importance of knowing a bunch of people who know how to do lots of things, and have capitial: that is still vitally important. And a good university is a great way for a young person to get access to those things, but not the only way.
And a time machine. ;)
I agree in general with your post, though. Software development is a big field, and some corners absolutely require a relevant degree for actual or bureaucratic purposes. This is the case almost any time it intersects with traditional engineering, and in fact many of those jobs would rather have a $DISCIPLINE engineer who can code than a software engineer.
Problem is, college is synonymous with gaining maturity, since for many, its the first time they're truly on their own. Responsible for their own grades, responsible for day to day life, responsible for projects and outcomes. Being able to handle your life, handle deadlines, not think you can boil the ocean - is very important for me as a manager. Having a bit of higher education under your belt gives me a warm fuzzy feeling (maybe wrongfully so) that you can hack it in the real world.
There are exceptions, but the stereotypes do fit most of the time.
Years ago, I dropped out my junior year of high school to be a junior sysadmin at webdev shop in Chicago. I was 17, had worked there for about 6 months, and summer was ending (this was around '99; right before the dotcom collapse).
I could've chosen to go back to high school, but I didn't see the point. I was learning far more in the real world. To get this job though, my boss (who I'll never forget, and to this day appreciate the chance he gave me) had to take a leap of faith. He was hiring a kid with no real work experience, no degree, no proof he knew what he was talking about besides the pictures of his breadracks in his basement with x86 machines networked and crunching through DES keys for distributed.net (which was the style at the time).
Once you get your foot in the door though, the sky is the limit. I've had the opportunity to work on some amazing products and technologies, private and academic, all because I had a few years of experience when it came time to apply at those jobs (after a few years, no one asks about your education if you know what you're doing, and if they do, you probably don't want to work there anyway).
You can most definitely use a portfolio or knowledge in lieu of a college degree. You may have to knock on more doors, you may get turned away from more places, but you'll still be able to get hired.
The more relevant question is this: is it easier to succeed without an education than it is to get an education?
In IT? I'd argue without, most definitely. For example, no one teaches DevOps, and a CS degree would've been a waste while doing it.
Without an education, you're in a vast sea of options, and little means to tell what you are capable of.
Of course, if you already have a job, what difference does it make? You aren't going to learn DevOps sitting on your laptop at home, either. So of course, if you assume the conclusion, the means don't matter.
Or as the saying goes: "Education is for those who give orders; training is for those who take them."
To think you need a college education to lead or, as you said, "give orders" is preposterous.
Even now after having worked as a programmer for 15 years and as a department head or founder for 7 of those years I'm planning on starting back on a CS program next year just to have the experience of having done it and the chance to focus on studying topics I wouldn't normally think of in my day to day.
"Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context."
Do you think someone who had a career at that age had less or more responsibility than someone in college?
I still had the experience of first time being on my own though since I moved overseas for my first tech job.
Hiring right out of HS would have been a higher risk in my mind
Similarly many people get through college only showing that they can put in enough effort to evade detection in the sense of total failure.
I don't think completion of a degree alone is a significant indicator relative to alternative options.
Maybe my microcosm is not indicative of most places, but of the companies I've worked/applied to thus far, not having completed college has not been a hindrance. Especially once you've gotten a few solids years experience under your belt, if you're the type who is motivated and a solid developer, you should have no problem getting a good job.
What specific field of study is this referring to?
But I think you'd have a hard time getting that first job with no college degree. Someone's gotta take a chance. Once you've got a few years of job experience (at least to me) the lack of a degree is not important.
I personally think people should go to college, though, if they are able. I think there's a lot of value in the social experience and in taking classes that are NOT just teaching job skills. I've hired some really fanstastic developers who were humanities majors.
All that said I think it really depends on the market, tech stack the dev is aiming at, and particular companies that are targeting. I've had influence in hiring at 5 different companies and each has had a different policy in regards to a degree.
(You have a bit of a chicken-and-egg problem for candidate B, though, since if they've spent time building up a strong portfolio of work then by definition they are not "straight out of high school.")
What kind of degree matters too, though; a real CS degree from a real school is worth a lot more than certain for-profit institution's halfway-accredited "you too can be a real live web developer!" programs.
If you want to limit yourself to jobs that need only concrete skills, specific knowledge (e.g. knowing an API of some framework inside or out, or even knowing the nits and grits of a specific programming language) then a strong portfolio, and self learning might be enough. Although you will always be looked down upon by CS college grad peers once big O and Algorithms / data structures discussions are coming up. Even if you know it better than them! (They just assume that you don't as you don't have a degree)
But the bigger downside if you truly choose to be solely a craftsmen is that you always have to keep up or your are out. Technologies change, and if you don't change with them, you are obsolete. Even if you know HTML5, CSS, JavaScript and Rails to the level you memorized them and have built an impressive portfolio with 2000 stars in GitHub and 10 HN front page submissions. Ask yourself where is that guy who did this 10 years ago? I was one of those, I had Flash stuff that was the equivalent to the above. Got Macromedia site of the day, people in forums and myspace praised my work, I got my work presented in FlashForward conferences. Does it worth anything now? zip, nada. think 10-15 years from now. will a starred github JQuery plugin you wrote get you that job when you are 35? 45? 55?
In the other hand, if you want transferable skills that are not framework related, you need to either self learn it, (which is hard to prove) or get a degree. the degree serves the following:
10% - the actual knowledge (you can get it anywhere), 40% - the self discipline structure that forces you to "self learn". think of it as a challenge, you pay tuition, they force you to stay focused and self learn by going to lectures / watching them online. 30% - is the easy verification that you know those things, instead of reading your portfolio and looking for usage of data structures / algorithms (e.g. anything that is not just "trade skills" or "craftsmanship", future employers can just see your degree, and assume (if you got a decent GPA and it's a decent university) that you got that at least covered. the last 20% is as others said - soft skills implied from graduating college. employers know that you can handle life on your own, handle deadlines, handle working with a team, handle pressure, and do something that is not immediate gratification.
You can always choose to also be a craftsman after you get your degree, in practice, specific technical skills are very important and valuable for employers.
If you don't want to limit the jobs you can apply for, you need to prove 2 things -
1) that you have your CS basics (Algorithms, Data Structures etc) otherwise you rule out many interesting jobs (not just at Google / Facebook, but also many web startups that need more than just CRUD / web / mobile)
2) that you can actually code and use that knowledge in a specific tech stack.
You can prove #2 easily by going the portfolio way. You make it harder to prove #1 by going the portfolio way, and make it easier by going the degree way.
p.s. you can get a CS top 10 US education for about $10,000
Step 1: get an accredited US CS undergrad degree online for $4,000 at http://uopeople.edu
Step 2: apply to Georgia Tech Online Master of Science (degree is the same as on-campus degree, which is ranked #9 in the US for Graduate Computer Science degree) and pay only about $6,600 and you don't need a GRE! (as opposed to the on campus one). you just need to get B and above in 2 core courses to be fully admitted (not always easy, but doable)
The amount of jobs you can do after that grows largely. And I think it will be a little more interesting than just doing the same old CRUD / Mobile / UI unt...
But I only view degrees as upside, not part of the core decision making process for me when evaluating a candidate.
Some degree is almost always preferable to no degree though. In some cases it need not be in the field you're working in.
1. Strong portfolio + CS degree 2. Strong portfolio 3. CS degree 4. "web development" degree
I would almost never hire someone who got a degree in IT or "web development." Academics shouldn't be purely vocational, and it would raise serious questions for me of why you couldn't complete a normal CS degree.
If I need to hire someone for a specific task, e.g. a web development specific job in a specific framework / language, I might prefer someone with "street smarts" and a proven portfolio vs a fresh Stanford CS graduate, yes.
If I need someone to work on algorithms, big data, analytics, machine learning, unless they are top of the line in Kaggle, or high rank in TopCoder et al, then a degree will be pretty important for me.
As for you, as I said in another too long to read comment. do you want to be that first guy that will always need to learn the hot new framework, grunt + angular today, gulp + react tomorrow, you always have to keep up to be relevant.
When you have a degree you still need to stay up to speed and be relevant, but at least you have some fallback. It will be easier to find a job for a 45 years old person that had a CS degree and had all his career worked on a mainframe as a mediocre mainframe developer, than for a "once guru mainframe developer that used to speak in conferences and got to be on the front page of the printed edition of mainframe monthly" but with no CS degree.
Also if you would like to get into the "big ones" (Google / Facebook etc...) it will really help to have a degree. You'll need a really impressive portfolio to be noticed without a degree. And you also need to know all that CS theory to get passed their technical questions.
At the end of the day though, if someone came to me with a CS degree and a weak portfolio, I probably wouldn't hire them over, say, someone with no degree but a strong one. I value the ability to learn on one's own time 100x more highly than the ability to learn in a classroom environment.
Some jobs say from the get-go they're unavailable to people without a Bachelors. Here is one:
http://sfbay.craigslist.org/nby/sof/5058201264.html
"Bachelors in Engineering or CS is a minimum requirement."
Even if it's not a listed job requirement, some people like to see it anyhow. It doesn't matter as much when things are buzzing, but it becomes important during downturns like after 2000 or after 2008.
It is rare to meet someone without a BSCS who can explain what a finite state automata is, or how you can prove a problem is NP-complete through reductions, and that sort of thing. Or even with less theoretical topics, they're less likely to know what second normal form is, or semaphore P&V's etc.
Of course there are different scenarios and exceptions to every rule. Some people get a diploma while doing the minimum. Some people are superstars and learn theory without a diploma. People can get jobs without a diploma, especially in boom times.
I would go back again to the economic downturns. In 2000 a lot of companies went under and people were let go. The same happened in 2008. You might be laid off, and will then be competing for a very limited number of jobs against people with as much experience as you, plus diplomas. You might think it might not matter, and some other people might tell you that doesn't matter, but that won't be much help when you're laid off, have a family to support and mortgage to pay, and job listings say like the above ad "Bachelors...requirement". Or even if it the job listing doesn't have that as a requirement, HR is taken aback when you tell them you don't have a degree. You hear complaints about people over 40 or over 50 not being able to find work in the Valley, imagine being that age and not even having a Bachelors.
I can see someone, if they have to, working while going for their Bachelors. I can even see someone out of necessity cutting school down to one night/weekend class a week. For a young person to go into development without pursuing a Bachelors seems very risky to me. You'll be the first one thrown into the scrap heap when the economy sours, and by that time you might have a family to support. You don't want to have the realization you need a Bachelors when you're 35 with a family - between work, family and study you'll have no time at all.
A portfolio shows aptitude.
The combination of both make for the strongest employees.
But the market is strong right now for developers.
So, rather than racking up a bunch of debt, why not finish your BS in CompSci at a state school part-time while working full time?
You'll be getting real, hands-on experience through your work, and buttressing your non-CS skill set as well as your non-practical CS skills. Financially, you'll be making decent enough money that you should be able to afford to live comfortably and pay for school as you go (depending what state you live in). I know it's possible because I recently did the number's for a friend of mine's younger brother who is in the same boat. He lives in Minnesota. YMMV in other regions.
After, say, 6 years, you should be able to have a CS degree and 6 years of experience, plus references.
With that, you should be able to make great money and be well positioned for when the market isn't so good for developers.
A lot my friends in the 90s who dropped out of their CS degrees because the market was hot had to either leave the industry, take massive pay cuts, or go back to school and take on a lot of debt when the market crashed. When nobody is hiring but the big boys, college degrees are the price of admission, even for shit jobs.
however, I'm talking about a time where they would hire anybody who knew a smidgen of HTML. and I wasn't straight out of high school. I had spent some time in the world of work first, proving that I could meet deadlines and handle responsibilities as a production artist and graphic designer. and for that matter, I went to a high school which got profiled on CNN as "the Harvard of high schools." I was studying both Ancient Greek and Latin at the age of 15 or 16.
so, although I did it without a degree, and I've met plenty of great programmers without degrees, or whose degrees are in linguistics or philosophy or film, I would have to say, the responsible thing to tell a high school kid is that a degree is pretty damn useful.
also, web dev has picked up a staggering amount of complexity in the intervening decades. think of all the perspective you would gain if you were to fully investigate, for example, the convoluted history of MVC - from the GUI, to Rails, and then back to the GUI via the browser, where we now have to host a kind of recursive MVC. or imagine having to make sense of JavaScript without knowing that the "Java" in the name was a marketing gimmick from 1997.
yet at the same time, most CS degrees appear to suck anyway, and many CS degrees probably even do severe and active harm, insofar as they encourage the bizarre anti-intellectualism prevalent in STEM culture. you're more likely to avoid an unthinking contempt for English majors, for example, if you never had to find out what a major was in the first place.
so, like anything in tech, there's tradeoffs.