> I'm trying to decide between enrolling in college to pursue a BS in Computer Science or entering directly into the workforce.
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.
If you can access $60k jobs after leaving high school, then pursuing a full-time degree will cost you at least 3x$60k + tuition.
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.
If your experience is as good as you claim, you should have zero issues going to college and working part time at decently well paying job.
I am speaking from experience, that is what I did. I never had to take any loans and thus graduated with zero debt.
On balance, it will probably be better for you in the long run. I am a high school and college dropout, and nearly as old as dirt. I am entirely self-taught with computers, with no academic credentials. I didn't even take CS courses while in college. I am not a failure career-wise, but I believe that a CS, EE, or similar degree, in hind-sight, would have helped me.
There's 3 main reasons for this:
1) there is a lot of conceptual and algorithm stuff that is drummed into people at school that, while possible to learn on one's own, requires time and effort. If I had time to study Knuth in depth, I would love to do so. This subject matter is very often useful--in hindsight, this is my biggest regret for not having studied CS, because there are gaps in my knowledge that would have been easy to fill had I been studying these things long ago.
2) while employers generally do not require a CS degree, it is very often that their employment screening steps will filter you out if you cannot regurgitate much of the stuff described in step 1: algorithms and coding styles taught in college, the way that colleges teach them. No matter how much PR a company claims for itself in looking for intelligence, creativity, and experience, if you haven't internalized the textbook stuff, then you'll frequently get filtered out of interview process quite early. You'll still be able to get jobs, but just not likely the ones with the biggest marquee names with the highest candidate:opening ratio.
3. If you want to do a startup, you'll want to be in the vicinity of people who also want to do a startup. That's much easier when you're in college, and you get looked upon favorably if you come from a prestigious institution. Seed and angel investors like throwing cash at pairs of kids from good schools who can make something that seems useful and is in a hot space.
So, yes, go to college. Study CS, math and also some business stuff like econ. Avoid humanities like plague.
Front-end engineering is a tiny proportion of computer science (ie not covered in a general curriculum at all), so I'd say it depends if you want the depth of more front-end experience putting you even further ahead of your peers or the depth of a huge range of CS subjects, mostly close to useless for your standard front-end engineering role.
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.
No, don't bother. Maybe later in your life if you've got nothing better to do. If you can't find your $60k+ job, then college can be a good economic buffer (living off loan money) until you do.
If you're already questioning it, you're probably going to be questioning it every year of school whether you should drop out or keep going. This could lead to misery, especially if you lose interest in what the school is teaching. The networking benefit of school is overrated; networking with other professionals is better than networking with other students. (You can also more easily get around degree requirements if you're getting a job at a company where someone you know already works there.) The 'variety of topics' at schools is overrated too; you can get such a broader knowledge of things in your spare time, and as another commenter mentioned front-end dev is rarely covered at all in a CS degree and you can learn so many other things not covered just from doing your job.
I would recommend actually learning about the material covered in a CS degree in your spare time. Use your job money to buy a few books -- if you don't know what to buy, many schools have a required/suggested book list organized by course. Two I'd recommend are Pike and Kernighan's The Practice of Programming and Skiena's The algorithm design manual, the latter of which goes over enough CS that if you ever wanted a "Software Engineer" job instead of front-end work you would be able to handle most any technical interview question.
I'd say apply now before it is to late (if you haven't already), attempt to get a job during the summer for what you think you can ($60,000-80,000 may be iffy unless you have access to more progressive companies) and if you can't: go to school.
If 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.
Tough question to answer without knowing more about you.
Graduating high school and going directly into industry will give you some real world experience. Professional development is very different from hobby development. Professional development means accepting projects and technologies that may be of no interest to you but the company needs them. If you're doing in-house IT development, you may spend a large part of your time doing systems analysis, operations, and support work. Your employer isn't truly concerned about your trying new technologies; it wants people who support its own technologies and that's where you'll be focused.
Gauging your interest in these compromises, before committing 4 years and $75K for example, will save you a lot of frustration later on.
Depending on your employer, you may be able to get the company to foot some of the bill if you decide to go the college route later.
On the other hand, college has several positive sides. You get to experiment and fail with little consequence. (Largely, the ability to fail and learn has been driven out of the office place since I started 23 years ago.) You get to network with others around your age who have an interest in the field. You can study other subjects that may/may not help you in the field but they interest you anyway. Lastly, you have the degree to build on in case you want to do more advanced study later in life.
My caution is not to make your decision based on fear. You will do well either way so long as you work hard and stay curious. Just be aware of the trade offs.
Good luck.
If the question is which option will be more lucrative over your entire lifetime, nobody here or anywhere else will be able to give you an iron clad answer. That said, I can just about promise you that four years of college will expose you to more "stuff" than working as a developer somewhere for four years will, so I'd recommend it for that.
I entered as a freshman who could already program. I wasn't amazing, but I was ok. I liked programming, and had a good intuitive sense for it. What I didn't know before I went was how much I actually didn't know... and I don't mean about programming, although that is part of it. I mean how many interesting subjects there are in CS, some of which turned out to be far more interesting to me than the actual programming.
A university probably isn't the best job training program for a developer, but maybe you'll find out you don't actually want to be a developer? That's what happened to me while I was there and I wouldn't trade finding something I was really passionate about for four years of income.
So my advice would be go if you can, and take advantage of it while you are there. You may get more than a piece of paper or a higher salary out of it.
Work for a year, then go to school. It will measure your skill vs your expectations. It will inform you as to the value in being where you are as opposed to where you think you can be with four years time focused in a few mostly parallel directions. It will ground you in the realities of making money how you can now compared to how you might. It will prepare you for working while in school so you can kill five (or more) birds with one stone. You can get soft working skills at the same time as your actual work skill increases without having to be dedicated to a career.
I can't stress this part enough: Pre-debt expenses amount to what, $2k per month? After you have debt and likely start carrying other expensive things around, you're under more income stress. Income when your expenses are small is highly gratifying. Income when your expenses are large is like a treadmill if it isn't high enough. You will enjoy pre-debt money more than any other money you will ever have until you are out of debt. Might as start life with a breather.
In school, you can change your career much more freely, but you have to intersect back with reality somewhere or else you aren't changing anything. While working, you're too busy working and doing lead generation etc to focus on changing your skill set drastically. Being independent ultimately makes this less of a problem, but doesn't make it go away. The classes that are a waste of time are only a waste of time when you don't pick them well or have no options for a particular semester, in which case you will have a similarly distracting workload, though honestly, once you've worked any crazy time, undergraduate is a f&*@ing joke that most people there (especially at state schools) are simply wanting a crutch to delay the adolescence-adult life transition.
College is a very good opportunity to change cities without getting super committed to a new area and without having to line up work in two places, which you have to do in career world. You have to have runway at point A and somewhat of a a landing at point B. That's a lot of headache and fortune compared to, "Oh cool, so I'll go move to that place and take out X loans."
Meeting people is not a bad side-effect. Out in the mix, you find rarely random people your age of similar life status who you can peer with and never in such large concentrations. People who are out of college in your age group will be of different lives than career folk. Just the truth. You might be egalitarian and non-judgmental, but that doesn't mean you're going to want to feel like your time is better spent elsewhere.
The career I've had for the past 15 years--building websites--did not even exist when I started college.
The world you will live in in your 40s will be radically different than the world you live in today. Education is the best tool you can ever hope to have for coping with that change.
Go to college and make sure you study things you don't like or don't think are important--like literature, or art, or a foreign language. This will force you to get good at learning things, which is the #1 skill you need to thrive over your lifetime. (But being good at writing and analyzing is itself a very useful skill to have.)
If you are worried about the debt load, then do something to mitigate that, specifically. Do the first two years at a community college and then transfer to a university. Or take a couple years to work, and save up your money, then go to school. Or go part time while you work.
But definitely pursue your education. Otherwise you put yourself at the mercy of other people who did.
I have a number of friends in various pockets of the IT industry who do not have four-year degrees.
Of those, the ones that are > 40 wish they had the degree. I suspect they're hitting the upper bound of the career ladder for non-grads at the majority of the corporations in the U.S.
I can't predict the future, so I'm not sure if this limitation will still exist when you're > 40. It's just a factor to consider.
If you can make a comfortable living now, and you have the right self-discipline and temperament, you might consider working and doing school part-time. A Bachelor's will take much longer than four years, but it is doable.
Also, consider that you'll probably be working into your 60s. Why the big hurry to start full-time work at 18?
Just some random things to think about.
Edited to add: When I was younger, my dad told me to do the things now that leave you the most opportunities later. Getting a four-year degree would fall into that category, I think.
I anticipate having to take out between $50,000 and $100,000 in loans to finance a degree.
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.
Why go for four years?
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 by "later in your career" you mean 3-5 years from now or later, if you use your time well, you will have more than the requirements for jobs which usually require a degree "or" 3-5 years industry experience. You have a huge opportunity to go your own way, in a massive field, with plenty of resources to get you where you want to go, alone.
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.
Yes.
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.
I think you should consider going to college. Since you already have a lot of prior experience, it would be better if you try to graduate faster. You can take CLEP exams to test out of GE requirements, as well as get CS-specific courses waived by showing prior experience (I did both of these things). Right now I'm turning 18 but finishing my sophomore year of college.
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.
Let me tell you
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.
I think this is kind of a false dichotomy. If you can find a job right out of highschool in the software industry, you may be able to find a place that has tuition reimbursement for you to take part time classes.
Why $50,000 in loans? How about a state school? You can always get an MS at a private school later.
Getting a job may be easy now, but how about when it is like it was in 2001 or 2008? You will be competing for each job with several others who have a BSCS? That is for jobs that do not explicity require a BSCS. You may also be married with children then. You have the time now and lack financial obligations other than keeping yourself fed.
I know people like John Carmack and Jamie Zawinski are out there, but it very rare to meet someone without a college degree who knows what primitive recursive functions are, or how to design a four number binary adder with logic gates, or the difference between deterministic and nondeterministic pushdown automata and so forth. People without a degree might know all the keywords for a language, but are usually lacking on some abstract theoretical level. Another problem is not just what they do not know, it is what they do not even know that they do not know.
Of course you know your own personal situation better than any one else. But if you can go to school you should. Even two years of learning will help. But some of it is on you, tests and homeworks do not cut it, if you are learning an important subject, sometimes you should spend hours studying beyond what you need to get an A. Or doing independent projects to get some real world grasp of the some theory.
I think you have to ask yourself, "Where will I be in four years in both of these scenarios?" If you choose college, you'll have a degree, some book knowledge, and some debt. If you choose to work, you'll have four years of experience and some money in the bank.
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.
I say both have their pros and cons.
I currenlty work full-time at a startup making $120k+ and I don' have my degree. But I am also finishing up my degree part time.
I got into the industry by doing an internship at Electronic Arts, and being offered to stay full-time, and they knew full well that I didn't have a degree. I learned from some amazing backend engineers and architects, many of which had left EA shortly before I did. I can pretty much go anywhere now without a degree, because the most important thing in the industry is on the job experience.
Though, I think the promise of me taking classes towards a degree helped me a bit. There are a few things I learned from the classes I took that I would have never learned on my own, at least I don't believe i would have. And many are important to my job now. But I am a backend engineer so I feel the theoretical stuff I learned for the CS degree apply more than a frontend engineer.
Overall there are pros and cons to both approaches, but I could completely stop going to school right now and not be affected by it at all.
Another thing you have to take into account is career growth. Many managerial positions aren't easy to get if you don't have a degree of some sort. So you might eventually hit a ceiling with being just a programmer. Unless you get lucky to make your way up somewhere, get the Resume experience and then move.
Its not easy or black & white. But I know both have their pros and cons.
I currently have 0 debt, since I am able to make my $2500 payments per semster at SJSU for partime class load.
But I also have other circumstances, I still live at home, per my father's financial suggestions, saving money for my own house (want to do a 20% down payment). This lets me splurge more than most, still cover school, drive a nice car, and so on. So everyone's circumstances are different, you need to way all your options, all your responsibilities, and what you plan to do short and long term. Then make your decision.
I know I will get my degree in 1-2 years of what I am doing now. SO i will have that damned piece of paper that for the most part will be useless to me until i get into more managerial roles, and even then it probably won't be as useful except get me into the interview.
Sorry for any and all rambling.
Hey OP,
I'm a 19 year old software developer in NYC. I didn't go to college myself, and I was in your position not too long ago, so I think I can offer some helpful advice. First of all, you don't need to go to college to get a job as a software developer, especially if you live in/near a tech hub (NYC, San Fran, Seattle, Austin, etc). However you'll probably be limited to smallish startups, at least until you build up some professional experience. If you're genuinely confident that you can handle a fulltime position now, then I'd suggest just applying to companies near you that you're interested in working for. On the other hand, you could try working for one or two companies as an intern over the next few months. This is what I did, and although it was difficult getting paid very little (or nothing) at times, it was worth it because I was able to leverage my experience for a fulltime position. Either way I'd suggest creating a nice resume for yourself and putting up some code on github. This will go a long way towards making you look 'professional'.
It's true that not going to school will mean that you might miss out on some fundamental CS knowledge, but this doesn't have to be the case. With wikipedia, google, stack overflow, moocs, and online lecture notes/textbooks, you'll have access to the same knowledge as your average undergrad in a state school. With the added benefit of being able to place all this information within a real-life context. You're probably not going to learn as fast as someone immersed in a cs curriculum, but you'll be getting paid an absurd amount of money to learn this stuff, instead of spending the same amount of money.
There are some disadvantages to entering the workforce at such a young age though, nothing major but I thought you should be aware:
- All the girls our age are in college. Literally all of them. It makes dating
very difficult.
- You'll always be 'the young guy' at work. Prepare for endless jokes about
your age.
- A lot of people will probably look down on you for not going to
college. Don't let it get to you, these people don't matter.
- All the girls our age are in college. Think about what this really
means and if you're willing to deal with it. You're probably not going
to meet girls frequently until you're 21. I've repeated this twice for a reason.
- You won't always be able to go to bars after work with coworkers.
Nonetheless, being a fulltime developer is awesome. I've got zero debt, I get
paid an absurd amount of money, and I love my job. Good luck dude.P.S: Learn Emacs. It's awesome.
You can also get a job first and then get a degree later. You can even study while working (which is difficult, but possible). I did a combination of both to get my CS degree. (Not in the US though).
Having been on both sides of this (getting my first software job at 15, before I had a degree, though with some exposure to theoretical computer science) I would say the knowledge you gain from a good CS program is important. While it is possible to acquire that knowledge without going through a formal program (and more so today) most people don't have the discipline required to do so.
In terms of employability, if you are very good and you have experience I wouldn't anticipate an issue even at tough economic times. There are still advantages to having a degree (e.g. if you're a Canadian who wants to work in the US without a degree good luck getting TN status). If you are not very good the degree can make the difference (and very likely it'll also make you better).
Lastly, "front-end" engineering is just the latest incarnation of the same engineering we've been doing for decades. Just because your code runs in the browser doesn't make it any different. As other people have noted these things will keep changing but the principles don't.
You absolutely should attend college. (But there's nothing wrong with taking a gap year first.)
The difference is between thinking about the now and the rest of your life. It's true that you'll probably draw a good salary from a front-end development job; you'll also keep up to date with technologies for quite some time. However, a degree, for better or for worse, is a gatekeeper for a great many things, which are very likely to be helpful later on.
If you're truly interested in these technologies, it's not like you'll lose your skills: you're very likely to keep working on front-end web development throughout your college career. But you'll also be earning a signal that you're a long-term thinker with a rounded education who can think strategically. $60-80k may seem like a great salary now, but eventually you'll be thinking about how to grow from that. Having a degree opens up many more positions to you, but also increases your surface area for new experiences, opportunities and ideas. In turn, that will open up your opportunities for freedom, self-determination, and simply making a larger impact in your field.
Hopefully, you can get scholarships to help with those college fees, but either way, because you can command a high salary as a developer, you'll be able to pay them off. They're worth it.
Gap years are good, though - I wish I'd taken one - and may help clarify your decision.
Finally, regarding those fees (and increasing your opportunity for new experiences), don't forget that you can go to college outside of the US.
I'm what you would call a 'front-end' engineer. Senior front-end developer is my current title, though I'm quite capable of full-stack development. I make $103,000 annually and do not have a college degree. There has never been a job that denied me due to lack of education because I've been able to prove myself and my abilities. Going to college is a great resume boost, but has had no bearing on my career thus far.
(source: Front-end dev for 5+ years)
>I anticipate being able to acquire a moderately well-paying ($60,000 to $80,000+) development job after leaving high school.
I think you need to be more realistic about your expectations. If you have no prior work experience you'll have a hard time finding someone to take a chance on you much less pay you 6k a month. Statistically speaking highschool graduates earn less on average than those with bachelors or associates. If you don't have a bachelors you will need at least fours years of full time experience as a front-end dev to compensate.
My first job after I earned my bachelors was as a front end developer and I was only making 4k a month (in Minnesota circa 2012) however it took me 8 months of searching (i think i cold called/submitted resumes to 50+ companies) and enlisting the help of two separate creative recruiting agencies as well as other individual recruiters who contacted me through sites like monster etc. It took that many people to help me find a job even when I had a 4 year degree from a school with a name that carried weight in the local community.
I tested the waters in SF as well by sending resumes to a few startups and I got a call one day from a recruiter. He went on to tell me that he really liked my design work and that I had a good eye for it but unfortunately my resume was simply too lacking in experience and no one was going to even consider me without 2-3 years of full time experience. He was really cool about it, taking the time out of his day to help me level me expectations as well as giving me some advice.
My suggestion would be to pursue a degree, even if it's just an associates. It would really be a shame to be denied a promotion so late in your career because you don't have a degree.
The two things aren't necessarily mutually exclusive. Though it's extremely difficult to get a degree while working (and cash-flowing the whole thing, not going into debt), it's the route that I chose via an online school. In reality, it meant going to school closer to 6 years rather than 4 for a degree, but I will be graduating in May and already have a job that makes nearly $100k a year, with no student loan debt. If you have the ability, skill, and discipline to do both at the same time, I wouldn't entirely suggest against it. (More companies are open to developers that are seeking a degree than those that simply don't have it as well)
I won't lie...it is tough, particularly with a family. But I think in a way it gives you both the practical viewpoint and the theoretical viewpoints of programming both together.
Also, school doesn't have to cost 50-100k...unless you get into a top 10 school and are favored, it may not be worth it to go to such an expensive school.
If you're already good at development though, I think that getting the experience is more lucrative, but the degree more rewarding.
There may be a way, depending on your exact situation, to both reduce the need for loans, and still do college... it depends on motivation and your level of discipline.
1. Use exams such as CLEP to be able to bypass certain intro courses. In such cases, you could enter university with 10% or so of the required credits to graduate, "in the bag" on your first day of classes.
2. You may be able to find an employer that will take you on, and, pay for some or all of your schooling. A bit more of a long shot; and, you would be taking longer to complete a degree, as well as having to give up some evenings due to classes being taught at night.
3. I would suggest up-front, that you expect or anticipate being disappointed with some parts of your university experience.
Bluntly, most students will not have the drive or the intellectual curiosity you exhibit. Some of them will treat school as 4 years of partying, chasing women, and drinking or doing recreational drugs, and have an attitude of "I need to go to college to get my ticket punched".
4. Your internships might be a good source of contacts - most people are willing to help out with advice, especially if they have worked with you before and respect your work ethic. That can pay off in recommendation letters, suggestions for scholarships, etc.
5. You should try to clarify your goals, if you do decide to attend - what are some of the skills and capabilities that you should retain after you leave? Perhaps there are "soft skills" you can learn, like speaking in front of people with confidence, giving presentations to a group; and "hard skills" like mathematics or even some basics in electrical engineering, chemistry, etc.
I would suggest that you try as much as possible to avoid debt, especially since student debt is not able to be discharged, even in bankruptcy (most of the time).
Yes. The point of a degree is to ensure you learn enough about the right content/concepts without proceeding with gaping/gratuitous hold in your education. Self-taught certainly can work, but better that you have dozens of well-informed experts review every aspect of what you need to know. A degree also assures employers of the breadth & depth of your knowledge without having to deeply examine you themselves. Yes, the process isn't perfect, but it's better than the gross ignorance I've seen in some surprisingly well-placed people.
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.
If you have the discipline to teach yourself front-end engineering in high school, you have the discipline to teach yourself anything in realm of applied computer science. Github has replaced the college degree in this field, and differentiating yourself from the rest of the competition is pretty easy to do if you stick to a meaningful path of self-improvement.
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.
Don't go to an expensive school. Second, work while you go to school. Lastly, you don't have to finish and get the degree, just get the foundations of what you need and a few great connections.
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.
You're getting a lot of good advice in this thread, but here is something else to consider: you may feel committed to front-end engineering now, but have the wisdom to understand that you are young and have a lot of new experiences ahead of you. When I graduated high school, I made the decision to go straight into the workforce as you are considering doing. I had no trouble finding work. (Though I second what others are telling you: some avenues WILL be closed to you if you have no college degree -- not all, and not necessarily the ones you want, but some.) What I began to realize, though, is that, as much as I loved coding, I didn't want to structure my life in a way in a way that locked me into one thing so early. Among its many other benefits, college is a great opportunity to take a step back, learn widely, and, at the least, become a more well rounded human being, but quite possibly you will also discover that there is something out there you love more. It's not impossible to change your mind, and go back to college later if you want to. But it's much easier, and you'll have a better experience, if you do it now.
My personal tale, in a nutshell, is that I went to college after a few years working (nothing wrong with taking a few years to try it out, as others have mentioned) and studied philosophy, of all things. Now I'm a telecommunications/media/first amendment lawyer. Life is funny -- and, more to the point, full of surprising possibilities. Don't shut them out.
On another point, you should not have to take out $50-100,000 in loans for college. There are programs out there that are worth that much, but not many. I graduated from a top-tier university with a grand total of $4,500 in debt, without a cent of financial aid. Go to a public school, and work your way through. If you're capable of going straight into the workforce out of high school, you are capable of working your way through a public university as well. If you live in one of the few states with no state university worth going to, move yourself to California, Virginia, Texas, or Michigan. Work for a few years to earn your resident status, then enjoy the wonders of an elite, public-school education.
> 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.
That makes it sound like you are looking at a first tier state school. Have you considered looking into a top private school, like MIT, Stanford, Caltech, Princeton, Harvard, or similar? If you are from a middle class or below family, these schools will offer aid packages that cover most of your costs by grants rather than loans. Even if your family makes quite a bit more than middle class, you should be able to get out of those schools with well under $50k in debt.
If you are going for CS then just stick with a state school education. I regret going to RPI and Harvard and ending up with enormous school loans, but at the time I thought I need to be at a well known school in order to succeed.
If you want to get around the debt, go to a university in Europe. It will require a lot of planning and you should make sure you are up for the culture shock, but you will get a degree without ruining yourself.
Cost of living remains, of course, but University attendance in many non-English speaking countries is (practically) free of charge, even for non-Schengeners.
Here is a list of countries that, to my impression, seems fairly accurate:
http://www.scholars4dev.com/4031/list-of-european-countries-...
Enjoy four years of friends, learning, and not having to work every day. You never know where it will take you, if you decide in two years you hate it you can still get a development job.
Why are you so eager to jump into the 9-5?
The CS degree isn't worth what you'd have to pay for it, but you'll need the knowledge later in your career. Your intuition that "I'm also worried that not pursuing a degree will exclude me from certain well-paying jobs, especially later in my career" is spot-on.
My advice is this: If you have the discipline to take night classes, see if you can pursue the degree part-time while working part-time. Taking one or two classes at a time - especially in CS where you have a bit of experience - should be a breeze.
Lucrative? I don't know, and I don't even care.
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).
Porque no los dos ? (said in annoying taco-commercial voice)
If you can truly get a 60-80K job, then do it and go to school part-time; if you prefer, go to college full-time, and work part-time; if you make 30K, then you can attend college and come out debt-free. You won't be the first or the last person to work while in college.
A degree is very important; both for the education and for the piece of paper; however, it does not have to be full-time, or done in 4 years.
The 4 years of college (3 here in the uk) will open doors for you that may not open otherwise.
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.
If you can really get a 60-80k job out of high school, honestly, you're smart enough to get by without the degree. Seriously. Congrats on being awesome. (or believing you are)
But my advice as someone that didn't do the whole college thing... Go to college.
Go to college for the experience, both academic and personal.
You won't look back 10 years from now thinking "Dammit, I sure am mad at myself for going to college."
Why not seek out a frontend job directly out of high school?
Improve your skills on the job. If you feel like you need a CS degree after a year or two of work, then you can always get one—perhaps then you won't have to take out as much of a loan.
If not for the education, college helps you learn a lot about meshing with people from different backgrounds. It's also a lot easier to get 'a foot in the door' with various companies if your college holds job fairs.
college is about more than money. state colleges will be a better value. community colleges will save you money for the first 2 years. The classes might not even teach you relevant languages and such. A friend needed to take an extra class in .net at a local community college after graduating from OSU. you could also look at doing both, pay for college with moderately well paying job.
I kind of fall in between the two streams of responses here.
On one hand, I feel that most of what I've REALLY learned about CS came after graduation. To be sure, I memorized a lot in school, at least long enough to regurgitate it on tests or briefly apply it in contrived class projects. However, I didn't permanently ABSORB that knowledge until entering the workplace. Working on non-trivial projects, enduring code reviews with very smart senior people, etc.
Perhaps having gone through a CS curriculum left marks on my subconscious, and made it easier to learn in the real world. I don't know. However, I certainly felt like a babe in the woods at my first job after graduation. A CS program did not equip me for the brass tacks I needed as a junior level programmer. By the time I reached the point in my career when I was making design decisions and needed strong CS knowledge, I was years out of school and was learning (or re-learning) those concepts through other means.
On the other hand, I would say that it's foolishly short-sighted to forgo the credential on your resume. It is less important when you're young, and working for startups or small shops. However, with age you will eventually find yourself working for larger and more conservative companies (yes, there are exceptions to the rule, but how many 60-year old coders to you meet at the typical startup?). You simply MUST have a degree in order to get past the H.R. drones in those environments. Hell, this is still OFTEN the case even in small shops.
You can get around this glass ceiling by going into business for yourself. Running your own startup, or consulting practice... building a network, drumming up clients, and bypassing H.R. However, not everyone is made for that life. It's really more of a business career than it is a technical one. Also, what sounds exciting in your 20's might be a completely different story when you're in your 40's with a family... but at that point you're still 20+ years from retirement!
To sum it up, I don't know that you need a degree to be a strong software developer... but it IS a really important credential for the long-haul, which is easier to get under your belt when you're young. I should add that there's NO need to spend $100K or more on this. Although you need a degree to get past many H.R. drones, no one cares where your degree came from (or oftentimes whether you majored in CS even!).
If I were 18-years old now, in today's climate of crazy tuition costs, I would go route of spending two years in community college knocking out my core, and then transfer to a university for my major. Only the university shows up on your resume anyway, and no one cares. At the very least, I would attend a state school rather than a private institution. You might even consider pursuing your degree through night classes, while working by day. That's a PAINFUL lifestyle, but much more doable when you're young and don't have a family yet.
"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."
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 it on-line.
I anticipate having to take out between $50,000 and $100,000 in loans to finance a degree.
I hate to say it, but you've been fucked up the ass. It's not your fault, just when and where you are born. The Boomers stole the future and that's why housing and education are so expensive. The higher education industry has been using its gateway to the middle-class job market as a extortion racket for decades, erecting gigantic buildings while depriving the middle class of savings-- sapping parents of the upper-middle-class and putting the lower-middle aka "working" class (sorry, but that's you, if you're worried about $50-100k of debt) into indentured servitude. It's bullshit, it's horrible, it's wasteful, and it's wrong. It's not at all your fault. But we can't change any of that, now can we?
First of all, yes you should go. I actually think you should aim for Stanford or Harvard if you can pass admissions. I'd advise a state school with a full ride over Harvard with debt, but if you're already going to be in debt, you might as well swing for the fences. The quality of education isn't that much better (variations within schools-- of professor, class, and student quality-- are much greater than those between them) but the connections and brand matter, especially if you want to do Silicon Valley or Wall Street.
Degree snobbery is huge, even in software. People don't admit to it, because it's socially unacceptable-- let's be honest, here; even the supposedly meritocratic game of college admissions is 75% socioeconomic status-- but that's the truth. You might be able to establish yourself in front-end engineering, develop independent credibility, and move forward from there. Might. If the market goes south, you'll be one of the first ones sloughed off. Also, when you're 35-- I'm 30 and age comes quicker than you'd think-- you might get tired of typical software bullshit and want to move into R&D, or go for finance, or to become a founder. All of those are going to want to see degrees, and good ones. (UIUC is good, especially for graduate school. Stanford will open the Valley; Harvard's best if you want Wall Street.) Most R&D labs have PhD Bigotry issues, and Wall Street isn't bigoted per se but is just really competitive and the degree can cut you in.
Here's one thing about degrees. I went to a great but not-that-well-known undergraduate college (Carleton, in MN). I do not have a graduate degree (did one year in a math PhD program, left for Wall Street). Now, to be blunt, I'm smart as fuck and top-5% material (probably top-1%) even in the Harvard, Stanford, MIT pool that is chasing venture funding away. If I need to prove my intelligence, I always can, and it's not hard for me. But it is always better to be presumed smart than to have to prove it. Why? Because impressions are made quickly (120 seconds) and it's really hard (nearly impossible) to prove top-flight intelligence quickly without also being socially unacceptable (or, in clearer terms, sounding smart but full of yourself). Better to have your degree talk you up for you; it can be your career wingman. Degrees fucking matter; don't listen to the people who say otherwise. They're divided between people who don't have elite degrees and are deluding themselves or unaware of the opportunities they're missing, and those who do have the degrees but want to downplay their effect (for obvious reasons).
You may want to work for 2 years and build up some savings and work experience (in light of the $60-80k job, if that's available to you). That can also make you "nontraditional" and it can help you in admissions. You may also want to apply for scholarships in that time. I wouldn't take more than 2 years out of education, though, and only for full-time employment is it socially acceptable (in the US) to take a gap year. Non-work, non-military gap years for Americans scream "upper-middle-class shiftless fuck"-- you know, the idiots who "travel" on their parents' dime to "find themselves" and really just drink and slut it up-- even if you're the opposite of that. But you can justify a work gap year or two by just saying, matter-of-factly, that you needed the money. No one will question you further. People who can pay their way though college, this day in age, are impressive as fuck because that ain't easy.
There are also subjective reasons to go to college. Computer science is a really beautiful field and even I find myself wishing I knew more about it. I won't cover them as much. Some people learn a ton without schooling, others go to impressive schools and learn nothing. That one's more up to you. I think the objective case for getting your degree is much stronger.
Good luck. And read hglaser's post. He says a lot of things I would have included in mine but he already covered them.
Yes.
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.