Ask HN: Should I go to college?

6 points by robotkilla ↗ HN
I'm in my mid 30s. I've been working professionally as a web developer for the last 13~ years, 4~ of which have been fully remote as a contractor. I can program in multiple languages (including Javascript, Python, PHP... and i'm currently teaching myself c# and cg as video game dev is a hobby of mine).

Prior to becoming a contractor I had around 10 years of solid on the job work experience.

My goal for the immediate future is to continue working as a contractor and self educating, however I'm 34 years old and I want to make sure that I'm making the right moves for the future.

I went to college (for design) back when I was 19 - 21 and dropped out with one credit left and started working for a small web development shop (I had been programming on and off since I was 9 years old). I've never had a computer science course. Everything I know has been completely self taught or picked up from coworkers on the job.

I have been told by my grandfather that I should attend college for computer science, but I feel like this might slow me down. I'm hoping I can get some good feedback here. Is college a good idea for someone in my position? What benefits or drawbacks will it bring?

A bit more background:

* I have never been to school (100% homeschooled until my brief college years).

* I do have some gaps in my knowledge however I typically find myself surpassing others in certain areas (in other words, I feel the lack of college from time to time, but for the most part I have kept up or even passed other people).

* I want to make independent video games for a living (I have been teaching myself C#, CG, Unity, Pygame, 3d techniques, pixel art, and brushing up on my math for the last 2 years) - would going to college slow me down on my endeavours at this point or would it equip me with the skills I need to actually finish a game?

19 comments

[ 2.6 ms ] story [ 51.5 ms ] thread
I have a masters degree and have been a developer for more than 10 years now. I really don't see what a successful professionals with 13 years of experience could learn in college.

It s unclear from your post why you even feel the need to go back. Have you been denied position because you didn't have a degree? Is it because you want to learn more?

It isn't that I do want to go back, its that I'm trying to determine if the advice of my grandfather (and a few other people) is something I should follow.

I don't really see what I will gain from it either, but like I said I've never had a computer science course so I'm not sure if I'm missing out.

You sound exactly like me - same age, same skill set, same people telling you to goto college.

I prefer a full time steady job (and have one) but if your happy with contract work - great!

Every programmer needs to continue to expand they're knowledge - it's a constant learning process. For the longest time I relied soly on systems administration and PHP - I've expanded into Objective C and AngularJS most recently - trying to teach myself React now as JS frameworks seam to be the "wave of the future"

An example I always give and especially remind my godson who's 16:

My wife is a very bright person - went to a private school for high school, full ride. She then went to a great college, full ride also graduated with a 3.9 and magna cum laude in Phycology. Wanna know the job she held after she graduated from college and for 9 years after that? Secretary.

That's not to put my wife down; it's to explain that regardless of your education, it's all about your drive and motivation. Some people goto college and don't do much with it. Some of us didn't goto college; work our asses off and succeed anyways (I make more then both my brother and sister who both went to college and got they're MBA's)

Work hard; focus on your goal and don't worry about the degree.

(my wife is now back in school for dental hygiene - still with a 3.9 gpa)

Thanks for the feedback. I didn't want to sway the question with too many of my own opinions but I have been feeling the same way.

The biggest hurdle I've faced is that of proving my worth to others. Have you faced similar issues?

Fortunately it hasn't been a problem in the last couple years, but I can absolutely remember a time when I had to "prove" myself.

A great resume is key as well as a portfolio site. I always bring my laptop to an interview incase they want to see code; I always make sure I have examples on my portfolio site that are up to date and have to do with the job I'm applying for, etc...

What was funny - my 2nd last job - they need a Wordpress developer and although I'm damn good with PHP, I hated Wordpress - so the weekend of the interview (interview was on monday) I spent about a day reading the WP docs and built a website on my portfolio site with a custom theme, custom plugin, made it responsive, etc... (stuff they would expect) - showed it to them during the interview and got the job (I like to think it helped) - it didn't come out until months later that I learned WP in a weekend (roughly) and everyone was pretty impressed.

My current job - they were looking for a very specific skill set (Rackspace Cloud administration) and actually were more impressed with one of my side projects then any job I held. So you never know what someone is looking for - could be professional experience, could be a side project.

Things seem to have shifted on my end as of late. People are very skeptical when if I'm interviewing for a job, more than in the past (I tried recently a few times when work dried up bombed on the interview processes a few times... i have comments about it in my history).

I need to get my resume cleaned up and put together a new portfolio site.

I'm starting to become disinterested in full time gainful enslavement. Three reasons I keep contracting:

1. freedom (i make my own hours and jump between contracts every 3 months or so, taking a short break between... usually around a week). When I do work, I only take on fully remote contracts.

2. my "interviews" consist of asking how much I charge, asking what my availability is, asking a few simple tech questions, and then having me sign a contract. That's because I get my work through recommendations from other people so I no longer have a need to prove myself on this front.

3. i make more money than when i was employed.

I will take the point of view of someone who went to college. Actually I just graduated from my 5th year(I think it's master degree) and going to PhD in computer science. To understand what I want to explain, you need to know that I began college with 3 years of biology, and then switch to computer science. It is only in my 3rd year that I realised how much I loved computer science. I worked my ass off to get directly from 3rd year of biology to 4th year of computer science, so I basically learnt everything by myself too. In the end, I felt that every "practical" classes were pointless. I don't need someone to learn a new language, and it seems you don't either. But it is when I tried some theoretical courses that I realized how much I had to learn in this domain.

I never learnt anything about advanced algorithmic, or graph theory before, or language semantics. But in the end, by knowing all that I really look at a problem with a different point of view than before. I am able to imagine some new tricky algorithm etc.

All of that to say : It depends on what you seek going to college. You will be bored if it's just learning some new language, because you either know them already, or you will go faster than the course. But if you want to learn some more theoretical knowledge, you will learn some new stuff for sure. Then again, I don't know where you live, and college might be quite expensive in some country, so I can't tell if it's really worth the money (since you already have some years as a developper). But it is totally worth the time imo.

Thank you very much for this feedback.

> . But it is when I tried some theoretical courses that I realized how much I had to learn in this domain.

> I never learnt anything about advanced algorithmic, or graph theory before, or language semantics. But in the end, by knowing all that I really look at a problem with a different point of view than before. I am able to imagine some new tricky algorithm etc.

This is exactly what I have found myself going through since making an attempt to switch to 3d video game development. Specifically with the game I'm currently building and some other things I've wanted to get involved with (I've taken an interest in AI lately... like everyone else). I can see how having more math in my past would help greatly.

That said I've been studying algorithms and supplementing my math with books from the library. I also have a list of bookmarks to various CS courses. I just need to block out time and watch them.

I think it's good advice to get a degree in general. I would think about testing out taking a CS course and see if you enjoy it and is something you like. You'll never regret having a degree. That said at this point in your career I'm not sure how many more doors it will open for you and you'll have to weigh the time spent vs knowledge gained. Another option is maybe a BS in Science in something other than CS that you could do online that would take less time/focus, but CS would probably be the best fit for your skill set and future employment.

Grandparents are great and have lots of knowledge. The employment landscape has changed though, previously a degree was a ticket to a secure corporate gig till retirement. Now you have companies laying off employees in their 40s to hire lower cost employees, benefits are being reduced, etc. So I don't see a corporate gig as more secure than contracting or freelancing. Another option is to focus on leveling up to increase your salary/savings. Your grandfather would probably feel a lot better if he knows you have the skills to obtain contract employment easily and are making $50+/hr as a contractor. So maybe share how much you're making and that you have multiple offers when you are ready for a new contract position.

I would recommend leveling up to increase your earning power vs. a CS degree, unless it's something you would enjoy/want to have personally.

I don't think you'll learn video game development at university. That's something you would learn on your own making games.

Check out the startups for the rest of us podcast. It has good information on planning for your own products/businesses while working your day/contractor job . . . most of this will apply to making the leap to independent video game developer.

I would say open your options up . . . success in independent video games (Notch/Minecraft) is a bit like a lottery ticket. So this might be something you strive for but realize it might turn in to a nice hobby or niche with a small following with a chance of a billion dollar payoff or maybe a fulltime income or maybe just something you do for fun/side income.

You probably don't want to do contract work forever. So plan to launch your own products, maybe a SaaS app, some type of recurring revenue so you don't have to chase contracts/projects full time. This could also help give you more time to learn/run your independent video game development studio.

Check out everything by patio11 (lots of great articles/advice), http://startupsfortherestofus.com podcast (and previous microconf videos) and Amy Hoy's stacking the bricks video.

Good luck with the direction you go.

Good luck sounds like you're on the right track.

These comments are a big relief.

All except these:

> laying off employees in their 40s

> hire lower cost

which raises the question: what should a 34 year old developer be planning to do by time he is in his 40s? I'm realizing now that this might be the crux of my situation.

I wouldn't worry too much . . . just keep it in mind . . . the future is filled with all sorts of unknowns . . . not 100% of developers will get laid off/replaced by cheaper labor but it's a possibility (Disney, CA Power company, in the news recently).

I'd recommend exploring having your own product/app/business if that interests you vs. depending on a company long term.

But lots of changes are going to come about in the next 10 to 15 year. Automation . . . interstate trucking, uber cars, garbage trucks, restaurants, this will eliminate a lot of jobs and businesses that provide services (truck stops, etc). So being a developer your job is more secure than a lot of careers that are going to be going through major changes.

Don't fear, worry about change, just be prepared/ready.

If you're talented I expect you can be a contract developer for as long as you want. But explore other options/opportunities.

There are developer jobs out there for 40+ year-olds. I worked with a developer who was 70+ for a little over a year. What some people do is they move to tech management positions such as CTO, programming manager, or work as software architects. That really depends on what you enjoy doing thou.
There is no right answer. A college degree, in CS or anything else basically can provide three things: the college experience, vocational skills, social validation, and personal enrichment.[1]

Anyway, how these suss out for a particular individual at a particular point in their life varies. In the question, social validation and vocational skills are explicit. Personal enrichment feels implicit in the overall structure, by which I mean that there's a bit of "I wonder what I might learn if I took this risk" lurking breath the surface. If there weren't there would be little reason for a long question.

Your grandfather said what he said to give you permission to do something that is locally suboptimal and entails social risk. That's about as good as a grandfather can grandfather. Maybe you can talk some more with him. Probably worth doing regardless.

Good luck.

[1]: a college degree can provide FOUR things...

It sounds like you are perfectly capable of learning technologies on your own, and that your primary concern is having a degree as opposed to an education.

Have you considered going for a bachelors in a non-technical field like economics, or business administration, or engineering management?

Any bachelors degree and your work experience would probably be enough to get your foot in the door of any company if you wanted to step away from contracting and go for a corporate job.

Personal prejudice: I'd be very reluctant to give up earnings while in college, particularly as you're already very viable.

In tech, college is mostly a learning experience and certificate program for entry level workers. You're not entry level.

Just to share: In my 20+ yr career no employer actually asked for any proof of degree. Whatever I have written on my resume was fine with 100% of employers.

They (rightfully so) care about my ability to deliver stuff vs. stuff printed on some paper.

Exclusions from this rule:

- Really large enterprises usually hire some sort of background verification services that would annoy you to no end to provide all kinds of proofs.

- US Immigration (to get TN or other working visa) does ask for proofs of your degrees.

I'm a relatively new developer at 33, with about 2 years of experience now. I was in a different industry for 12 years, but always wanted to be a dev. I dropped out of CS about 13 years ago after I chose a bad (for profit) school that I didn't enjoy. I enrolled in a local state school a couple months before getting the job I have now. I'm half way through my degree, working full time and going to school about half time (6-9 credits per semester). I don't know if I would reccomend it or not. I only went back because I needed to take concrete steps to get myself on the career path I wanted. Now that I'm in it, it's a bit of a struggle to stay motivated for school.

Pros:

-I'll have a degree at some point and will no longer have to have awkward conversations about why I don't have a degree. This is probably the #1 reason I'm doing it.

-It removes a way for employers to filter me without seriously considering me as a candidate.

-I'll be proud of my accomplishment at some point and won't feel bad every time I think about my relationship with college.

Cons:

-Money. At a local state school, nothing crazy, I'll be about $35k in debt by the end of it with plenty of up front costs (books, etc).

-Time. It eats an incredible amount of time. Some classes require an hour or so of study time outside of class, but many require a ton. Depending on how polished your math skills are, you'll have a huge wall to climb here. I hadn't been in a math class in 13 years and then get tossed into calculus. Yowch. In addition to 5 or so hours of class time, I probably put in 10 hours a week of studying/homework just for that one course.

-Scheduling. Your scheduling needs might be different, but I work a pretty standard workday of 9-5. The university's latest CS courses start at 5:30 two days a week, which means if I am taking two CS courses simultaneously, I'm in class four nights a week. That means studying has to happen on virtually every off night. It also makes it very tough to take more than 2 classes at a time. Keeping a decent pace is key to actually finishing in a reasonable time. It'll probably take me 5 years total to get through it all.

-Content. The actual courses will drive you crazy. Professor's requirements are usually a clinic in what not to do in the real world. Your good habits will be punished in many circumstances. About half way through, I can't say I've learned anything invaluable that I couldn't have learned better on my own if I were sufficiently motivated. I'm hoping the upper class courses are more interesting, but so far it's been a bust.

-Bandwidth. You only have so many hours in a day. You'll be spending your time on things you have to learn instead of the things you WANT to learn. I'd love to spend my evenings getting more proficient with modern tech, but instead I find myself reading about anthropology or the like. My university is very Java/C/C++ heavy, which is not what I prefer. I'm happy to learn these things, but I don't see myself ever being a happy Java dev professionally.

So there are a lot more cons than there are pros for me, but I think the pros are still worth it. I'll let you know in a couple years. If you're looking to be indy dev, I doubt a college degree will help you get where you want to go. I'd spend that time and effort on a project of your own. By the end of it, you'll have demonstrable skills and a product you can show off.

(comment deleted)
I did 3.5 years of Mechanical Engineering, but I realized that what I really love is programming...

So I changed to a CS course, but I did just 1 semester and dropped out... The educational model nowadays have countless problems.

For that reason, I created this list, for those (like me) that want to have the knowledge offered in a CS course, but without spending too much time/money.

https://github.com/ericdouglas/computer-science-and-engineer...