|I went to school to be a classical musician. I spent about 15 years of my life (since I was 12) focused on my instrument, and I got to be pretty damn good. That being said, the life of a freelance musician is not a candyland of great music and concerts. It's teaching little kids who don't care, playing pops concerts for old folks, and occasionally managing to put together a concert of great music that is rehearsed enough to sound the way it deserves, but not getting paid.|
I fell into coding by accident. I wanted a website to attract students, so I pirated a copy Dreamweaver, quickly realized it was useless if you don't know what's going on underneath, dropped wysiwyg for textmate, and started googling. After two years of that, with a couple of hand-coded websites under my belt, I got a job as a web developer at a small company. I pushed hard once I got that job, reading like crazy on my own time, playing around with ruby and rails, trying to get a handle on software architecture and best practices. The way I see it: I'm an excellent musician. If I'm going to leave that career, it will not be to become a mediocre programmer.
But I'm a beginner, really. And I'm old (29!) to really get started in this. I love digging into the computer to make it do what I want, I love fiddling with a layout until it looks perfect, and I love (probably most of all) that I'm doing something useful to others. But the better I get the more frustrated I am with where I am: a .NET shop (not even MVC), lots of legacy code and no hope of adding tests (I've been told off from trying to even dip my toes in those waters), appathetic coworkers, and a boss with no technical or aesthetic sense, but who insists on making fine-grained technical and design decisions. I was happy to get a job with salary and benefits when I had no "real" work experience, but it turns out this is a pretty frustrating place to be.
So what do I do? I'm not to the point where my skills match my knowledge, and I really don't think I can get a job at a place where I would want to work. There's only so much I can learn in my off hours, expecially when what I'm doing during the day is contradicting rather than reinforcing it. The way I see it, my options are:
- Try to get another job, even though I don't feel like my skills are up to par
- Stay where I am, and keep trying to get better on my own time, although the longer I'm here the less energy I feel I have
- Go back to school to build up my chops. But I went to college for 8 years and have $60,000 in student loans. I really don't want to do this.
- Strike out on my own for a while and build up skills as a freelance developer. I think I'm pretty good at learning on my own, and if I paired with a good designer I think I could set up a kick ass web dev shop. But I'm not really sure how long it would take to get by this way. I don't have much (read: any) savings, but I can always pick up some freelance music gigs in the meantime.
TL;DR: How do I find the time and energy to get good at this while still making enough money to pay my bills? I'm not looking for a lot. 40-50k a year would feel like heaven. Working in an energetic environment where OSS isn't treated with derision and the boss doesn't use IE7 as his primary browser would be a breath of fresh air.
- edited for formatting