Ask HN: Do I need a CS degree or should I stay with my job?

29 points by shanelja ↗ HN
I've been programming for 4 years now, I started when I was 15 and have kept it through, 9 months ago I got my first job in the industry, building PHP web applications for small businesses, 2 months ago, I left that job for a larger agency.

Since I began programming I have taught myself PHP (and everything which comes along with that, MySql, Javascript (&JQuery), CSS, HTML), x86 asm, Scheme and have a good grasp of most aspects of computer science.

I have recently been feeling like my career is reaching it's peak even at this early stage, I feel as though there is quite a low ceiling for how far I could possibly take it in my current situation, I dream of silicone valley and the lifestyle which comes as a perk along with that, but those companies only seem to hire people with degrees.

My new job pays me a remarkable sum for someone of my age with no formal qualifications, but it is only a fraction of what my peers in the industry are earning.

My question is this, should I go to university or would I be better applying myself to the current state of my career and trying to improve it and ignoring my doubts?

Thanks for all the replies, I expected this to disappear as white noise & didn't expect to hit the front page, I will try to reply to everyone I can

P.S. To alleviate some confusion, this would be for the summer of next year, I'm not talking about leaving my job this very minute

60 comments

[ 3.6 ms ] story [ 124 ms ] thread
Most people have a misconception of a CS degree as if it teaches you how to code. Computer Science is neither about computers or about science. It's a math and a logic degree. With a CS degree you should be able to code, conjure algorithms and all that jazz out of anything. It teaches you how to be more efficient, write better algorithms, use your hardware to its full potential and etc.

Look at the opportunity cost then make a decision. If I were in your shoes... if I'm making more than $90k AND =<25, then I wouldn't go for a degree. However, education never hurts right?

tl;dr: CS teaches you how to be a better problem solver. You probably know more about "programming" and "languages" than most CS majors.

That was what I was originally thinking, in full disclosure, I currently make around $35,000, which for a 19 year old is a fantastic wage, at least, compared to what I have made in the past.

I have been talking to a close friend of mine who attended UCLAN and with the exception of some of the more complicated algebra and (quite a lot of) the compiler unit, I have the majority of the first and second years covered already, but the problem really is the piece of people to prove this, will the Googles and the Microsofts of this world even consider my application with the absence of a degree on there?

You don't need a piece of paper to prove this, you need to apply what you know to projects either personal or professional. Preferably professional. Get involved in open source, join a programming community, look for mentors, etc.
A degree can be a good confirmation that you can do what you say you can and you can be relatively sure that someone holding a degree will have a more thorough understanding of things and is capable of functioning independently (usually).

However, there's plenty of people with a CS degree I'd never consider working with and if a company was to hire me based solely on my CS degree I wouldn't consider working for them. There's more to any single developer than a degree they hold, or don't.

When I first started (without my degree) I was making $40k. At six months I was making $50k. A year after that I was making $80k. At that point I felt like I had basically plateaued without the degree. You certainly don't need one to do well in this field though.

As I mentioned in my other post, you'll get more value out of a degree if you study something else _in addition to_ computer science. If you're in CS courses and you feel like it's easy (The more introductory courses will be very easy; you may be able to test out) it'll feel like a waste of time. It is up to you what kind of value you want to get out of it.

In terms of value, I intend to improve my knowledge across every area of my degree units an order of magnitude and also to broaden my horizons, I would love to learn more about the hardware side too, being an all software person, it can sometimes be quite a mystical subject.

I agree about not needing the degree to do well, I would however propose that from stories I have heard so far it does seem to reduce the difficulty.

I'm a programmer and I have no degree and make more than most of my friends with degrees. If your goal is to make more money I suggest figuring out how much you'd like to make and which companies you'd like to work for. Then study the jobs they offer and the skills required. Then study on your own and find ways to apply what you learn to your current work. That's worked for me.

I started as a web designer, eventually became a an actuarial systems developer, and then a data analyst/developer for one of the larget web sites in the world. A degree hasn't limited me at all.

Having said that, I've struggled with this question my whole life and now at age 30 I'm in school and pursuing a degree. I finally realized I don't need one, but I really want one. Just because its always been something I want. Why? I can't deny that I apply a certain amount of credibility to a degree and I want that.

Edit: typos

