

Ask HN: I'm a beginner working a job I hate. What next? - rquantz

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.<p>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.<p>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:<p>- Try to get another job, even though I don't feel like my skills are up to par<p>- 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<p>- 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.<p>- 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.<p>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.<p>- edited for formatting
======
stonemetal
_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._

You know that old phrase "I wouldn't join any club that would have me as a
member" well right now for you that applies for employment. Any place that is
willing to hire you with 0 experience and 0 education, has something wrong
with it enough to make them willing to take what they can get.

Basically I would recommend a two prong attack. Start looking for a new job,
you are slightly more marketable now that you have some experience, and since
you are currently employed you can be a little more picky about work
conditions etc.

Second, improve what you can. They don't use automated testing at work? Build
it anyway but keep it out of the repo. Don't have a repo? Set up mercurial on
your box. Since those kind of places tend to not do rigorous code reviews you
might be surprised what kind of freedom you have because of the poor work
conditions. Find the places your boss doesn't pay attention and improve those,
automate the build, automate deployment, write little tools that make your
life better, etc.

~~~
rquantz
You are right on the money -- I had that very quote in mind as I was writing
(gotta love the Marx brothers). You're also right about the lack of code
reviews. I've been able to sneak in a few things that would probably be
frowned upon. But there's a limit to how much I can pad my timesheets to hide
extra things (though I say this as I've wasted... how much time? ...here
today), and the kind of refactoring that would make it possible to add tests
to our mix of classic ASP spaghetti with a smattering of C#, webforms, etc.,
would definitely not go unnoticed.

But I offer excuses. You're totally right about this and it's what I need to
do to stay sane while I look elsewhere. It's either that or compulsively read
HN whenever I get the chance.

~~~
stonemetal
I wouldn't pad the time sheet, I would just do it differently. Don't refactor
the whole code base to add unit tests. Just try to write new code that is
capable of being automatically tested don't worry about hitting 100% just try
to get some of your tests automated. No one is expecting you to turn the house
in to a lean mean modern development machine. Just trim a little fat here and
there. Get a feel for what you are learning about modern development so you
can see how it works for you.

------
msluyter
Your post brought back some memories. I'm also an ex-classical musician
(flutist) who made a similar transition, at a similar age. I was half-way
through my master's degree, actually, when I decided to switch to CS. I think
I got my first actual tech job when I was around... 30? And like you, my first
real job was in an area I didn't like much (QA). I ended up doing QA for 7 or
so years, made tolerable by some more interesting home grown bits of test
automation infrastructure. There were times when it was hell, and I was
seriously considering going back to school to get a Ph.D. in some other field
(in retrospect a terrible idea.) Now I'm much happier, and more passionate
about what I do than ever.

I don't have much specific advice, other than to note that a) if I wasn't too
old, you're not and b) it never hurts to interview at other companies to get a
feel for where you stand. Simply being interested in what you do counts for a
lot, and will impress people. You don't have to be "kick-ass" before you're
hirable. Yes, having a CS degree would be helpful, but it's unclear to me
whether it's worth going into more debt for. Perhaps others could comment on
that.

Good luck!

~~~
rquantz
Thanks, it's good to know I'm following a path that others have been down
before. I've gone back and forth about the age thing. On the one hand, I tell
myself, van Gogh starting painting at 27! On the other hand, I am not the van
Gogh of developers. I guess I worry that, if it takes ten years to achieve
some kind of mastery, I'll be pretty frustrated for ten years.

But you're right, it wouldn't hurt to take some interviews. I've been a little
too obsessed with employment listings the last few months. It may be that my
view of what is necessary to get a job is a little skewed by looking at the
37signals jobs board. When I have to scroll in order to see the whole list of
technologies I'm supposed to be familiar with, it's a bit intimidating.

------
clueless123
There is something about musicians and programing.. I've met a _lot_ of
musicians turned programmers and most of them were _very_ good.

My recommendation: always be on "learn" mode, always be on "job search" mode,
it is the best way to keep moving up (salary wise)

My comment: the industry is full of mediocre programmers, just the fact that
you care to learn puts you in a good position.

