Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Does a college degree hold more power than a strong portfolio?
45 points by astrowilliam on June 5, 2015 | hide | past | favorite | 54 comments
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?

I've hired a lot of people who didnt finish their degree, but had some college under their belt and a strong portfolio. I would have a very hard time hiring a HS graduate, unless they expressed a very high level of maturity, and even then, I would not pile a lot of responsibility on them for quite a while.

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.

TL;DR Its a harder road depending on who is hiring you.

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.

Well, "better shot" means not having to work as hard to succeed, so what you are saying supports the idea that one should prefer to get an education.

The more relevant question is this: is it easier to succeed without an education than it is to get an education?

I've "succeeded" in programming without even a HS degree but it happened with a lot of luck and being in the right place at the right time to meet the right people to move me up the ladder. If I had to do it all over again I'd get the degree because I'm not sure I'd be as lucky the second time around.

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.

Someone who I regard as a 10x developer suggested https://projecteuler.net/ as a substitute for a traditional CS program. Highly recommend it.

"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."

Thanks for the suggestion. Last time I went to start working through the problems it was in offline mode and I ended up putting it aside until they were back up and completely forgot about it. I'll definitely take another look.

> 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.

I can say that I'd probably never have used a unix-like computer if my CS department hadn't put it in the curriculum. I'd have probably never learned Python if it hadn't been homework. I'd have spent far too long struggling to learn C++ on Windows machines, and achieved not much else.

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.

I guess my point is that theres a disconnect between what you're taught in any sort of formal education program and the environment you're going to enter in the tech workplace, and that if you have the option, on the job training is going to be far superior to any classes you take in a CS track.

It'll make you better at that particular job than a CS degree would, but it won't make you better at CS.

Or as the saying goes: "Education is for those who give orders; training is for those who take them."

Odd. I have no formal education, but I've held several management titles, including founder and VP on occasion.

To think you need a college education to lead or, as you said, "give orders" is preposterous.

I didn't say you needed it. Nor does having a title make you good at the job.

Exactly. I have hired several devs who didn't finish college (or who hold a degree in something completely unrelated), but I do prefer candidates with the maturity college brings. I do think that maturity can come through other means (e.g., the military, or even travel/working), but some maturity level is required before stepping into this kind of work. Plus candidates need to remember that day after day more companies require degrees, so it only behooves them to get one now (better so via an affordable program).

> 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.

Do you think someone who had a career at that age had less or more responsibility than someone in college?

I had a career at that age because I wasn't enjoying school and I had a skill which I could get a job with. It wasn't because I was more responsible than my peers and I still hung out mostly with people my own age only I'd go to the office and they'd go to class. Although I couldn't party as much as them on weekdays.

I still had the experience of first time being on my own though since I moved overseas for my first tech job.

Valid point, but generally speaking, I was looking for someone who was a bit more mature than straight out of Highschool - and college gave me some concept that they'd achieved that.

Hiring right out of HS would have been a higher risk in my mind

I see what you're saying and think we were at different ends: I thought you meant 'I wouldn't hire someone who only graduated HS' rather than 'I wouldn't hire someone who just graduated HS' and fair enough.

Here's my recommendation: you aren't going to make much money without solid references. A portfolio is mostly meaningless. What you want are references.

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.

this was a better answer than mine. kudos.

A strong portfolio is far better than a degree most of the time. That said, IMO a recent high school graduate would have a much harder time proving that their portfolio is strong and that they are worth the risk over a college new grad.

There 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.

A college degree is important to many kinds of places, such as government contractors who are obligated to have all of their engineers with degrees. Generally the bigger an employer is, the more likely you're going to need a degree. If you want to write software for Lockheed or McDonnel Douglas you need a degree.

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.

> write software for ... McDonnel Douglas you need a degree

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.

Another way to look at it:

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.

I don't know how much value I would place on a degree in "web development" because it would raise the question: Where are the gaps that would have been covered in a CS or Software Engineering curriculum but weren't? I don't think that the issues that exist in web development are the generalized cases of a narrower set of CS or SE problems.

Gaps? Probably: Some algorithms lessons, OS development, low-level thinking, definitely AI, etc. Not a big deal in the current web dev landscape, and definitely the sort of things you can pick up on your own given a need and a plan. Does the undergrad degree really make such a huge difference in those areas anyway?

Even if you're hiring for a Web Developer?

For sure. I view vocational style degrees like "Web Development" as a red flag. My thinking is that the program is probably a bullshit money grab, and the person who went there is naive enough to go for it.

It's always tricky to generalize, but when I'm hiring I value a great portfolio much much more than a degree.

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.

As a hiring manager, here's how my impressions rank:

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.

This is where I'm at. ("Game development" degrees are a similar question mark in that field, too.)

I got into web dev before web dev degrees existed also. at the time a strong portfolio was certainly more than enough.

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.

