views:

302

answers:

13

I'm a lifelong hobbyist hacker, who'd like to become a paid, professional programmer,

I first cut my chops on QBasic, on a 386, at a tender age, but I've never programmed in a professional capacity, have no professional certifications, and got a liberal arts B.A. I'd say (in all modesty) that I have a expert level understanding of UNIX programming, kernel internals, and memory management, and an intermediate to advanced understanding of algorithms/data structures. That is, I've read Knuth, but get stumped on a lot of the harder problem sets. I can hack in x86 asm, C/ObjC, Python, Perl, etc., though I have little C++, C# or Java experience. I've worked plenty in IT, both before and after college, but only in Network Security and System Administration type fields, where programming abilities were a plus, but not the core competency required.

Programming job openings seem intimidating--my resume just doesn't fit within their categories, and I really have nothing to prove to them that I can code. I feel like I would come off as competent in an interview, but not in a cover letter. Any advice about making the leap from hobbyist to the 'real time'?

+5  A: 

Well... just go for it, book as many interviews you can, expect to work a crappy job for a couple of months/year and build up your resume. Do it, today!... NOW!

DFectuoso
+1  A: 

My advice is just do it, even if you get demotivated on the first fails, you will eventually find an employer that will give you a shot by what you can do, and not only by what fancy things you have on your resume.

rogeriopvl
+2  A: 

You picked kind of a bad time to make this transition, since unlike the situation during bubbles, there are now lots of unemployed experienced professional developers which companies would prefer.

To make it as a professional, you typically need to find your first job, and then use that experience for the next job, and so on. The trick is to get that first job.

My impression is that the bigger "name brand" corporations, especially those located in highly-urbanized areas of the US tend to go for education credentials and experience in other "name brand" companies. They would therefore be more likely to interview a newly minted BA from a CS school with zero experience than they interview you despite your experience, since they have a cutoff of professional experience. Many graduates also have the experience of a past internship in a major company. For example, I only landed my first "name brand" job while I was a few years in school, even though my programming level had been the same before starting college.

However, if you are willing to consider smaller non-"brand" shops, and especially web studios, small game studios, etc., you have a much greater chance of landing an interview. This is particularly true if you live in non-tech areas (e.g., smaller cities in the midwest) where few college graduates stick around. Open your local craigslist and see what the options are.

Uri
A: 

Your first step would be to contribute to a high-profile open source project with your expert skills. Try to contribute to a project where the code is similar to the code you'd like to write on the job. Once you've made a name for yourself, either you will get job offers or a good recruiter will help you find work. As mentioned, just get your resume out there and don't give up.

RibaldEddie
A: 

You need to have a few projects under your belt, saying "I've read Knuth" or similar is nice but it's not going to cut it as far as employability is concerned.

Projects get your resume read.

temp2290
A: 

As DFectuoso said, do it now. It's all about your resume / experience, don't expect too much without it and start working on it as soon as you can. Do not ask for much money, ambitious startups (and well funded) should be your priority as it's more likely for you to make a career and do neat tech stuff. Look for purely tech job, don't fall for something like "tech guy at a local printer shop" as it will do you no good in the long run, when you hunt the high paying jobs.

You say you have exp in programming and sys admin, that's a huge plus, don't let any of these sides of you to fall behind.

I started at a small company some years ago with no professional experience and no degree, was paid crap, worked long hours, but that was just to build up resume. Now I'm a lead programmer in a medium sized company with good pay and many job opportunities if I wanted a change.

So can you.

Karolis
A: 

Underlying several of the above answers is a need for programming motivation. One part of getting a job will be selling employers on the fact that you really want to program. The first step isn't so much knowing how to code, since you've stated some skills there, or even that you can write a tight algorithm. It's finding a problem that dammit I'd really like a tool for. I personally recommend this prior to adding to an open source project, since at least you get something out of it, should no one else care.

Have you tried linking up Google maps to generate a list of nearby ice cream places, bars that are open after midnight, or free concert spots? Take a human problem, reduce it to its technical and data needs, and then slap some code on top. That can also be a quick-pitch demo for anyone looking to hire a contract programmer.

Matthew Glidden
A: 

As others have noticed, in this market, employers can afford to be picky. So move into the shadow market: Open Source Projects. Go to SourceForge and choose a few projects that look interesting and start playing around with them. Get to the point where you're committing somewhat regularly to one of them, and voila! you have programming experience.

Of course, you're not getting paid, but right now to make the shift you need the exposure. Also, don't make the mistake of choosing the high-profile projects. Chances are you won't be committing to JBoss, Spring, or the Apache Web Server any time soon. But then again, neither will I, and I've been coding professionally for more than a decade. Just get the experience, and then flog it on your resume for all it's worth.

Good luck.

rtperson
+1  A: 

Also, while the complexity of modern software really precludes the kind of one-man-projects that were so great in the 80s (e.g., many of the early IBM PC games), the popularity of the mobile platforms changes things, at least for a while.

If you can become a really good iPhone/Android programmer, you can get exposure, money, and potentially a job with some of the bigger iPhone app shops that allow telecommuting.

Uri
A: 

I also recommend looking into either contributing to an open source project or starting one yourself. I recommended this plan to a former co-worker who was looking to move to another technology that he had no professional experience with. After releasing an open-source project, he was contacted directly by a company wanting to utilize his project and his skills and got hired.

Paul Lefebvre
+1  A: 

I had the same decision and went for it (eons ago), now I am a CTO. Here is a great way to accomplish what you want. Find a non-profit, charitable organization, or church and volunteer your expertise. They always need development help because they can seldom afford it. You have the flexibility to learn on your time schedule, when you are done you have a product that speaks volumes more than a resume, and if your work is good every person in that organization will shout your name from the rooftops to every business owner that needs services like you offer. All that and you are doing something really good to help those less fortunate than you.

Organizations like this are large enough for you to gain a lot of valuable experience, developing projects from top to bottom and working with customers, in ways that you might not get if you hired on with someone as a beginning developer. This type of well rounded experience adds immensely to your value. Also when business owners want to hire someone the first place they look is within their circle of influence "hey, do you know anyone..." This will make your circle of influence huge and put you first in line for these types of opportunities. Good Luck

Praesagus
+2  A: 

Wow, I know many people without formal B.Sc.'s in Comp Sci or similar program who are smarter than me and can code better than me. I'm learning, but with the advent of the internet, better search engines, books, almost anyone with enough drive and desire can learn on their own. Where I live paper helps, so I went to school, I wanted formal instruction.

As for the interview, all you can do is be honest. List your accomplishments and personal project etc, I know I would be more impressed by that than any amount of paper you can get through school.

The other thing you can do, if you don't already have one, is a blog. Post things to it, you don't need to give your source away to demonstrate you have skills.

Best of luck!

Chris
A: 

Good Luck in this market. Don't take rejection personally for at least 12 months in this economy:

(1) Edit your resume to look younger (2) Emphasize a job search for your existing skillsets (3) Once inside, try to do something in the field you want to move into

if this doesn't work:

(1) Take classes at night (2) Program while unemployed during the day (3) Start a small business so that you can pass thru your hardware/software expenses while you re-train.

Think about what you want to do. Maybe you want to write drivers. Maybe you want to program databases. Specialize. Good luck again.