good luck

------
Kallikrates
Sounds like you are channeling something I've been going through. I Had a
rough time after College and took the easy way out through the military, and
now employers see a 4 year gap and don't even pick up the phone. Luckily one
did, but the work environment isn't very fulfilling, and after the daily
commute I am not left with much time to relax and do some out of work
projects. Luckily after some time of jumping at the chance to implement stuff
here and there and improving my process, I notice people are at least calling
me after they read my resume. My interviewing skills have gone up
dramatically, and I think my passion and enthusiasm comes through to the
people willing to give me a chance to show them.

Hopefully sometime soon someone will give me another chance. Keep interviewing
if only to honing your skills, to see what people are asking for outside of
job descriptions, and to get comfortable talking about yourself.

Now someone tell me how to get involved with the local tech scene, when the
nearest meetings are hours away and you don't know anyone locally.

~~~
rquantz
Yes, commuting is a bitch, and having to drive ~1 hour each way definitely
contributes to my hatred for my job, and is part of why I feel like I've hit a
wall recently. There's nothing like getting home at 8, and then trying to
convince my girlfriend that I need to be working more instead of spending time
with her.

As for getting involved, if you're far away from meetups I'd say github is
probably the way to go. I'm just starting to get to the point where I feel
like I could maybe possibly try to contribute... I just have to figure out
what I want to contribute to...

~~~
Kallikrates
Yeah, I've taken the same approach, I've committed a few things here and
there, nothing of note though. Seems people don't even get that far when
evaluating me as a potential interviewee, though.

~~~
rquantz
Sounds like you're on the right track though... now I need to take my own
advice. Good luck to you!

------
porter
I am 28 and have spent the last 9 months as a non-degree student taking
courses in discrete math, computer architecture, and algorithms and data
structures. My undergrad degrees were in finance/econ and I spent a few years
in banking. I thought hard about going the DIY route, but I can honestly say
that taking some of the foundational courses in computer science has really
helped. Plus I know what I don't know, and perhaps more importantly, I know
what CS grads are supposed to know. I am more interested in an entrepreneurial
route and not really in being the best programmer I can be. But, I would still
recommend this route to anyone who is serious. At the end of the day I think
an employer is more interested in what you're able to do than what degree you
have, especially in software development. Plus, to be frank, most of the CS
kids I've met can't hack their way out of a box. So, if you know what they're
supposed to know and have some real projects to show off, nobody cares about
your degree.

------
ctoneal
I'm in essentially the same boat as you. I went to school for something non CS
(Physics), found a job coding later on in life and discovered I really liked
it, but now I'm withering away in a bad environment. It's pretty disheartening
when you're trying to improve and really apply yourself to something, just to
have bad management or coworker apathy destroy it.

All I can suggest (and it's what I'm doing) is to be constantly on the hunt.
Spend a couple nights a week dedicated to the job search. Any other free time,
try to hone your skills. If you're interested in something, whip up something
in your free time. Portfolios are a good thing to have, even if it seems like
interviewers never take a look at them. Just keep at it, you'll eventually get
out.

------
arobbins
If you are looking for some of the background you could get from a college
course, there are some good classes available online for free.

Example: [http://academicearth.org/courses/the-structure-and-
interpret...](http://academicearth.org/courses/the-structure-and-
interpretation-of-computer-programs)

------
maxbrown
Sounds like you've already answered your own question - you don't like where
you are, so you should be looking for somewhere else.

If you can get a job somewhere else that you like better, take it. If you
can't, stay with what you have now and keep learning on your own time.

Never hurts to interview.

------
masonhensley
I'd get involved in some open source projects to boost your cred/ knowledge in
the skills not heavily utilized in your current job & start applying to jobs
once you feel that you are more up to par.

------
rgbrgb
Where are you located? How long have you been at the current shop? Are you
working on something in your free time?

------
avstraliitski
I may have a job offer for you, send me your email address (only, the receive
inbox is effectively public): avstraliitski@TempEmail.net

------
suking
Want to move to CO?

~~~
rquantz
I've heard great things about it, though I'm pretty happy with NYC right now.
Are you hiring?

