views:

237

answers:

6

I'm a graphic designer who is bored with the profession. At school and University I never really knew what I wanted to do and because I was good at drawing I did art and ended up a graphic designer.

Graphic design lead me into web design. This meant I learnt HTML, then CSS, then javascript, then I began to learn PHP to build sites, then I had a stab at building web apps. I've built a simple app using Xcode (though it's mainly applescript) and made my first game this week using object orientated javascript. All this has lead me to one conclusion...what I really want to be is a programmer.

I couldn't be employed as a programmer right now because I am entirely self taught and have no actual experience. My thoughts are I need to get qualified but I can't afford to not work full time. Therefore I'm looking into an open University course I can take on the weekend and evenings to start my first steps toward a career as a programmer.

So in a nutshell, my question is how does a 27 year old who's finally realised they want to be a programmer achieve this goal?

+3  A: 

I'd say just start applying for jobs, listing your programming languages and years of experience using them. I have a CS degree, but its been rare for me to find another cowoker who does. Almost everyone is self-taught.

T.E.D.
You're probably right. I think I will.
MrMisterMan
@T.E.D., good point. What is the worst that will happen? They say no?
Stargazer712
+8  A: 

You don't HAVE to have a degree in Computer Science to be a programmer. It sounds like you have already started programming actual software, which is a step ahead of many college graduates. I would say that the split of my programmer friends who have degrees vs those who don't is about 50/50.

That said, I think it can be easier to get your first job with a degree, and if you are interested in work that has to do with theory, number-crunching, algorithms, data mining, etc., then a computer science degree is VERY useful. If, on the other hand, you want to work primarily on basic web application development, a degree might be unnecessary. It depends a lot on the type of work that you ultimately want to do as a software developer.

What do you see yourself doing?

geeketteSpeaks
I don't see myself going too far down the number crunching root. Probably more application development. The course I'm looking at is done in stages culminating in degree but the qualifications I gain along the way may be enough to land me a job.
MrMisterMan
What types of qualifications would you get along the way? I've never been a big fan of certifications, myself. I think that generally, most 'good' places to work as a software developer will be more impressed with a quality personal project that you completed than they would be with a certification, etc. I think building a portfolio of projects that you can use to market yourself might be a good place to start.
geeketteSpeaks
Trust me, a "good" CompSci course will teach you more maths and proof than programming... and you are unlikely to need any of it for web design
Callum Rogers
@geeketteSpeaks That makes sense. I suppose because I'm self taught I feel like I have a shaky foundation. I'd like a good grounding to set off on a career from. @Callum That's handy to know, I'll bear that in mind.
MrMisterMan
I think we're all on the same page here. I currently work as a RoR developer, but primarily do data mining in R. I DON'T use a lot of the theory I learned in school while doing the web development, but it is oh-so-useful when I am designing algorithms.
geeketteSpeaks
I feel like some sort of qualification would give me some confidence. Maybe I should do what @T.E.D said and just start applying for jobs though.
MrMisterMan
I think that the best way to build confidence is not through a degree or certification, but through having successful projects under your belt. I think that T.E.D. is right, you should start applying for jobs. Make sure not to sell yourself short. Do keep writing code on your own time, and make sure to feature this work when you are in interviews and on applications. I have had many friends who found work based on their personal portfolios. Good luck!
geeketteSpeaks
@geeketteSpeaks Thanks!
MrMisterMan
+6  A: 

You know some javascript, some PHP, HTML, have made your first web app and a game. That's a great start! As for a University course, I would not recommend it -- yet.

First, look at what you've done up to now. While you made the web app and the game, what mistakes did you make? Was there something that bothered you, something that could have been automated but wasn't? Some piece of code that could have been more elegant? Look for those and write more code. Make mistakes. Learn from them, and try to find better ways to solve problems. Project Euler has some great programming/math problems to sharpen your skills, then look at some Open Source programs that interest you and try to help. Maybe start with documentation -- always neglected but needed. Find a bug? Try to fix it yourself, or try to point the programmers in the right direction, ask them to tell you how they fixed it. Learn from the experts (that includes SO). Lather, rinse, repeat. Read books (Code Complete, the Pragmatic Programmer...) and code, code, code.

When you find the programming language you're using to be inadequate, consider learning another. A typical self-taught programmer started with something like unstructured BASIC, moved up to C/PASCAL (structures, basic recursion), then C++/Python/other OOP languages, then functional and so on. Learn new techniques when you need them.

And the most important point: Have a pet project. Re-write it in another language, another style (structured, OOP, functional). Add features. Find bugs. And always make mistakes and learn from them. This experience, coupled with the right books, will be of far greater value then sitting in theoretical courses. Which do have a value of their own, of course, but not yet.

lbruder
That's all superb advice, thanks. I suppose my desire to get properly qualified is because a) It's provable to an employer and b) I wouldn't feel like I was blagging it if I managed to land a job.
MrMisterMan
+2  A: 
  1. pick a road you want to go down (what kind of developer do you want to be) - ie do you want to be an open source developer, a microsoft developer, etc. go on hiring sites and look at the common skills that are required for these types of people.

  2. take some time to CRAM on your own time and learn the stuff. create test projects, read tutorials, etc. basically just get lots of hands on experience.

  3. try to land a consulting job. many consulting gigs in my experience pay well, work you hard, and don't care if you have a degree or not as long as you have the knowledge. they'll quiz you hard in the interview. know your stuff, and tell them that you're willing to work for less money at first since you have less experience. emphasize the experience that you do have in the past.

  4. once you have some years of experience doing that you'll have a much easier time landing a normal, less stressful job.

you don't need a degree, just the ability to convince hirers that you're a guru in what you do and that you'll be a good investment to their company.

Rob Smith
+4  A: 

Apply for a junior position. You'll end up getting your hands dirty pretty quickly, as everywhere gets busy. I was about 26 I think. I got into computers trying to muck around with synths. Ended up having a go at making a website one day. 5 years on and I've got some good experience behind me, and am a year into running my own business. I have no degree, but don't think it matters. You have shown a personal interest and motivation to get involved with tech. I've seen some really bright kids come into the job straight from uni tech courses. I've also seen some who just won't cut it as programmers which is usually down to attitude.

One thing I would say though is get some advice on the best technologies to get into, money wise and how well they fit what you want to do. Some firms will push the new recruits onto the old legacy code nobody else wants. Ask the firms what sort of tech they use and create.

Coding work is better than design work for me. Way too many people have opinions on design. Code is generally the right way or the wrong way! Be aware though, your own projects are more fun than trying to keep some one else's creeky old code alive!

BombDefused
All the answers have been fantastic but I'm marking this as best because the fact you were roughly my age when you started in programming is encouraging for me. Also the last paragraph sums up EXACTLY what made me realise I want to leave graphic design and go into programming.
MrMisterMan
When your client says these words: "I don't really know how I want it to look... but I'll know when I see it.", is it unreasonable to punch them in the face? [Obviously joking, I've not yet punched a client in the face] Seriously, what other industry can you get away with that in? Architecture? No. Engineering? No. When NASA completed the Apollo rocket, did three managers stand around muttering about the colour of the door handle?
BombDefused
+1  A: 

You have real world experience, not just a piece of paper. A company will value that much more. Apply at a place or two, show them your work instead of a degree, if your good enough (which you can easily be from being self taught) you'll do fine. Hope it all works out.

Blake