This. The last line epitomizes how I feel, the degree provides a certain level of credibility to my career, it is a form of validation in a way.
As a recruiter who tries to find candidates who don't suck, your lack of a degree would not be factor in my decision on whether or not to approach you (if it looks like you don't suck).

One thing that really helps a candidates stand out is something that supplements their resume, such as a well written blog. Being able to show sucess in your career and an ability to articulate what you know is a pretty killer combo.

Thanks for the reply, this is probably the kind of contact I was looking for when I posted this, the question is, without a degree (and to be perfectly honest, no real interest in open source) what do I do to make myself stand out, to say hey, maybe we could have a chat over some coffee? to the recruiters at these companies?
I was in a very similar situation about 5 years ago. I was making a good salary as a web developer but didn't have a degree, with all the pitfalls that this entails.

I went back to school and I double majored in CS and mathematics and took the hardest courses I could. Here's the rub, if you want to go back because you feel like you have some gaps in your knowledge and want to fill them in, college can be great for that. I specifically felt weak in math before I went, so I studied it specifically.

You'll be at a big advantage in a lot of the CS classes because many of your peers are starting with no programming experience, so the more programming heavy ones will probably be comparatively easy for you. So focus on more theoretical stuff if you go.

Also, keep costs in mind. While you're at school your good salary means the opportunity cost is fairly steep. If tuition is high too it's very expensive. I went to an in-state school, though I'm fortunate that the local school has a strong program.

In terms of the opportunities it provides, my previous experience as a web developer meant that I got more interest in that arena than in other areas, but the difference was stark. Maybe the economy changed while I was studying, but it went from sending out a ton of resumes and getting a small handful of nibbles to 'if I send out a resume to a job I'm even reasonably qualified for, I'll get an interview.' It was that stark.

Money wise (at least short term) I'm still behind because of the opportunity cost, but I learned a lot and can pick a better quality job, so for me it was worth it. It's a personal decision though. In your case you can send your resume to Silicon Valley first and see if you get any bites, if that's what is more important to you.

The money is one of the main factors why I'm worried about attending university, in the short term I will go from a recently developed comfortable life style (I was homeless a year ago) to struggling again and after working this hard I am reluctant to relinquish the life I am now trying to enjoy!