Straight out of high school? Well, if they had the experience and portfolio for the job and won-out against the competition, sure. Just bear in mind, it's hard to shine when you're fresh out of high school.

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.

Depends on who you're talking to. For some people, college is huge -- those also tend to be the people for whom Stanford, MIT, or Harvard counts more than ten degrees from a state school. For others what you've done will count for more.

Some degree is almost always preferable to no degree though. In some cases it need not be in the field you're working in.

Remember that a College degree shows that you can stick at something for a couple of years and actually finsih it.

So can a similar 4 year run at a typical company. Especially smaller companies, many got from zero to acquisition in that person, or zero to release 2.0, which can be pretty significant.

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.

I took the route of leaving college in my 2nd year. Several of my friends have recently graduated, and there is the typical fracturing of those truly passionate, those who just did the coursework, and those who didn't learn a damned thing. The thing about the last group is, they still managed to graduate with a degree. I'm not saying this to be a dick, but one of my best friends graduated with a BS in Computer Science, and he cannot even do FizzBuzz. He's not the only one I know like this. Say what you will about "sticking it out for 4 years", but when you filter based on a criteria that includes folks who can't do the most trivial problems, you might want to rethink your strategy.

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.

That's a good point... but a robust portfolio and/or job history might demonstrate that even better.

The work samples are key, whether they consist of previous work or of "the examples they did in class". If candidate A has a degree and a portfolio, they'll have an edge over candidate B who just has the portfolio. If A's class examples are crappy, and B's work examples are great, B will have the edge.

(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.

Maybe? I think that hiring is one of those things that there are no hard and fast rules for. I've met super talented but completely irresponsible people that I'd never hire despite the amazing portfolio and I've met college grads with only there school work to show and it's pretty great, who turned out to be great hires. It's more about the individual person than a set of key words to determine success.

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.

When I hire, I don't care too much about a degree unless it is from a strong school - even then I still vet for technical skills.

But I only view degrees as upside, not part of the core decision making process for me when evaluating a candidate.

Id happily take a chance on HS grad with a strong portfolio.

I think the issue here is where does a HS grad get the time to focus on building a strong portfolio? A strong portfolio is maybe 1500 hours of work, and includes projects undertaken as part of a team.

At a pace of 10 hours a week it would take a HS student almost three years to build a good enough portfolio. I'm sure some students could do this.... But it would take a lot of dedication.

How can one expect to have a strong portfolio of work "straight out of high school"? There simply hasn't been enough time to build a strong one. A few student projects or a part-time summer job is quite different from several years of web dev experience, which very few 18-year-olds have.

I have a degree in Digital Art & Design, but I have interviewed for and gotten jobs looking for a CS background.

I am a web programmer. Design seems to be an acceptable background for coding positions. I think just having some degree is a key that will open doors. Then it's down to your skills to seal the deal.

Interesting question. I would say it really depends on company/location. HR doesn't always have time to look at a portfolio and the first thing they usually see/expect on your resume/CV is college. I'd like to see some statistics on this.

After the tough time I had trying to stay afloat in my undergrad, I don't think I'd venture to hire someone who was unable to complete a degree (just being honest with myself). I agree though that most actual learning occurs outside of the classroom.

A good education shows the right data has been put into your brain. A good portfolio shows you can produce good output. I think/hope employers value the latter.

> "When I got into the web development business there were no college degrees for it, just CS at the time."

What specific field of study is this referring to?

I got a degree in "Computer Science and Media" which is essentially software engineering for web/mobile.

I've taught web development at a university and I can tell you, a portfolio holds a lot, and by a lot I mean a hell of a lot, more value!

Degrees show the ability to jump through hoops, which is beneficial in many organizations.

A portfolio shows aptitude.

The combination of both make for the strongest employees.

We hire people who have internships and we promote internships in govt. IT. Degrees may not matter as much as projects completed.

I have been in IT since 1995, and in my experience people with a BSCS have an easier time getting a job, and are usually working better jobs.

Some jobs say from the get-go they're unavailable to people without a Bachelors. Here is one:


"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.

I see it this way: it's a choice between being mostly a craftsmen/engineer and being an applied scientist (that can also become a very good craftsmen/engineer).

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 until you retire, and having to learn every 10 years or so a whole new paradigm.

Just think of all the build tools, frameworks that there are out there, you are a Grunt + Node + Angular guru today, tomorrow they will look for a Gulp + TypeScript + React guru, and in 10 years OO GUI building will make a comeback and people will return to writing UI using Swing / MFC like structure as you can run it natively in a browser using ASM.js.

I'm doing web since 2000, and the amount of technology changes is overwhelming, what is hype today, might not be even in existence 10-15 years from now.

Programming principles, (OO, Functional, Reactive etc) and basic CS stuff (Algorithms, Data Structures) will likely stay here a little longer. Although you always have to keep up there too, the pace is though, a little slower.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact