Hello, I am currently a high school senior who's been programming mainly in Python for about 4 years now (& some XHTML, CSS, Javacript). I have worked as a programmer/circuit designer for about 2 years at a local small business (paid almost nothing).

However, I have no real certification or schooling in programming. So, the only education I can put on my resume' is high school (meaning it'll be almost impossible to get a job as a real dev). The unfortunate part is I can't really afford to go to college.

I've looked into things like OpenCourseWare from MIT, but I'm afraid that employers won't see this as 'real' education, even though I have more experience than the average CS student.

So, what does everyone think would be the best course to take for education?

15 accepted

If you can't afford an actual degree from a college, worrying about certifications is probably a waste of time. Get involved in an open source project that people care about. If somebody can honestly put "core Django/Python/SciPy developer" (as in, you're on the core team for that project), they're probably not going to have a problem getting interviews, which is the only purpose of a resume anyway.


Where are you located?

A degree really helps your resume when you start out. Also, despite how good you may be already, you'll pick up a lot of stuff that you just won't come across in the regular course of a work day unless you know what you're looking for. This is far more true of more concrete occupations like Electrical Engineering, but still applies to CS.

Remember that student loans are a great option. You don't have to go to MIT or an IV to get a great education.

On the other hand, the older and more experienced you become, the less important a degree becomes. I went back to school at 26 after working in the industry from when I was 17, programming as a hobby before that since I was much, much younger. I graduated at 31 with a bachelor's in EE, and it was one of the best experiences of my life. I was very lucky in that I was able to continue working in the field full time while taking a full time course load, but this is unusual and, honestly, you'll be missing out on a lot if you can't focus on your coursework.

Forget about whatever salary you're making now and lost income over the next few years. Go to school, kick ass and take names, and move on. You won't regret it.


You definitely have more experience than the average CS student (since, at graduation, they generally have little to none), but don't undervalue the educational experience. I'm as big of an advocate as anybody for experience over formal education, but there are some things that are better learned in "book definition" form then later applied, rather than the other way around (I'm speaking specifically about design patterns; it can save a lot of time and trouble if you tell someone you're using an "observer pattern" rather than "I have a series of objects that are tied to another object and the other object sends messages back to the first objects").

Bear in mind, though, that you don't have to pay cash for college. Virtually anyone can get low-interest loans, and if you're not financially well off you can generally get some grant money. Go to a state school and your loans should be able to cover everything; this is the way many, many people go to college.

Your best bet, in the absence of an education, is to gain real-world experience (which you're obviously on your way toward doing), do some self-education, and gather good references. If an employer has a requirement that all potential hirees have a degree--not uncommon--then there isn't much you can do about that, but barring that scenario you should do fine.

Besides, getting the job is one thing; keeping it is what really counts!


I am a self-taught programmer. I went to school for about two years and have about twelve years experience in field. I am now completing my degree because the market's bad and I don't want to have to explain away the absence of a degree (only seven more units). That being said, programming without a degree is very possible. Some things to keep in mind:

1.) Generally first generation American's have a harder time with degreeless applicants and or the HR managers themselves (who tend to come from business backgrounds). For the first generation American's this generally occurs because there country of origin "tracks" academic students very early on. If you're bright and lower middle class or above you just go to school. Remember the American experience is very different. You are in distinguished company here. Off hand you can draw on the experience of both Edison and Gates who didn't have degrees and did very well. Some of our top minds in business and engineering never went to school.

2.) The West coast tends (in my experience) to be more forgiving of degreeless applicants. The Silicon Valley experience is all about completing and or innovating, not getting good grades. I've met more college drop outs that are millionaires here than anywhere else.

3.) Most certifications are expensive. Yes they are handy to have in a tough market, but I wouldn't concentrate on them if you have limited capital. In the long run school will place you higher in the applicant list than a cert for a dollar spent.

4.) Because of (3) consider taking one class at a time at a local community college for your GE requirements. This won't tax your bank account that much and it will let you (very) slowly accumulate credits. That's essentially the route I went. Twelve years later it will pay off. Don't worry about the time, just chip away at the requirement.

5.) You will face smart ass college students. Just remember to keep studying and proving how hot you really are. We all can study whether we have formal schooling or not.