I agree with the Math, I have been practicing Oxford CS & Maths entrance exams (I don't intend to go to an institute as "high" as Oxford, but I set the bar for myself quite high) and have been routinely scoring much better for the logical and riddle based exercises than the Maths and have recently been practicing my logarithms and linear algebra where I feel I am lacking (or at least weaker than my other areas)

I'm a senior in college right now. Don't do it on a whim. You're already in a great situation. Getting a degree won't change too much if you've already got the relevant experience. Remember that passion and drive (as corny as this sounds) are worth much more than the piece of paper itself [0].

Yes, there's a certain amount of credibility to go with the degree. Yes, it might help you get a better job. If you really do feel like you've hit a ceiling, then you might just want to get that CS degree.

I think colleges can be great [1]. Joel also gives some excellent advice to CS majors who actually want to program [2] (one of the great misconceptions about CS is that it's closely related to development like you're doing).

[0] Ironically it's college that gave me that drive.

[1] http://recoding.blogspot.com/2013/01/college-heck-yes.html

[2] http://www.joelonsoftware.com/articles/CollegeAdvice.html

Do you really want to keep working for others or is it really that you want the money and grandeur of those big brand-name employees? With your skills, perhaps you should think about planning and creating products of your own.
I'm in a similar situation but contemplating a masters. I'm actually leaning towards a masters in computer science rather than software engineering.
It depends on the school. A lot of schools' CS curricula are really just a series of classes designed to teach you how to be a reasonably effective programmer; I would avoid these, because it sounds like you are already an effective programmer so you will not gain much. On the other hand, there are schools were CS is challenging and where just being a good programmer won't help -- and someone like you may actually find that the courses are interesting.
You mean you think that I would get a lot more out of a formal qualification if I left my comfort zone, focusing more on the theoretical than the practical?

My programming skills are pretty solid, I'm happy to sit down and write code for hours on end but as for the theory side I am probably below the par in terms of the other students.

If you don't know whether or not you should go to college, then you probably shouldn't go to college. If you're already on a path, at the age of 19, where you've been hired at multiple places programming and you're capable of teaching yourself what you need, why would you suddenly stunt that organic growth?

The barrier to getting a job at an early age is much less often whether you have a degree and much more often whether you have experience. There are lots of people with the former and fewer with the latter.

Unless there's something you specifically want to go to college and learn, and it doesn't sound like there is, you should continue along your path.

(comment deleted)
I think you need to look at the situation in a completely different way.

You are 19 years old with 9 months of real experience. Most companies will pass over you right now because of this. If you are getting a great pay check, put the hard time in for a few years and work on side projects to build your brand.

I don't know anyone who will hire someone with only 9 months experience (regardless of age/degree) and your skill set that will provide the perks you are looking for.

I make more than the average US programmer, don't have a degree, and don't have any student loans to pay off.

Most places that "require" a CS degree don't actually, and I wouldn't want to work for any company that is so stuck up in BS bureaucratic policy that it can't evaluate an employee on their merits. I find the lack of degree makes a good filter for avoiding companies with BS internal policies that would be frustrating to deal with on a daily basis. I want to work with humans who take reality into consideration not just arbitrary rules.

With that said, lacking a degree can hamper you in the beginning because you need some way to show that you actually know enough to be worth hiring. I solved that problem by simply working for myself in the beginning. As you've already got a job I say screw the degree, and put the saved tuition fees towards doing something amazing with your life.

As I stated on another comment, one of the main barriers to entry for me is the money to pay tuition while I am studying, with no guaranteed return, the question then is where to go from here, I don't want to let myself stagnate academically, so I want to at least do something to self improve and I feel that learning yet another language can only teach me so much, I've been toying with the though of an ICS course or something similar but none of the courses they offer are really any good.

(Disclaimer: I have already tried the Coursera courses and thought they were great but didn't really enjoy the format, I would however recommend the Dan Boneh Cryptography class, it taught me more than any other!)

I wish the world was that simple.

It really depend where you are. Here in France companies wont even look at you if you don't have 3 years of experience. It's ridiculous.

And the salary it not even competitive.

>Here in France companies wont even look at you if you don't have 3 years of experience. It's ridiculous.

This is true in most places. I would suggest looking at things you've done outside of professional work that would differentiate you and show you really enjoy what you're applying to do.

It used to be getting a degree would satisfy this. Now the majority of people have degrees so you should look to do other things to differentiate you.

I did found a job in a startup.

I am actually their first employee but again the employee valuation is way different from the offers I got in Cali when I was living there.

It's amazing how much more value your work history can bring than a degree. As a high-school dropout (due to boredom from not being stimulated and learning anything new) it concerned me quite a bit that I wasn't getting the same opportunities or salary as others in my field. I now know that very few places actually care about that degree - and those that do are shooting themselves in the foot imho. As for salary - I had to tell quite a few of my friends that they were getting severely underpaid when I thought I would be the one in that position.
I have to say, I'm pretty happy to see others who have gone this route and lived to tell about it. My family was fairly poor, so we moved around a lot. Education was not really on the top of the list in terms of priorities; my last student record counted 16 different elementary, secondary schools that I had attended.

As a getaway from my personal issues, I would write code and design on local library's or friend's computers. Eventually I was able to buy my own computer and – to make a long story short – was hired full time as a web developer. This wasn't the plan, mind you. I didn't complete highschool, but because of my 3 years of experience I qualified for college. I ended up making the choice of not going and continuing my full time employment. It didn't make sense to me to leave my job, then go to school only to later try and get a job that I already had. Since I was passionate about my work, learning and evolving my knowledge was never an issue.

I don't think this approach works for everyone, mind you. You have to have a sincere love for the work. That being said, college gives you access to like-minded peers, social engagements and a level of submersion that I think is helpful for most people.

Today I own a successful web & digital company, so I have the privilege of being able to look at a resume and not judge the applicant by the CS degree, but more on work experience and passion.

I was in the same position as you but replace PHP with Java.

I thought I didn't need a degree but then met people in the industry that I wanted to be like, but I was limited by not having a degree.

It wasn't possible for me to study full time and I didn't really want to as I wanted to continue to have my years of work experience growing, so I signed up for a part time course.

Two years before my degree was finished I was nearly passed over on a job because I didn't have a degree so it really encouraged me to get it finished.

With the last round of job interviews there are many that said I would not be being considered without the degree.

If I were back in that same position again, I'd choose to do it the same way. Your relevant work experience keeps growing but you still get a degree - it's hard work and long hours but I think it was worthwhile.

You left after 7 months at your first industry job, and you're talking about leaving your second industry job 2 months later. To be honest, if I saw that on a resume it would be a much bigger concern to me than your educational background.
Oh, sorry, I should have explained, I already refused an offer this year from a university when I took this job due to my financial situation being pretty dire and getting both of the offers at the same time, I wouldn't be planning on starting university until the summer of next year, when I would have been in my current job nearly 2 years.

I should probably have included that information in my post, my apologies.

OK - here's my input. I work at a 95K+ employee company, not much into the CS as more of an IT service provider - we do some coding, but not a lot. When I've been hiring, I would generally, cut at the first pass people who don't have degrees. It is more about the formal education process then the knowledge you get - shows me ambition and commitment.

Also - you've already jumped once in the past year, another red flag.

Put applications in at 10 companies you want to work for, and see if you make it to the interview.

If you want to advance your career, go to college.

You've already said it - you're a good coder, time to become a good developer. If you want to advance, it is not all about the coding.

>When I've been hiring, I would generally, cut at the first pass people who don't have degrees.

I hope this was for junior-level positions, where I can understand that education might make a difference versus people with no experience or education. For jobs beyond the junior level, the number of highly-qualified people in our industry with no degree whatsoever is bigger than you may think.

I don't have a degree and have been in the industry for 12 years. I did, however, take community college classes that interested me when I had the time. You might want to see if you could keep a full time job and take a class at night at a local community college. If you love it and want more, quit and go to school full time. If you think you can fill in the gaps by taking more classes, then keep going at night. If learning in classes really drives you nuts, then quit and keep going the way you're going.
You seem to be trying to build a path to an end goal without having an end goal. Figure out your end goal and then figure out the best path to get there. A college degree may or may not be part of the path, but nobody can give you their opinion w/o knowing your end goal. You should also consider your location when considering your path (something I did not do for a long time).

Also, I think it is fair to say that most 'job requirements' are more accurately described as 'job guidelines'.

If you want to be a great* developer, you can skip the degree if you want to but _not_ the work it represents. The higher up the chain you go, the more "pattern" problems you will run into; What I mean by that is that you will encounter more and more problems where someone who "did the work" will recognize that "Oh! That's just a semaphore." or "Oh! That's just a b-tree." where someone who hasn't will think they have to invent something new to handle it or pay someone a million dollars to implement it for them. I've seen this happen to non-CS bosses of mine several times (and yes, I tried to warn them and explain) with disastrous results for their careers.

So you have to put the work in either way. If you're going to put the work and time in any way, why not get the degree? That's not a rhetorical question..there may be several valid answers to that for you, including but not limited to money, time constraints, etc.

*You can be an "okay" developer and not do any of this...you might even end up happier in the long run...that's something you have to decide for yourself.

Since this question seems to come up all the time, I have crafted a stock answer in the idiom of some books I really enjoyed in my youth:

Choose Your Own Adventure: Should I get a CS Degree? Do you want to be a great developer? Yes! (Page 3) | Not Really. (Page 2)

(Page 2) That’s totally cool, actually. If you were going to force me to wager on who becomes a success or changes the world more, I would put my money on an “okay” developer with a strong business sense, basic understanding of Minimalist/Gestalt design principles, or thorough understanding of a problem domain where technology has not been fully brought to bear over a purebred “great” developer any day. The great thing about choosing this route is that you can always decide later that you want to go deeper down the rabbit hole and learn more if and when you need to. My one nugget of sage advice if you choose this path is this; Be very, very cautious of not investing too much effort in solving “big” problems without first trying to do some research about who has tackled a similar problem before and in what way. You probably have some friends who went and got CS degrees; Buy them lunch (much cheaper than getting a CS degree), explain what you’re working through and ask them if it sounds similar to any data structures or patterns that they know of. An ounce of humility and patience here can literally save your product/career. You win! THE END!

(Page 3) OK Then: Here is something you need to hear. Despite what all the “look at me, I’m a successful developer and I have no CS degree” reinforcement responses that inevitably pop up on these threads might lead you to believe, you cannot skip doing the work of understanding the fundamental and counter-intuitive principles and patterns that (most good) CS curricula impart and be a great developer. Doesn’t happen. Sorry.

However, despite what all the “You _need_ a CS degree – I got one and I know you could never be a good developer without one” responses (that also inevitably pop up on these threads) might lead you to believe, a CS degree is not the _only_ way to learn these things. It is _a_ way…and you might even say a pretty darn good and efficient way…but you can do it on your own if you are motivated enough.

That leaves us with the question below: How do you want to do the work? On My Own! (Page 4) | At A University! (Page 5)

(Page 4) Cool. I guess I’d recommend googling Data Structures and Algorithm Analysis as starting-off points…if you wanted to read (and understand even half of) Knuth’s books, you could most likely put any CS Bachelor to shame. Have at it. GO TO PAGE 6!

(Page 5) Cool. The one obvious advantage of this path is that they give you a little totem at the end that says you did the work. That little totem may be worth more or less depending on who is looking at it and their general worldview – but no one can ever take it away or deny that you have it. The other obvious advantage is that it puts you in the general vicinity of other people who were willing to do the work. Maybe you meet some of them and end up doing some things together? I don’t know. The obvious disadvantage is that doing this costs money. Don’t do too many drugs, join a couple clubs (but not a frat/sorority) and savor the concept that for 4(-ish?) years, your entire environment is focused on your personal intellectual enrichment – this will never, ever happen to you again in your whole life. Don’t be too smug when you finish, though…you have about 5-7 more years of hard work ahead of you before you are worth a real damn to anyone but your mother (but at least they will pay you)…so don’t break your arm patting yourself on the back. If you’re lucky enough to graduate during one of the bubbles, you can get hired quickly at a good rate..but save your money, because bubbles don’t last forever. If you graduate during an “offshoring trough” take a job in a niche industry or do tech support for a while, but...

Consider school in the evening and online options through accredited institutions. It may take longer, but you're already employed in the field and it shouldn't hurt your career for a while.

It hurts your career when you want to work on harder problems. As a CS minor, the only way I'll work on certain classes of problems is if I start the company myself.

(comment deleted)
Your $35,000 / yr is no where near the peak. If you are average to below average as a developer then getting a degree could help (entry level out of college seems to be ~$80,000 in NYC/SF). If you have some heavy contributions to F/OSS or an extensive github profile, then you have already have a lot of nerd cred to cash in, and getting a degree is not as necessary.

One of my friends is a college dropout. He has been programming for 15+ years now, and is one of the most productive and thoughtful developers I know, earning roughly $150k / yr. The lack of a degree has made it difficult to get past the front door of large companies, but it does not stop him from getting CTO solicitations from well funded startups.

You also frame this question as an all-or-nothing decision. This is simply not true. You can test out the waters by taking a few classes part time while you are working. If you like it, keep going. If you don't like it, figure out what it is you don't like, and adjust your direction.

Good advice. I'd lean toward no college for the OP since as you point out there are still tons of companies that care about results over pedigree, and that thinking probably makes them more enjoyable to work for too.
It's good to have options :)
(comment deleted)
I'm in a master's program in comp eng. (software focus), but before coming to my program I was basically a wordpress hacker, and not gainfully employed like you. My education was in music.

The cost of my education is and will be nothing short of immense (loans). My classes aren't always amazing. Still, I hadn't anticipated the full value of my choice to come back for that technical degree. You don't just go to school to program or do homework. There's much more to it than that. A huge part of it is networking and peer collaboration. There's that old saying that if you look around and you're the smartest person in the room you're in the wrong place. My professors are incredibly networked and have brought me internship and job leads I couldn't have found on my own.

Also, I'm in comp eng, which is typically more of a hardware degree. I could have done CS, but I ended up in eng for a number of complicated reasons. Still, you mentioned the hardware thing in a comment, and I've found great value in studying some hardware. The ability to talk from high level language through gate level implementations is valuable knowledge.

I think the other thing to consider is the state and future of this industry. Naturally, it's incredibly bright, amongst a sea of industries headed for the garbage can. More and more, the masses will be flocking to where the jobs are going. I think the formal education might be helpful in this sense.

On the flip-side, you seem like you are already on your way. Nobody would not hire a candidate with ten years of real experience due to the lack of degree.

If I were in your shoes, it would come down to cost and networking. Can you finance it well? Will it give you exposure to people and places that will greatly accelerate your career?

Of course, I still believe in liberal arts and creativity, so there's also the whole education for education's sake argument :)

There are a number of concerns here. You probably shouldn't go to college for signalling, you'll bore yourself to death and do poorly (unless you have extremely good discipline).

On the other hand, going to college is likely to be both intellectually stimulating and fun. That would appeal to most people and it's not really an opportunity that comes back. Depending on circumstances, you might well be able to keep up freelance programming for money while you're in college which will take away financial concerns and keep you in practice.

Then there's the reliability of your self assessment. Quite frankly, agency web dev in PHP is not a great predictor of actual programming prowess - you can get very, very far in that business using Google and copy-paste. The way you lump ASM in there adds a good WTF-quality to the list, and, honestly, how do you know that you have a "good grasp of most aspects of computer science", never mind, how good is good and how many are most? Think hard about this, and especially about think about unknown unknowns here. When I first "got" QuickSort and understood why trees usually have log n characteristics, I figured myself pretty well sorted. I've since realised just how little of the tip of the iceberg I've actually ever even scratched.

College will, if nothing else, help you draw an outline of the iceberg, so you can better assess how much of it you've actually seen.

The way I read your post, you might well be in a sweet spot for just coding the shit out of everything for the next five years and doing better than your college peers. Most college grads can't actually code well. Or you might be the kind of guy who wakes up one day and realise you don't have ten years of experience, but one year of experience ten times over.

Amen. I do a lot of recruiting and one of the signs that a candidate is high quality is when they know what they don't know.

It's rare for someone without a degree to get the kinds of jobs that exposes them to the kinds of engineering challenges that makes for "10 years experience" as opposed to "1 year experience 10 times over". I'm not saying it doesn't happen -- just that in my experience, it's rare.

Also, having a college degree shows a certain minimum ability to start something and finish it. The more challenging that degree program was, the more important that factor is. A 'degree' from DeVry or Phoenix doesn't count (I'd actually talk to the guy without a degree first...).

