Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

I'm a 25 year-old former Marine who thought he could take a shot at being a programmer when he exited the military. I never had any background in programming other than being interested in UNIX and Linux at a young age, so CS seemed like the logical choice for someone who had a GI bill to burn.

2 years and a lot of classes later, I'm realizing I'm too old to compete at this gig, and I should have started when I was 12, if I wanted to be taken seriously. The only thing I have any skill in is various computer related things, but not one thing in particular. I've developed a very basic knowledge of C++, but that's laughable really. So I'm stuck, unsure of what it is I should really be doing. I could get a dead-end part time job and continue my schooling, but it seems almost futile at this point. I was denied to the University of Florida, yes the school that recently killed-off their CS department in favor of Football funding. It was the top school in the state, but they wouldn't accept my transfer because I'm only now up to the Calculus 1 and Physics level (rightfully so I guess, that was my mistake). Being that I could only take those classes now, it would probably be another year at least, to get to where I could actually transfer to a real university. The only reason I've been able to do this is because of the GI bill that's been granted to me because of my time in the service, but that's running out and I don't have anything to show for it. Other than a General AA, which probably wasn't worth my time - despite planning ahead.

I keep reading stories and anecdotes about how this field is going, and I'm starting to become very unsure if it's something I need to stick with to prevail, or whether it's already too late. I can't find anyone that will tell me the truth - just those that placate with notions of "you can do anything you're just not trying hard enough," despite my 15 hour course-load. From my perspective it seems like CS is an unattainable feat unless you're fresh out of high school at the age of 17 with several dual-enrolled college courses under your belt. The competition is outrageous. Don't you think I want skills that are worth someone's money?

I read about how people with experience with Java, C++, C, C# and so fourth, at least having the ability to put multiple languages on their resume, can't find employment because they haven't done a formal project or haven't been a part of, and accepted, within the OSS community. This frightens me because my skill level is nowhere near where it needs to be to do this, and I highly doubt how much I can persevere with the time that I have left.

I used to open up my IDE with the prospect of learning new things and freshness being able to develop a more solid understanding of what I thought I could do for a living. While I finish out the courses I'm still in, it would appear now, as I reflect, that I'm only doing it to pass the course now, as my delusions of grandeur have faded.

Edit: Wow. Thanks for all your input. This will give me a better objective view to reassess my path. Again, thanks.



sort by: page size:

I'm not sure I'm ready to get on the Anti-College bandwagon. There's been a rash of Anti-College sentiment around this place lately and while part of me agrees another part of me mourns for all of these students leaving college. I know it may be an unpopular opinion but I doubt most people can get the tools they need for success in many fields (Even software) without a college degree.

I'm in no way making the claim that someone can't be a very very good programmer without college, the best programmer I've ever met left college after 1.5 years, but there's a very real risk of having holes. Some of these holes, despite what people might like to believe, simply aren't going to be filled in the future.

A few holes I've seen in the awesome unschooled programmers I've worked with:

1) Inability to finish. This is a biggy.

2) Deficiency in the "science" part of Computer Science (Algorithms and Theory)

3) A lack of knowledge where the "Liberal Arts" are concerned.

(And Others)

Maybe all of these things aren't important and maybe some of them can be learned later. However, I think people who skip college will be less likely to spend the time and energy necessary to learn these things (In the same way people who put off school for a job are less likely to attend school).

It also seems that the Theory needs to be paired with the Liberal Arts and the competent programmer in order to make a really exceptional programmer.

All that said, I think this backlash is really just the front end of a massive paradigm shift in the way the western world views / does education so we'll just have to wait and see.

EDIT: It seem that leaving college early could be indicative of either a) Already getting everything you could out of it or b) an inability to finish.


Not allow myself to be so spooked by freshman Calculus that I switched to the least-technical major possible (American Studies), and ultimately dropped out of Stanford after two years. Now I'm 12 years in to an accidental career as a software engineer. I often think about going back to get a Computer Science degree, but there isn't any point at this level of seniority; it would just be for the love of learning. That feels like too big of a luxury for a guy nearing 40 with a family.