6.) 98% of what you get in college is a strong set of connections that help you find jobs. Build those connections as if you were in sales. If someone is in an industry that you would like to work in get to know them. You are starting out at a disadvantage since the bright college kids have professors to work with who can help introduce them to the right contacts. You don't have that. You'll have to work harder.

7.) DO NOT GET A COLLEGE LOAN. The interest rates are insane. Grant? Fine if you can score it. Scholarship? Yep. Take it slow and cheap? You bet. No loans. You don't need to be in debt the rest of your life. Talk with a counselor at the local community college and see if anything fits. You'd be surprised. Also check with your local church, there's often low income scholarships offered by religious communities. Don't be a dick, that is don't go begging for money from an institution that expects you to uphold something you won't, but be open to various sources of help.

8.) The school generally doesn't matter outside of a few really big name schools. You aren't going to MIT so don't worry about that.


Become active in a public community helping out to make yourself visible, and target small companies for your first job(or few) that are less likely to completely filter out people without a degree.

I'd also suggest you look into the option of a local community college with a record of having students complete their "general requirements" for a larger university there and then transferring. It should be a more cost effective way of starting out if that is something you'd be interested in pursuing.


Why can't you afford to go to school? Unless you are supporting someone, it is usually possible to go to school. You may not want to go to school - i.e. other priorities - but in that case I would suggest that you change your priorities and go to schol.

You can get a student loan for tuition, and other aid to cover room and board, combined with some minimum wage part-time job.

If you're graduating as a high school senior, then now is the perfect time to go to college or university and get a better education in comp sci. If you can't afford university, then live at home, get a student loan, and go to community college.


You may be surprised what you can work up to.

Junior QA positions for many companies pay decently (~40k CAD) and are a good way to start your career. Writing automated tests with Jameleon, Watir and other frameworks will definitely give you a chance to play with some programing languages, and it gives you an excuse to go out and buy books and teach yourself more. Breaking other peoples code and doing the research into "why?" is an education in itself.

At the very least being in the company of seasoned developers will give you the opportunity to learn and ask questions. There may even be in company training sessions, or a path up into a development role your looking for.


Talk to a local college student counseling service, outline your practical experience and see what they advise. Sometimes it's possible to challenge for a certificate or degree, e.g. just write the final exam without going through the whole course. You'll likely still need to pay a course fee. And studying the textbooks will be a good idea to in order to pick up at least the outlines of things you'll have missed in your work thus far.

BTW, I'd change the subject line to end as "impoverished programmer", as it stands now it reads like you don't think you're any good at it.


As a self taught programmer I found that Brainbench certifications where considered to be reliable and of value by many recruiters. They got my foot in the door for a number of interviews after I had taken a two year break to take care of my kids.


I have not gone down this path personally, but you might consider organizations like idealist.org or opportunityknocks.org. These sites may allow you to get in contact with low-paying or non-paying volunteer positions. Of course, if you are in a financial bind, it may be very difficult to find the time to work for these organizations without getting paid. However, maybe you could spend a small number of hours a week doing something like this. This would give you real world experience and be good resume fodder. For very similar reasons, internships are great for someone in your position if you can get one.

Also, you should talk to a career counselor at your high school if there is one. They may have good ideas for you.

Best of wishes.


As someone new to the profession, I think certifications may help you get your foot in the door for an interview at some places. As I said in a comment, the certifications themselves - at least those I've looked into (Sun Java, Zend PHP, LPI Linux SA, MySQL) - are not super expensive, usually a few hundred $ per test. IMO, it's the training that is prohibitively expensive (often a few thousand $). So, if you can find a certification that's relevant to the work you want to be doing, can afford just the test, and can study enough on your own to pass the test, then that may help. Alternatively, if you can afford membership in ACM or the IEEE Computer Society, they provide free access to online training for some certifications (and membership has other benefits too). Both are using Element K now, so - at least while you're starting - membership will provide the training. If you're mostly interesting in software development, I'd recommend ACM.

Also, (and I'm surprised no one else has said this yet) many employers - including non-profits and government organizations - will pay for you to take college classes. So, if you're working now, check into this with your current employer. If they won't pay, then look for an employer who will the next time you hunt for a job. Sometimes an employer will also pay for certifications and the training for them.

Good Luck!