I say get the degree only if you want it mostly for reasons other than a career. The ceiling isn't low; there's plenty of jobs for developers without a degree, paying just as much. If you're making $35K now as others here say, you could soon be making $80K+ if you apply yourself. (A hiring manager told me he'd pay $85K for someone 6 months out of high school if they had 6 months home practice developing in IOS for the iPhone.)
Don't compromise your career for a piece of paper. I have made the mistake of going back to college when I couldn't really afford it. Initially I rationalized that although taking classes would basically preclude working, in a couple of years I'd have a degree and be able to make a lot more money -- it would be worth it in the long run. The stress of being broke turned out to be much worse than I'd anticipated. Even though I'd been broke before, it was different in the context of having made a commitment not to go out and get paying work.

Add to that the "normal" stress of doing course work and... I wound up dropping out after a year and a half. Two weeks later I was back at work as a programmer. It's been almost ten years since then and I've consistently had recruiters after me the entire time -- I've never had to actively look for work. I've met many other people with similar backstories to mine, and all of them were gainfully employed and relentlessly pursued by recruiters.

In the first 3 years of my career, I was asked about my degree in every interview. I'd say: I'm on hiatus from school due to financial concerns, but I have every intention of finishing my degree as soon as possible. This was a) true and b) enough to satisfy every single interviewer, without exception. Because all interviewers care about is your ability to deliver. As my career progressed, people pretty much stopped asking about my degree. Recently one of my managers told me (after 2 successful years of working together) that he'd never even checked whether or not I had a degree. He'd hired me solely based on my past accomplishments in the industry. I think this is a typical attitude for hiring managers, especially given the current, extremely tight market for programming talent.

School was extremely useful and I still intend to go back and complete my degree some day. But when I do, it will be for my own satisfaction, not because of the impact a degree would have on my career.

Stay with your job, work harder. Forget the "lifestyle" Save a lot and really live below your means, keep building on your skills and looking for better opportunity. Start investing your savings, some of them in your skills and businesses. If you really play the hand you have now right, you can retire in 15yrs WORKING without ever doing a START UP and getting acquired or going public.
I'm in a semi-similar situation. I'm 23, graduated college a year ago, but I focused on music. I knew some html/css and got a job as a developer and taught myself to code WP themes from scratch. I'm a good graphic designer, but programming interests me more, even though it's harder for me. I recently began using Udacity.com CS101, which is pretty neat. I make the same as you right now, I'm just not sure where to go from here..