Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: I'm a beginner working a job I hate. What next?
19 points by rquantz on Apr 26, 2011 | hide | past | web | favorite | 19 comments
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

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.

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.

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.

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!

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.

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.

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...

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.

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

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.

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

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.

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...

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.

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.

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

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

Want to move to CO?

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

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact