Escape involves gathering the confidence and the determination for self study, so that applying for another job is even a viable option. Skunk-works type projects at work are strongly recommended.
Escape involves gathering the confidence and the determination for self study, so that applying for another job is even a viable option. Skunk-works type projects at work are strongly recommended.
Great point.
Perceived value of a programmer at a start-up: Quality & quantity of software built and shipped.
Perceived value of a programmer in a legacy enterprise IT department: Knowledge of existing code base and ability to get things done with it.
Maintenance and production are two lexicographic options that somewhat relay the scope of the position: higher than data-entry, lower than engineering. Much in the same way that a front-end is not necessarily a web developer.
Maintenance is what the current discussion is about, but production should be considered as well: it's about interfacing with the existing tools to extend without fixing any of the serious architecture issues. As in a web producer. Or, someone who produces plugins for a given architecture, requiring extensive knowledge of the system but with no access to improve or modify said system.
Most of my time is dedicated to maintaining a legacy application that is horribly written, but my time is mostly spent either trying to come up with inventive ways to code around the existing design decisions, or trying to come up with a way to improve the design without disrupting service.
It's very challenging to do well, but it is definitely not fun.
Most colleagues did nothing of the sort and were roughly as productive without developing any broader skills, as far as any performance evaluations showed. It's spending an hour performing repetitive manual changes to some code, or spending 55 minutes doing it programatically in Vim and gaining some precious Vim-fu in the process. The output is the same at the end but the programmer isn't.
When there is no further scope to learn from my work (apart from pipe dream re-write projects that never materialise) and I am not doing any significant critical or analytical thinking, I leave. It sounds like your place had a lot more to teach you.
At least, I'm telling myself it's valuable experience so I can stick it out for the next six months.
I eventually realized that I needed to get out. I've sent out my resume and interviewed, but have had little success. I really had no idea how bad off I was until I started interviewing at other companies. I can't overstate the value of "practice" interviews. I wish I had done a few practice interviews before starting the process with Google because I did very poorly when I had a phone screen with them. That was a major confidence killer. After the Google failure I interviewed with Apple and went pretty far into the process. I felt like the interviews went really well (phone and on-site), but it didn't work out. I did a few other phone screens with companies after Apple, but nothing came of them. Ugh.
With a family to support I have to stick it out until I find something else. I really want to start my own company, but I can't afford to quit my current job. In the meantime I'm squeezing in work on side projects where I can. It's pretty depressing and stressful.
Interesting side projects are also really valuable. They can demonstrate individual initiative, show competency in different technologies/practices/industries, and provide interesting talking points in your interviews.
An additional plus is if you're good at pushing incremental change to the existing codebase to get it under control. (e.g. my company has a large pre-existing Perl codebase, some of which mirrors functionality of various modules/packages on CPAN -- some better, some worse -- and there is a lot of internal push to move towards things like Moose, Try::Tiny, etc where possible for newer classes, etc)