40 years writing software for a living, dropped out of college after 3 years. I'd taken all the CS that I could, and took graduate level courses my last year because I had run out of other interesting classes. That final year of school just didn't look important compared to getting my dream job at the time (writing games for Atari).

No real regrets, though I had (and still have) a sense of inferiority that drives me to study. Last year I threw out many boxes full of papers that I've read over the years (they're mostly available online now). I have bookcases and bookcases of CS-related material. I've read Knuth, etc. (okay, still going through Vol 4...).

My only regrets are not getting a better math background (a decent calculus-based probability and statistics course would have helped). I took linear algebra in school, but didn't really get it until I started doing graphics and then I needed much more than my college course provided anyway.

Tried going back to school a couple of times. Work always got the better of me. Finally I realized that the degree just wasn't important to myself or my employers, and that I wouldn't learn anything anyway. Lack of a degree has never been a problem when finding a job (except once, and I actually felt pretty good about that one . . . maybe I'll tell the story some day).

I think the key to long-term success (whether you have a degree or not) is continuing self-education. I try to keep up by reading papers and digging into promising new tech. The industry is bigger and moving faster these days, so you have to pick and choose what to stay current on. It's a good idea to branch out anyway (if you read ten papers on storage, networking or graphics, read a couple on something unrelated, like AI or queuing theory or dig into biology or astrophysics -- stretch your head). Helps to do different types of projects, too.

I plan to work until I drop; I feel fantastically lucky to have found a career that I enjoy this much. My father-in-law retired from writing code at age 75, I think I can go longer.


No one will read this because I'm posting so late, but I'll describe my experience:

I was a stats major, emphasis actuarial science. On paper, I was set to go work for some insurance company and make bank.

Except...I couldn't make myself care about it. Done purely for money, that stuff is pretty boring.

No, I didn't drop out. The university did that for me as my grades plummeted.

I'd learned a bit of java, so I applied for a job out of the student paper and ended up working on an application for...wait for it...insurance agents. Exactly what I couldn't make myself care about in school. In Visual Basic.

Having read enough of pg's essays to somehow acquire the impression that I was a Great Hacker destined for startup greatness because I had played around with CL, I quit the insurance software gig to build....video conferencing software! I even found a customer willing to pay me for it. I was clueless and so was he, so we ended up negotiating a fixed-price contract. Cue the tragic cycle of I-didn't-realize-it-would-take-this-long-and-I'm-not-getting-paid enough on the developer's part, and it became a nightmare project that dragged on four months longer than it should have.

Cue some more inexperienced-at-software-and-inexperienced-at-contracting horror stories, and I was kind of sick of being on my own. I found the one cool company in my area and bravado'd my way into an interview. They were everything awesome the insurance company hadn't been: smart people. Great conditions. Clojure and Ruby as main languages. Tufte's Visual Display of Quantitative Information on the coffee table in reception. An engineer cofounder (vs. an insurance agent founder).

And...I wasn't qualified. I'd plugged some libraries together for the videoconferencing thing, and the Rails stuff I'd done on contract was pretty basic. Any my stats knowledge was poor. I'd dropped out!

So I decided to go back to school. Part of the reason I failed so badly in school is because I had a really hard time getting motivated when I could see how sucky most of higher-education is for actual education---many things are quietly optimized toward extracting money from the student's parents, or measuring things for future employers, or compensating for a model with many students and few professors. This is all true, but I can get a loan to attend school, while I can't get a loan to grab a bunch of textbooks and start cranking.

So if someone were thinking of dropping out, I'd say---do it. Absolutely do it. If you're sick of school and can't get motivated, no inspirational talk will cure that, and you'll stumble through half-caring, graduating with either a useless degree (because you didn't learn anything) or failing out like I did.

The only thing that will cure you of that is experience outside of school. That will be what tells you how off-base (or on!) you are. Since I left school my opinions on some portions of it being B.S. have only strengthened. But I have also gained an appreciation for certain parts that I took for granted. So if you leave, be cold-blooded about it. You may hate the system (it deserves it), but it might be useful to you later, so don't burn that bridge if you can help it.


I'll give my personal take as a ex-CS major who dropped out to major in something else (math), tried to escape a career in software development, and ultimately wound up back in it when I saw how much more work and stress the other alternatives were (for me at least).

- Computer science to me sounded way more fun than it actually was. I loved building things and programming, but that's not what CS is. CS is theory. I was bored to tears learning about sorting algorithms and binary search trees.

Same applies to machine learning and AI. The reality of studying it was way less fun than the idea. Even my AI professor acknowledged that.

- As someone who'd always taught myself programming on my own, I didn't see the point in dedicating my 4 years of study to something I felt like I could teach myself. Since there was a good chance I'd probably end up working as a software engineer anyways, I thought it'd be smarter to study something I probably wouldn't otherwise ever teach myself on my own.

- This is rude and shallow, but I didn't like my CS classmates. There was such a disproportionately high amount of weirdos, and I didn't want to be surrounded with those people all day and god forbid become one of them. I vividly remember studying in the CS lounge and having to stop myself from face-palming. If I was a sociable kid it probably wouldn't matter, but as a socially awkward kid it would be too easy to only be surrounded like similar people the rest of my life and never evolve.

- Software engineering seemed boring, just being stuck in a cubicle all day. I did an internship as a programmer, and although it was relatively easy, moderately interesting, and stress-fee, I was terrified of the thought of spending the rest of my life in that cubicle.

- I wanted more money and status. At the time (almost 10 years ago), it seemed that finance was the highest paying and most prestigious field to go into. Finance sounded more exciting, and I liked the idea of their being no ceiling on compensation, whereas software engineering seemed capped at $200k/yr. Of course now things have changed, and tech comp at big corporations tops out at more like $500k/yr (or more if you get equity and win the startup lotto), and tech is way more respected than before. High finance still pays the most, but those jobs are basically limited to Ivy League graduates, the hours are insane, authoritarian work cultures, no remote work, and IMO the work is extremely boring and utterly meaningless, even moreso than software engineering where at least you're actually creating something.

Of course my views nearly a decade since graduating have evolved. I gave in and took on a career in software engineering, which I've attempted to leave at times but always ended up returning (though once I'm financially independent you better believe I'll be gone for good). But at least at the time those were some reasons why I dropped my CS major despite being convinced since high school that that was my calling.


I am a female born in 1983 and have always been deeply interested in computers, but have nonetheless felt inexplicably out of place for it. I was in advanced math classes my entire life and placed out of calculus in college. I took a summer programming class at a different university in 2000 and fell in love with programming. But when I got back to school, I took another CS class that was exactly as described in this article. I can't quite articulate the feelings of isolation and frustration I felt in that class, but they were strong enough to drive me away from CS and engineering for a long time.

I have a History degree.


Italian major CS minor here: Not good at math (working on it) but good at programming (full time salaried job with good pay doesn't mean I'm good at it but it'd about the only credential I have) (also working on it).

I dismissed programming as a freshman because I was so bad at math in high school. Turns out my high school teachers were very bad teachers (shocking when they're paid so little, who would've thought? ) I learned Italian fluently, spent a few years overseas immersing myself in it, came home and had a rough time finding my passion. Took a gap year and messed about with some online coding classes (code academy) and realized I loved it. It felt like a new language that instead of being expressively emotional it was a way to express logic and rules. I like logic and rules.

So I completed the minor +4 higher level classes and taught myself mobile development. No regrets... Besides not going into it as a major maybe.


23 years old.

I graduated from a low income high school in 2010 with good enough grades and I took most of the AP courses that my school had to offer (which was not many). I frequently didn't go to school and most of the time would drive around during the day or hang out at a friend's house.

I went to a local community college (that offered free tuition to students at my HS) for journalism because I didn't know what else to do. It was too much like high school and I had classes with all the people I was trying to get away from. I stopped going, failed all my classes.

Worked at a electronics store for a a year while I figured out what I wanted to do.

Decided to go back to school without really knowing what I wanted to do. Enrolled in CS at like the 4th best university in the area, so not a great school - but I ended up liking it a lot. I didn't have much math in high school, so I didn't have the natural inclination, and I didn't put forth the effort so I did poorly. I failed Calc 1 and 2 and made a C in them and in Calc 3 when I passed. I did well in my CS courses, As and Bs.

I have about 6 classes left after this semester - I had trouble going full time because I am married and work ~40 hours a week fixing computers or waiting tables and don't work as hard as I should sometimes.

8 months ago I got an internship at a pretty big company that opened a branch in my city. The internship turned into a job. It's mostly SQL Server stuff, and a few small desktop apps. It's not my favorite but my bosses are nice and it's close to my house.

I recently got offered a job at a small web development company that I got in contact with through a friend. I start there in 2 weeks.


I entered college in the fall of 1982. I thought about majoring in CS but the general concensus was that the field was overpopulated and there wouldn't be enough jobs.

Almost seems like the writer treated the process like playing a video game, without all the pretty colors and sounds that give you that dopamine hit.

I feel like I did get a lot out of my Computer Science degree. I got it in 2004 and I picked up a lot of stuff I don't think I would have learned on my own. I also went to a small state University in the middle of nowhere that' wasn't very expensive, and I didn't rack up any debt (a little in grad school, but still not more that I couldn't pay off in ~2 years).

But you get out of your education what you put into it. I worked with people who went to 2-year associate programs who didn't understand BigO notation, and people who didn't go to college at all, but who knew their algorithms inside and out (one who even got in at Google in the early days).

I'm glad I got my degree, but I'm not sure it's worth the cost some people are paying now. I shared my concerns with my nephew and he ended up getting his CS degree at a smaller/cheaper state university. I'd say if you can't get a degree without going into excessive debt, it's really not worth it today.

I know I'm just guessing, but the writer of this article seems crazy driven. Maybe, this is the type of person who could start their own small business out of nowhere, or survive long hours at SpaceX for the pure thrill of successful rocket launches? If you have the drive to run through something like this, there really aren't any limits to what you can do. I've done pretty well at all my jobs and have learned a lot of cool stuff, worked in three countries ... but on a scale of Wally (from Dilbert) to Elon, I'm certainly more towards the Wally side.

Going back to games; I wonder if this type of education and training would be more accessibl if it was gameified. McDonalds Japan briefly tried to turn their training program into a Nintendo DS game (failed terrible and the game is very rare). That might be a model for new typed of education going forward.


I pulled myself out of high school at age 16 because I felt it was holding me back from progressing in comp sci. Worst fucking decision of my life; please encourage let alone force this on anybody else.

My high school didn't have a computer science program at all (late 90's), but I grew up during the dot-com boom in silicon valley. My friends were getting internships at web and networking companies over summer earning an unhealthy amount of money for a teenager. I tried my hand at writing some computer games, and found I liked making games even more than playing them. So I thought: screw high school and all these classes which have fuck all to do with what I'm interested in.

What actually happened is that within a year I found out that like any teenager I had no clue what really interested me, except that it was easy to find stuff which interested me more than being a code monkey. Yet I was getting more and more locked into that as a career path.

Also, my social circle went to hell. I was neither with a cohort of friends my age I could relate to and could relate to me, nor did I get to share in the typical senior year of high school, and freshman year of college rites of passage. I did not really know what I was missing until later.

I jumped around a lot trying to undo mistakes and find something I really liked, which ended up costing me a small fortune in debt via 8 years of college.

In the end I still write code instead of doing something more intellectually and emotionally satisfying to me like archaeology or art conservation. Why? Because some mistakes can't be so easily undone. I enjoy what I do, and am paid well enough to support my family. But sometimes I wonder what could have been, and why in the world my parents let me do this...


tl;dr I'm smart and capable, but have no marketable skills, so am basically unemployable.

I started college right after high school in CS, but, bored out of my mind and depressed, dropped out after a year and enlisted in the Marines soon after that.

During my four-year enlistment, I fought in Iraq twice, saw the West Pacific (Japan, Thailand, Guam), and got pretty good at killing people.

After I got out, I went back to school on the GI Bill and got my B.A. in Comparative Literature, because I wanted to study something that would keep me engaged and interested, and I assumed I would be able to learn any technical skills (programming, which I was still interested in) on my own. Having gotten a bit older and gained a lot more discipline, I did much better in school the second time around, and raised my cumulative GPA from about 1.7 to 3.3, by maintaining almost perfect grades for those three years.

I graduated in 2009, which I understand was historically the worst time to do so. I was unemployed for six months, then finally got a low level adminstrative job in the federal government through veteran's preference. I also got married and bought a house. My job is a little bit soul-killing and doesn't pay very well. But it's tolerable (I've been through a lot worse) and secure.

I'm currently teaching myself to program for Android. It's fun but slow going, since my free time is limited. So slow, that I'm realizing that it probably isn't going to be more than a hobby unless I change something.

So: Infantry Marine: Level 4| Comparer of Literatures: Level 4| Bureaucracy Admin: Level 2| Rock-climber: Level 6| Programmer: Level 0

My options look to me like: 1. Stay in the fed. gov. Boring, but safe. 2. Go back to school. I like academia and I'd be interested in studying CS, HCI, or IA, but I'm afraid of student loans and 'higher-education bubble' talk. And I've got a mortgage to pay. 3. Find employment in a field I enjoy. I write essays on my blog about tech and tech products. A friend of mine at a software megacorp is convinced that I'd be a good Project Manager in the sense of Joel Spolsky's User Advocate. But neither of us see a path to there from here.

So my current plan is to put in my 40 hours, program Android by night, and regularly spam job listings, hoping that I'll slip through a filter somehow and be able to convince somebody I'm worth taking a chance on.

Advice?


Great article. This expresses better than I ever could have at age 20 why I quit my CS degree since I already had a job. At the time, the university was experimenting with a "software engineering" degree, but it was new and not yet accredited so it was too early to know if it was worth it.

Just wanted to say some of the best folks in my college CS group were military folks who were a bit older (2-4 years) who knew the value of the education.

That said, it is a huge stigma to not finish your degree... you better have a job or strong vision. For every Steve Jobs there are probably hundreds who would have done better by completing their studies.


I knew what I wanted to be early on, but sucked at maths and physics, so I dropped out of the best university in the country.

You're so young. You can still get your degree in CS. I'm near 40 and I'm just now writing my bachelor thesis.


I dropped out of highschool when I was 16. Worked at KFC and McDonald's. Went to a local community college for a couple of years and learned how to program at 19. And then shortly dropped out again.

Eventually, my parents convinced me that I should go back to college. Which I did at age 24, as a 1st year computer science student.

I graduated with a CS degree from a university almost no one has heard of.

Today, I'm an Engineering Director at Google and I love my job and the people I work with.

You don't need to start programming when you're 9. But there's no substitute for putting in the hours. Or learning the material. Maybe you should switch majors?


Pragmatism. I tried twice to get an engineering degree (electronics and CS) but I am too lazy when it comes to studying boring stuff on a structured manner. On my third attempt (age 23) I decided to water-down my aspirations and simply get a BS with a CS and Math focus. I had been programming for fun since age 15 (an Atari 130xe with a Basic cartridge) so it was natural to do it for money. Naturally, like any real professional, I started learning everything that I know AFTER graduation, using my clients as ginea pigs. I never wanted a job per se so the degree was more of a social fulfillment rather than a pre-requisite to start a professional career. I turned down job offers and opened shop right after graduation. I am 40 now, busy and happy :)

i earned a bs in computer science from a liberals arts college (Xavier) in 2007, and an MS in computer science from the University of North Carolina in 2009. I am thoroughly convinced i'd be much farther along in my career now if i'd never gone to college.

thinkign about this has brought back a lot of memories, so i apologize for the long post.. maybe i'll turn this into a blog post.

at the end of high school (i graduated in 2003), i spent a lot of time hanging out with defunkt (github co-founder and ceo). we dreamed of making our own games; "you be john carmack and i'll be john romero," he told me once. summer 2003, between halo (and later planetside) LAN parties with our circle of friends, i started learning directx. our plans were probably too ambitious (3d multiplayer action game) for a group of recent high school graduates with no work experience, limited knowledge of c++, and no art skills. i got to the point where i had a .x mesh of a tiger moving around a hightfield (with shading!), a simple network chat protocol and console, but when our artist left for college, i had no real hope of finishing the game.

towards the end of that summer, we started a 'consulting firm' which never really went anywhere. when school started i spent most of my time working on bullshit homework assignemnts and working as a bus boy for spending money. i was also majoring in physics and math, so i didn't have much free time. what little time i did have, though, i spent programming. defunkt showed me php and apache, and i learned far more trying in the 10 hours a week i spent programming a 'schedule the bus boys' web app than i did in the 30 hours a week i spent going to class and doing homework.

defunkt spent most of high school fucking around and having fun, whereas i spent it studying my ass off and taking AP classes to get more college credits - i started undergrad with something like 50 credit hours. defunkt didnt' get into the college he was hoping to (miami univeristy of ohio), so he started at a community college instead. he dropped out in spring 2004 when he realized how worthless it was for him. i knew he'd be wildly succesful and cursed myself for not having the courage to do what he did.

he then spent all his time trying to find programming work, while i spent all my time busing tables and doing all the stuff i had to do for the english and theology classes i was taking becuase i chose to go to liberal arts college in cincinnati, ohio instead of an engineering program at a top-rated school. i had a girlfriend at the time, whom i'd been dating since i was a freshman in high school, and i thought i was chosing love over money. :-/

defunkt found some work doing web development for a trucking company in new jersey (i'll always admire his hustle) and in spring 2005 he parlayed that experience into an offer to work for cnet in san francisco. he tried to convince me to move with him when he got the offer from cnet. at the time, i told him something like 'i know you're going to be incredibly succesfull but i dont have the guts to quiet college.' to be honest i really watned to go, but i was still in that (now very unhealthy) relationship at the time, and didn't have the courage or insight necessary to break it off.

fall 2005 was the worst period of my life. my friend was apparently doing quite well for himself in california, and i was bored and miserable in college, stuck in a relatinship i thought i had no way out of. i had had tried unsuccessfully to get programming internships, but hat no luck becuase xavier wasn't known for its cs program, and the best i could do was an IT job at a medical device manufacturer. i spent my days fixing corrupted outlook installations and installing replacement hard drives. all the while i was coding like mad on the weekends, on toy projects (a risk map generator was one of my favorites) and simple games. again, i learned more about good design and code layout working on those projects than i did in class, where i was now ostensibly learning about "software engineering".

the only thing i remember from the software engineering class i took was when we were pretending to come up with 'user stories' for an electronic voting machine. my friend jacob and i were supposed to be the customers, and sharon and kyle were supposed to be the developers. jacob and i said that the machine should be a regular dodecahedron that spins on its axis 'like those sunglass racks at the malls', and it should have eye recongition, a finger print scanner, and stool sample acceptor to identify voters. it's still funny in retrospect, and i guess it did teach us that customers are fucking morons, but i could have told you that without the class.

fall 2005, i was diagnosed with depression and then bipolar disorder, and put on a number of different medications. i tried to kill myself a few times and went to a mental hopistal. my life seemed to be going nowhere. i figured i'd be stuck in that relatniship the rest of my life, doomed to spend eterntiy fixing broken hard drives in cincinnati.

finally, in early 2006, i worked up the courage to break up with my girlfriend. live got a hell of a lot better.

damn this is long.. to the point!

i learned a lot of aweosme stuff in school, don't get me wrong. i can show you how to convert a deterministic finite state machine to a regular expression, and construct a NFA for ww' like nobody's buisness. i spent summer 2006 working for the NSF on approximation algorithms, so i learned a lot about that kind of thing. and there were some things i learned in school that have been really useful - we wrote an operating system my senior year, and it was a hell of a lot of work. i learned a ton about debugging and machine code.

at the end of the day though, i look at where defunkt is now, ceo of a wildly succsessful start that's basically a household name among hackers, and i'm still a nobody.

i woke up one morning when i was 14 and decided i'd better start kicking ass in school if i wanted to succesed in life. if i could go back to 14 year old me, i'd say forget abotu school. you can learn a hell of a lot faster than any teacher can teach you. learn to code by coding nonstop, and get experiecne working for other people as soon as you can. the stuff you learn in school is valuable, true, but it's not worth the opportunity cost. i had a full ride to undergrad and still feel like it was a net negative financial decision.


I'm 25 as well. I share a bit of my own experience, in the hopes that you may find lessons (both positive and negative) from it. I don't pretend that anyone should consciously follow the path I took, but it did work out pretty well for me.

I graduated college with a degree in electrical engineering not really knowing anything about what I wanted to do for a living or where I wanted to be in five or ten years. So I sort of drifted into a master's program, again in the same field, hoping to figure out what I was doing before I was forced to confront the job market or academia proper.

I didn't realize until the second half of my first year at that graduate program that I enjoyed the CS courses I was taking as electives far more than the normal engineering courses. So I ended up taking my second year and throwing all my effort into taking as many CS classes (which were cross-listed departmentally) as I could: operating systems, databases, compilers, etc. I made some stupid mistakes choosing some classes that turned out to be neither interesting nor relevant, and skipping on classes that would have been extremely useful or informative.

When I graduated, I took a position at a startup in the area, doing work that fell between the interface of EE and CS. I realized that I wasn't too fond of the work or the company (for various reasons), and so I spent months teaching myself the practical and theoretical stuff I had missed out at school, whether out of inexperience, disinterest, or sheer decision-making ineptitude. Some of this stuff was useful for my position at the time, other topics were completely exploratory in nature. And when I was ready, I started sending out my resume and interviewing for positions. I did get a new job, and I'm a software engineer at a well-regarded mid-size tech company in Silicon Valley right now.

Some thoughts regarding your position:

- CS is one of the fields with the lowest barrier to self-teaching. You don't need expensive lab equipment or fieldwork - just software, much of which is freely available, an ordinary computer, and enough motivation to actually utilize both.

- You don't need a 4 year degree. In the US a lot of schools won't even allow you to enter their bachelors programs if you already have one. A BS would be a waste of your time.

- The MS degree isn't a prerequisite. Build something substantial, and people will take notice. If you don't have anything you can show them, the degree can sometimes be useful. I'm not proud of this and it's actually really shitty, but the name of the school on your resume may sometimes make the difference between people taking a look at it and throwing it out (at least from my experience).

- If you do go back for formal schooling know what classes you should take, in order to acquire knowledge you need to have. You mention data structures and algorithms in a comment earlier; there are classes which focus on those; there are also classes that focus on discrete math, statistics, and other foundational topics. You should build an OS and a compiler while you're there. I always thought this was a thought-provoking read: http://matt.might.net/articles/what-cs-majors-should-know/

- A lot of MS programs are coursework programs; they've been charitably described as financially lucrative to their host institutions. Mine almost certainly would have qualified (both the EE and CS programs). This is not necessarily poison, but it does mean that if you attend, you should make the most out of the classes you take.

- If you are interested in working at certain companies, see if you can get someone to give you an internal referral once you're ready to begin the job application and interview process. A lot of companies (again, this is a controversial topic) seem to give more weight to internal referrals than unsolicited submissions. Contact with most of the companies I was looking at started either when a recruiter reached out, or when I asked someone I knew to put in a word. If you feel that people are loath to consider you due to your late start/lack of formal credentials this may be a way to offset that.

Finally, the fact that you are considering this move because of passion, interest, and demonstrated competence bodes really well for you. Best of luck!

next

Legal | privacy