Ask HN: Should I attend college?
I am a current high school senior who intends to go into the software industry. I'm trying to decide between enrolling in college to pursue a BS in Computer Science or entering directly into the workforce.
My conundrum is this: I intend to seek a front-end engineering job, and am already very competent in front-end technologies. I have a fair number of items on my resume, mostly from personal projects and internships. I anticipate being able to acquire a moderately well-paying ($60,000 to $80,000+) development job after leaving high school. However, I'm also worried that not pursuing a degree will exclude me from certain well-paying jobs, especially later in my career.
I'm also quite worried about the debt load that a degree would require. I anticipate having to take out between $50,000 and $100,000 in loans to finance a degree.
On balance, do you think pursuing a degree will be more lucrative in the long run?
89 comments
[ 3.7 ms ] story [ 168 ms ] threadIf you are really lucky you could probably even find a job that will let you go to school part time while you are working which would be the best of both worlds.
You don't have to attend school right away but you'll probably lose all momentum to go as you age.
I'd argue that four years of experience trumps the four years of book learning, and that the debt vs. savings issue is secondary, (but of course points towards getting a job now).
So I would suggest you try to find a job rather than go to college.
This is not to mention that outside of the coasts, unless you are freelancing or starting a startup, people hiring developers often require a degree (at least in hires with less 10 years XP).
It will be tough going at first, but if you are good at what you do, you can out-pace what you would earn with a degree. You will have some "verifiable" acclaim, and you can back up everything you may with evidence you built yourself, while doing client projects all you can. Look through online databases of freelancing gigs, but it's a wild west.
A BS in Computer Science will not serve you well if you intend to do front-end engineering, for the most part. IMO, it would be better to work in online communities of experts such as http://stackoverflow.com or http://ux.stackexchange.com/, earn reputation there, and build a portfolio of past work.
Most of all, stay relevant. If you do projects for your own experimentation, develop them to a point that is presentable, then move on to more paid work or experimental work that demonstrates being on the edge of the field, until you are sure you want to "specialize" in a certain way or format or technology.
On the whole, you can do everything you might want to do, including gain contacts and peer review, without college. Participate in online communities with good offline meet-ups and conferences, etc. Stay connected, eager, and active. In 3-5 years you'll have a demonstrated track record of being self-motivated, well educated, and extremely progressive.
I can't over emphasize how saturated the field is, which will be tough for you with or without a degree unless you set yourself apart. Focus on that, regardless of what else you do. I personally believe an independently created career without a degree will be more lucrative in the long run.
The way I see it, four years to get a degree is worth it, you will not ever have to worry about whether you are qualified "on paper". Of course most tech companies don't really care as long as you can code, but it's good to have, just in case.
Lines are getting blurred, and college/university isn't the only way to learn more things, but I imagine you're ruling yourself out of a lot of jobs by focusing this early. Maybe you don't want them jobs though. I guess my best guess at an answer is take a job if you can and you know it's the career you want, if not bite the bullet and do CS.
Is that really what college costs these days? I went to state school which cost about 8-10K per year. My loans are 0% subsidized govt loans. I pay about 150 bucks per month. I could have paid them all off by now, but why?
It doesn't need to be that expensive.
If I recall correctly, the interest rate on Stafford loans is 3.4%. Government "Parent PLUS" loans and private loans are much higher. What's especially appalling is that the federal government actually uses student loans as a source of revenue. (http://www.rollingstone.com/politics/news/ripping-off-young-...)
The cost is getting out of control.
Yes yes yes yes yes.
"Front-end engineering" is a craft that happens to be relevant right now. It's an artifact of the particular client-server computing model we currently have. It is not likely to be relevant 5-10-20 years from now.
"Computer Science" is (among other things) a discipline that will give you the ability to learn the next craft, and the next one after that. It will keep you relevant your whole career.
Definitely go to college if you have the opportunity to do so.
If your computer only uses voice, the "front end" technology stack is very different from what we have today for websites.
If government and market forces cause the web industry to stagnate over time (see: net neutrality, pervasive privacy concerns), then the hot industry of the future might be something totally different.
A CS degree alone will not keep him relevant 5/10/20 years from now. The industry is, for the most part, a meritocracy, and he will need to keep his skill set up-to-date with industry trends forever.
In my experience, good CS students tend to learn more outside of class. Based on the OP's post, I would bet that he is sufficiently capable of self-educating.
"Front-end engineering" is a cutting-edge craft and a working knowledge of this will develop into the next important thing 5-10-20 years from now.
"Computer Science", as it is taught, can be 30+ years out of date, depending on the course. Few academics have functional industry experience and many are regurgitating theory that they learned a long time in the past, not fully updated for existing practice.
Do you know something the rest of us do not about "the next important thing"? Surely you can imagine a scenario in which your "cutting-edge" skills become devalued. If history is any indication of things to come, such a scenario isn't that far-fetched.
> "Computer Science", as it is taught, can be 30+ years out of date, depending on the course
You're right - some courses are garbage. But when I was in school, the courses I took on databases, algorithms, AI, and mobile robotics were extremely relevant and still are today. Most CS curriculums teach fundamentals and concepts, which have never gone out of style.
When you say "30+ years out of date" the first thing that comes to mind is a computer engineering class I took based on the intel 8085 (1977), which was about 30 years old when I took the class. Writing assembly code for the 8085 happened to be one of the most interesting and important parts of my CS career, despite being 30+ years out of date compared to the Java and Python code I write these days.
The specific tech stack you use as a frontend engineer will almost certainly be obsolete in 5 years. The general skills you learn as a frontend engineer will not be, and that combination of skills are not taught anywhere, particularly not college.
If you're doing it right, you learn way more as a FE-SWE than just Javascript. You learn design concepts like hierarchy, line, typography, color theory, etc. You learn information architecture and how to present only what the user needs to see at a given time to them. You learn how to structure a large application through MVC, MVP, component trees, etc. You learn how to keep it responsive and low-latency. You learn concurrency and how to deal with user interactions that may occur in the middle of your app doing something. You learn animation and motion design. You learn security, input validation, never to trust user input, and how to design the UI so that invalid inputs aren't even possible.
Those are widely transferrable skills. As long as there are computers and people who use them, we'll need to figure out how to interface between them. And as more fundamental CS concepts become available to mainstream, non-tech-savvy users, the need for frontend engineering skills only becomes greater (witness companies like GitHub, DropBox, and Twitter, which are based upon bringing UNIX utilities that have existed for 40 years to mainstream audiences).
I loved my compiler design and machine architecture courses, but demand for those skills is very specialized, and you have to be very good at it to get a job doing them. I'm actually one of the lucky ones who has used my compiler skills in a large corporation, but honestly frontend engineering has opened up many, many more doors for me.
To play devil's advocate: What if the next mainstream computing interface has next-to-no need for any visuals? In other words, do you think point-and-click and/or touch interfaces will be as prominent in 10 years as they are now? I can't imagine that computing applications will always interface visually - seems inefficient.
I also think that computer interfaces will retain some visual component at least for the foreseeable future, because humans are predominantly visual creatures. There are some situations where this isn't appropriate - eg. while driving a car - but when you have the user's full attention, it's usually fastest to present information visually.
I think that a lot of the changes might be in the form of refinements or new UI models. Mobile has opened up a whole bunch of new UI metaphors - scrolling is much more important, with things like pull-to-refresh and sticky toolbars, and it's now customary to stick all links and navigation options behind a NavigationDrawer - but they didn't fundamentally change what being a FE-SWE is about. It's more like these are new UI widgets that can be used to build a better experience on smaller screens. Things like cameras and accelerometers do change some of the paradigms behind frontend engineering (I bet OCR and physics will become much more important in the near future), but so far they're being used as subroutines you call out to.
As long as you have access to enough of the market that open-minded employers are competing for your work, I believe that this wouldn't harm your salary or propsects in a meaningful way.
I loved my college experience and I found that network I built was awesome. If I were to do it again though I would probably go to CC for two years then transfer to the college of my choice to offset the cost.
I would also look for freelance/part-time remote work during my time throughout my college career.
If you don't go to college, you won't get college experiences. Trust me, college experiences are some of the best in life.
If you go to a super expensive school and don't work, really depends on how much money mommy and daddy got, plus you don't want to be they guy who shows up for a Web Dev position with all your fun algorithmic theories but you hand code new functionality like a chump.
Either way, you'll be fine if you're typing if-then statements but get some life experience, too, or else you'll just be a nerd with no stories, aka lonely.
I am speaking from experience, that is what I did. I never had to take any loans and thus graduated with zero debt.
This advice is specific to your situation and not my general advice:
If your assessment is accurate, and if you have options in the job market (you are not tied to a single generous employer, say), I would recommend you don't take a degree.
A degree is going to put you perhaps $300k (1 house) and several years in the hole. It's not obvious that you'll then have better access to the job market than you have now. It's even possible you would have worse access. For most employers, practical experience of work they need trumps college classes.
There is absolutely nothing stopping you from taking a degree later or taking one part-time if you decide that it's relevant to you.
As a final point, you should consider applying for both college and jobs, giving you a clearer choice of your available options.
Let's not be to US-centric. If you look beyond the borders of your country, it's perfectly possible to study at a relatively high-ranked university for a small tuition fee. E.g., the university where I studied in The Netherlands has a rank hovering between 78 and 98 in various ratings (e.g. Times Higher Education World University Rankings). Yearly tuition is Euro 1835 for students from the EU and Euro 7500 for international students.
Then there's also the social factor. University allows you to network with peers, some of which will be very successful and may give you good leads. It's also a good place to meet a life partner and have a good time.
Now, if you're confident enough in your current talents, strike out into the workforce and earn what you can until you (A) can pay cash (yes, cash) for that degree, and (B) you can figure out where that cash will be best spent. You can also persuade some employers to pay for the degree, saving you a bundle.
Whatever you do, don't go into debt for it. Cash only. For everything, not just a degree.
You may want to consider if you can do better than that. My Bachelor's and Master's are from Michigan State University. There is little (though not quite zero) evidence to suggest that there are radically better programs out there, because so much of what you get out of a college depends on you. (I wish I'd done better, I certainly could have done worse. But I can definitely attest that top-tier != awesome skills; I've given interviews that are definite counterexamples.) Double check, because some state university programs do seem to be wastes of time, but by no means all of them.
College is an easy, but expensive, way to acquire certain skills that, yes, will indeed future-proof your career. It is easy in that you will be guided through a useful course of study; it is expensive in that it requires not only some money, but also a lot of time.
One way to resolve the matter is to try your best to work with a counselor to up the quality of what courses you take. While this is poorly advertised, a degree is ultimately a certification from the certifying body that you have completed their minimal course of study. The set of requirements they lay out front is their default answer, but they can give others. While they will probably be inflexible on the number of requisite credit hours, they're often quite flexible in terms of what those credit hours can really be, and in particular they can be quite flexible in terms of substituting harder courses for easier ones. Consider trying to skip over the intro courses, as that will particularly open up the more advanced tier earlier. Much of the real value of a college degree is in the higher level courses; if you can get there faster, go for it.
I'd honestly think about a dozen times about taking on $50,000-$100,000 in debt right now if that's really the only choice you can find, though. That's frankly catastrophic levels of debt at the beginning of a career. One nice thing about the computer career path is that you will be able to handle it, but even so it's a burden, and if you have any sort of life hiccup this level of debt can become a big problem. I'd seriously consider grabbing a job, doing my best to pocket as much cash as possible, and wait for the post-bubble-pop to get your formal education (taking the previous paragraph even more fully to heart at that point). You may also discover that you do indeed have the discipline to pick up the harder stuff on your own. (The touchstone for that, IMHO, is whether you can teach yourself how to build a compiler; if you can do that, you can probably self-educate just fine.) It's hard to be sure when and if the bubble will pop, so it's a risk, but at this point, so is taking on that amount of debt. Alas, there are no non-risk choices.
So, no quick & easy answers. I'd be suspicious of anyone in this thread who offers one. But the question becomes much easier if you can work out a way to take on substantially less debt, though.
Do what I did and have it both ways: take a gap year before starting college. I was accepted to MIT's class of 2016 but I won't be joining until the class of 2018 (this coming fall) because I joined a startup in San Francisco. If you're as good as you say you are you'll be able to get a job, and most universities allow gap years without a problem.
> On balance, do you think pursuing a degree will be more lucrative in the long run?
Yes. There are also many other reasons to go to college. Let me know if you have any particular questions or if there's some way I can help.
EDIT: Let me recommend a gap year again for a different reason: it lets you put off your decision until you know more about working in the real world. It would be easy to decide to continue working after your gap year and never go to school. It also provides a nice "hedge" against the real world — if you end up disliking your job, it could never be more than a year before you head off to school.
> Yes.
Do you have good evidence for this? I've seen data that says that each year of post-high school education correlates with a ~8% bump in salary, but I am doubtful that this is a causal effect.
If the OP wants to make money, spending time becoming one of the best persons at some subset of front-end engineering is almost certainly more lucrative and more easily doable outside of a university. Alex Maccaw (http://alexmaccaw.com) is a good example of this.
Paying $50k for a college degree in computer science is ludicrous. Most of the people here who are telling you to do so are probably more interested in retaining the value of their own investment, by influencing the next generation to make the same decision. If there's value in having a college degree - your employer will reimburse you for tuition expenses. If they refuse to do so, it's a tacit admission that the value it adds to your output is worthless to them.
(source: Front-end dev for 5+ years)
I do think which school you can go to affects the outcome. I understand that application season is over, but hopefully you've applied to many need-blind schools that are in the top-50 where you wouldn't have to take out any loans.
It's also a great way to seed your life-long personal network in a different way. A lot of your college buddies will go onto diverse fields, and together you will spot many connections between them and pursue those. This can be very lucrative as well.
College, besides the learning, teaches you things you didn't know you needed to understand. It often changes you as a person - It's not only that you now know more answers, it affects what types of questions you ask.
It's all a fad
The more "high level", the more a fad it is. Nobody is going to remember coffeescript in 10 years, maybe 5.
"Front end development"? Let me tell you something, I bough a book about HTML in 2007. This book is basically worthless today. Sure, for someone who has never studied it is it useful. But things change. How much was IE6 knowledge 3 years ago? How much it is today?
College won't teach you about the latest features of Windows 8, or Mac OS. It will teach you how and why things happen the way they happen.
And that's "timeless". Considering most of it was invented in the 70s and still apply.
Why are you so eager to jump into the 9-5?
Will you be better at your job? Yes. Because you'll learn abstract concepts that you can apply to learn 'new things' more quickly and understand them more deeply.
If it's about the money you need to pay for college: Would you be willing to study abroad? I'm studying Computer Science in Germany and pay about 250€ ($350) per semester (incl. access to public transportation but of course without rent, food, etc).
You will be able to explore opportunities (should you want to) that you wont be able to explore without a degree. Thats just the truth right now.
So if you are sure you are okay with the limitations, then eschew college.
But realise that 3 years is a relatively short amount of time. It will pass before you know it and would do your future no harm.
Plus you can work in college. I do/did it.