Help me with job titles associated with software development
October 12, 2009 2:04 PM   Subscribe

Which jobs should I be searching for a stepping stone in the world of software development and eventually project management?

Fresh out of college the depression started.

I have a Bachelor's degree in Computer Science. I attempted to find some work in my area, but couldn't find anything in the way of "Junior Programmer / Software Engineer". I found some work eventually (3 months for a minimum wage service job) and have since found a relatively stable job that has nothing to do with my degree.

Now that I have some months on my resume, I'm looking around for software work in California. I'm starting in the North State and moving more steadily south, the first large city I'll be looking into is Sacremento.

I would like to have work that would provide me credible experience for developing software. Since I haven't any real world experience (Falling into the catch 22 of most intro jobs needing experience, etc) I'd like to start with an industry tangentially related to software development so that I can show some work toward real experience.

Instead of focusing on development work exclusively, I'd like to start with QA / Software testing work. I believe I could learn a lot about software development: Techniques, processes, culture, political realities of the work place, networking, etc. I also believe that such work could prepare me for an introduction into project management; Coupled with future software development work.

What sorts of job titles should I be searching for to maximize my return value for this type of work?

I also need a sanity check. In your experience does this plan provide the returns I'm looking for? Is there some other tangentially related field of software development that I should be investigating in parallel?
posted by Pontifex to Work & Money (22 answers total) 4 users marked this as a favorite
 
I think QA is a great place to start. You get to see the insides of big applications and get a feel for the work the developers do.

Another option is web dev. How's your html and js? I know you might not consider it "real" programming, but I got my start just by telling temp agencies I knew html and getting some low level assignments. I kept getting jobs, and eventually at the job they'd ask me to learn something more complex. Today I am a software developer (currently unemployed, but still).
posted by drjimmy11 at 2:12 PM on October 12, 2009


Skip Sacramento. If you're looking for software jobs, look in San Francisco and the Silicon Valley.
posted by toxic at 2:20 PM on October 12, 2009


QA is an okay place to start, so might be "Professional Services"

There you will start by learning the company's product in the field, dealing with customizations,integrations and bug reporting.

Are you interested in an open source projects? If so, that might be an entry point into a company which uses that open source project (e.g. hardoop, weka, lucene )
posted by bottlebrushtree at 2:23 PM on October 12, 2009


Response by poster: I think QA is a great place to start. You get to see the insides of big applications and get a feel for the work the developers do.

Exactly my thoughts as well. Thank you, it makes me feel better to know I'm a bit more validated.

Another option is web dev. How's your html and js?

Poor at the moment. I'm working with Java right now - to keep my skills sharp, build my resume and to contribute to an open source project: Freemind.

I know you might not consider it "real" programming

Real enough! I can't even imagine having to cross-validate my code on different run time environments like web programmer have to on Firefox, IE, Opera, Google Chrome, etc, etc. I have immense respect for anyone who can do that for the love of the art.

but I got my start just by telling temp agencies I knew html and getting some low level assignments

Interesting, I was under the impression that most work is done with CSS these days. Do company's still need work done in simple HTML?

I'll keep that in mind. Temp agencies + very simple coding work. In a similar vein, I suppose I could get a book on Access, Excel spreadsheet or even (simple) .Net programming; To further expand my skills.

Aside: Not to lump in .Net programming with "very simple coding" unduly. I remember having to do some research into .Net when having to compose a series of scripts for some business process automation / System Administration work. And I believe .Net was a viable option for Windows XP (or greater) based operations.

Good advice, thanks!

--Pontifex
posted by Pontifex at 2:26 PM on October 12, 2009


Response by poster: @toxic

Skip Sacramento. If you're looking for software jobs, look in San Francisco and the Silicon Valley.

Duly noted. I was planning to move farther south to those specific areas at a later date. I'm focusing on Sacremento for the time being as:

A) I want to start getting some introductory experience in a relatively close location whose cost of relocation is relatively inexpensive and close to which I have some relatives / friends that can act as a support system, should I need it.

B) My fiancee is also looking for work in the Sacremento area.
posted by Pontifex at 2:31 PM on October 12, 2009


The trouble is that it's really fairly hard to move out of a QA role into being a full-time developer. I don't want to sound harsh, but look for the job you actually want to have. There are lots of opportunities for full-time junior developers and increasingly "real" development shops are moving to agile processes and test-drive development where QA doesn't really have a separate role - developers are expected to produce tested code as their primary output.

So I'd suggest stinking to looking for fulltime dev roles if that's what you really want to do. I understand that this may not necessarily be realistic if the local pickings are slim.

Also, anotehr option is technical sales if you don't like/don't mind dealing with people/customers all the time. A great many software products live and die on the ability of a sales engineer's ability to actually get them running on a customer's hardware. This is often a good opportunity for a junior person although again it's often very hard to move out of this role into fulltime dev.
posted by GuyZero at 2:38 PM on October 12, 2009


Response by poster: @bottlebrushtree

QA is an okay place to start, so might be "Professional Services"

Professional Services?

Aka freelancing.

There you will start by learning the company's product in the field, dealing with customizations,integrations and bug reporting.

Interesting thought. Leverage my existing technical skills into future work with these companies on the strength of dealing with their deployed applications in the field. I like that.

I had done some research into freelancing during my previous job search, but have yet to do any freelance work.

Are you interested in an open source projects? If so, that might be an entry point into a company which uses that open source project (e.g. hardoop, weka, lucene )

I'm embarrassed to say that I've fallen behind keeping up with Open Source projects.

I hadn't thought about contributing to a project to leverage that experience into a job relating to that project. A good thought!

I could track interesting projects, deploy and test them on my home network in my spare time to gain experience with them and knowledge of their code base. Another good plan, thank you!

Though, given some thought I believe this would provide experience for mostly startups or small companies? Not that there is anything necessarily wrong with that. I want to be sure I have a good idea of the market to which I'll be appealing should I choose to develop a skill.

--Pontifex
posted by Pontifex at 2:43 PM on October 12, 2009


I'd strongly argue against the tangential route. Once you go into QA, CM or some other direction not only is it hard to get out of that pigeon hole, but you still won't have gained the experience of a junior programmer and you'll be less inclined to go back to the bottom rung and start over if you do want to break into hard core development.

Right now you should be applying for junior programmer positions with the aim of being part of a complete software development life cycle. If you aim for a small outfit you'll probably get more tangential experience than you can shake a stick at but as a programmer you'll deal with plenty of tangential stuff directly within your field: living in the IDE, living in the debugger, living with version control, living with builds, living with the bug tracker, living with configuring servers.

After that if if you chose to go into a tangential discipline you'll have the core competences to be good at that discipline (e.g. know how to script things, how to describe issues, how to document changes, etc.) and first hand experience as a coder who has to live with a QA team, a build team, etc.
posted by furtive at 2:52 PM on October 12, 2009 [1 favorite]


Professional Services deal directly with the client, figure out what the client wants, and either tell them how to do it with your software or come up with a way to get it added on. Companies buy your software for $x,xxx, then they pay your professional services dept $xxx,xxx over x years to get the most of it and maybe get a few features they want squeezed in too.
posted by furtive at 2:58 PM on October 12, 2009


Response by poster: @GuyZero

The trouble is that it's really fairly hard to move out of a QA role into being a full-time developer.

My thought process, in this instance is: "If I can see how the developers do it wrong (examine the code for bugs) I can learn how best to create software that follows the best practices for development to minimize the creation of said bugs".

I don't want to sound harsh

No please, I want to hear what you have to say. Just keep the swearing to a minimum. ;)

increasingly "real" development shops are moving to agile processes and test-drive development where QA doesn't really have a separate role

Ah excellent insight. Coming from an academic background most of my information doesn't include the agile method. Given my research into QA / testing, I've seen this implied in several places. It's good to see it written plainly.

When I was researching what texts would be best to expand my skills (Mefi has been great help in that regard!), I did purchase a book tangentially related to agile development processes: Rapid Development and Headfirst Java. I'll have to look into the Agile Development processes and strategies more closely as the Java book has made me fall in love with TDD.

So I'd suggest stinking to looking for fulltime dev roles if that's what you really want to do.

I'll have to take a sampling of the offerings in the Sacremento area to see if the local market has support for my kind of work with my experience. But I will certainly do that first.

I understand that this may not necessarily be realistic if the local pickings are slim.

I certainly hope not, but I'm too much a pragmatist at this point to be very picky.

Also, anotehr option is technical sales if you don't like/don't mind dealing with people/customers all the time. A great many software products live and die on the ability of a sales engineer's ability to actually get them running on a customer's hardware.

I hadn't considered this. Good point! I'm working in a technical / sales related role right now. I think I could deal with it for a good length of time, especially if the work had more to do with what I want to do; Rather than just what needs to be done to survive.

This is often a good opportunity for a junior person although again it's often very hard to move out of this role into fulltime dev.

I'll treat it with caution and keep my skills relevant in my personal time, should I be faced with this sort of reaction to applications to development positions.

--Pontifex
posted by Pontifex at 3:00 PM on October 12, 2009


Just as a further point, based on all my previous jobs, the more QA people a company has the worse their developers and/or development processes are. I worked with the same developers at a couple different companies and it was odd how someone who seems like a dolt in one place is actually a productive lead dev in another place. Team dynamics can influce outcomes a lot more than you sometimes realize.

At any rate, the place that had more QA people than developers couldn't ship anything. It may seem obvious, but you cannot test quality into a product.

At my current job there are very few "QA people" - I have yet to meet or work with one. Developers are expected to produce code that works and there are a variety of tools to help with that. But no one will check to see if your code is going to fail and if it fails, you will be fixing it and everyone will know. And somehow that seems to work.
posted by GuyZero at 3:06 PM on October 12, 2009


My understanding is that, in QA, you're running tests on the program from a user-type perspective, or using automated testing tools to find bugs. You just find out what doesn't work as expected, you don't fix it, you don't trace down which part of the original code is causing the problem, and you don't get exposed to the processes by which the programmers make code.

This might be different in different shops, and it's been a while since I worked in a big software-development environment, so things might have changed.
posted by amtho at 5:16 PM on October 12, 2009


Response by poster: @furtive

Right now you should be applying for junior programmer positions with the aim of being part of a complete software development life cycle.

I'm beginning to see the wisdom in this. Train for this, then dive right in. All other roles are support roles to this one central concept.

After that if if you chose to go into a tangential discipline you'll have the core competences to be good at that discipline (e.g. know how to script things, how to describe issues, how to document changes, etc.) and first hand experience as a coder who has to live with a QA team, a build team, etc.

Ah very good. You can go into a support role from a programmer's position, but much harder to go the other way around. Good thought. That would be very helpful in this case as I want to be as flexible as possible for the future. As well as gleaning the most knowledge from the support roles I can to build toward a project management position with holistic knowledge of the whole.
posted by Pontifex at 6:17 PM on October 12, 2009


Response by poster: furtive

Thank you for clarifying. I think I see what bottlebrushtree meant by the comment now. Again a tangential position, but a good one to learn the concepts of the application, a cognate of the QA position.
posted by Pontifex at 6:20 PM on October 12, 2009


Response by poster: jamaro
(Just as an aside, it's Sacramento. Please make sure your cover letters/resume have the correct spelling).

Good catch thank you. ><
posted by Pontifex at 6:21 PM on October 12, 2009


Best answer: My thought process, in this instance is: "If I can see how the developers do it wrong (examine the code for bugs) I can learn how best to create software that follows the best practices for development to minimize the creation of said bugs".

That's not the attitude I'd want from a programmer and runs counter to someone who claims to be "...too much of a pragmatist..."

It sounds like you're afraid to actually apply yourself and make mistakes and write code that will inevitably contain bugs. You'll learn a lot more making those mistakes than you ever will looking at other people's mistakes, which assumes you can both find them and fix them yourself.

Sorry to bust your bubble, but developers "do it wrong" for the most innocuous of reasons: poor training, bad habits, time constraints, framework constraints, "write what you know", sleep deprivation, distraction, multi-tasking, poor testing and a million other reasons that sadly enough, can't be avoided simply by spending a year looking at other people's code. You're theory depends on you knowing better than them, but it's bullshit because you're not the one writing the code. You'll learn a ton more writing what others will eventually may perceive to be buggy code than not writing any code at all.

Want to be a good programmer while learning from other people's code? Work on a project, and you'll see what your teammates do, some will be better than others. You can get the same benefit now by joining an open source project. Every time I look at someone else's code my mind expands a bit, but I think your theory is flawed and regardless of your intention you come off sounding like you live (or want to live) in an ivory tower.

My tough love speech for you:

Voltaire said "perfect is the enemy of the good", and thinking you need more than having a comp sci degree to start hacking out code makes you the enemy.
posted by furtive at 6:22 PM on October 12, 2009


Response by poster: GuyZero

Just as a further point, based on all my previous jobs, the more QA people a company has the worse their developers and/or development processes are.

It may seem obvious, but you cannot test quality into a product.

I suppose that would be a natural consequence. Ouch, I don't know why I didn't pick up on that earlier.

Developers are expected to produce code that works and there are a variety of tools to help with that.

The company that spawned this idea - by publishing a job advertisement in one of the areas I'm looking for - does have services to inject "proper QA methodologies" into an already working system. In other words, to fix what's broken. Perhaps in this way.

But on the other hand, I'm not sure this makes complete sense with what I've researched into the QA process in preparation for the interview. How would one run System Tests? This strategy of testing what you code works up through the Unit Testing and even up to the level of Integration Testing; But Compatibility testing? Stress testing? Installation testing? Anything to do with testing the entire system as a whole appears to be outside the scope of the individual programmers'.
posted by Pontifex at 6:32 PM on October 12, 2009


Response by poster: amtho

I'm not entirely sure either. Your interpretation does jive with what the others are saying, as QA not being a good introduction to the software development position I'm seeking.
posted by Pontifex at 6:34 PM on October 12, 2009


Response by poster: furtive

It sounds like you're afraid to actually apply yourself and make mistakes and write code that will inevitably contain bugs.

Oooh, very good catch. Yes indeed that is one of my weaknesses, I'm attempting to address by working on an open source project once I work through my Java introduction.

You'll learn a lot more making those mistakes than you ever will looking at other people's mistakes, which assumes you can both find them and fix them yourself.

Very true. I always learn most from my own mistakes, to be sure. Don't we all...

I think I'm actually attempting to fit my goals into a limited job market; Thus my thought process. Not actually a plan to move forward, but more of a strategy to make the most with what I've got to work with.

Want to be a good programmer while learning from other people's code? Work on a project, and you'll see what your teammates do, some will be better than others. You can get the same benefit now by joining an open source project. Every time I look at someone else's code my mind expands a bit, but I think your theory is flawed and regardless of your intention you come off sounding like you live (or want to live) in an ivory tower.

I, er, um, well. Excellent advice.

And I believe I can come off "living in ivory tower" as I tend to communicate in a very formal style when writing. So apologies if I came off that way.

At the core here I'm attempting to find direction from a very general plan I want to apply to my life as it stands at the moment. I need specific details to move ahead. I don't know quite what those details are, but I now have several ideas on plans of attack to apply to the future.

My tough love speech for you:

Voltaire said "perfect is the enemy of the good", and thinking you need more than having a comp sci degree to start hacking out code makes you the enemy.

I feel the love, believe me. Thank you, very much.
posted by Pontifex at 6:43 PM on October 12, 2009


Response by poster: So with that in mind, I suppose my question has changed in format and slightly in context if not in thrust:

Originally:

What sorts of job titles should I be searching for to maximize my return value for this type of work?

Revised:

What job titles can I get away with - beyond simply Software Engineer - applying for that will not prevent me from moving into such a position and provide positive resume experience I can display when applying for such jobs, that will further my goals and pay the rent?

Aside:

I suppose what I should take away from this experience, is that I don't necessarily need a full time position right out of the that would assist in furthering my goals; That developing for an Open Source software project may serve me as well or better (No politics to deal with, no PHB's, etc, etc) than a full time position at this time. Especially given the economy and the stuff competition I'm likely to face in even the simplest of software development positions.

Working part time or even temporary work will build toward what I'm looking for as well as straight into a full time position. Given that I work hard to improve myself. More of what I'm doing now, just with actually taking the plunge and contributing to the real thing (Open Source) without the stress of worrying about whether the education will put me out of a job and on the street!
posted by Pontifex at 6:52 PM on October 12, 2009


I'm a software guy with 15 years experience and lots of hiring under my belt. I nth all the other commenters above who say "dont go into QA as a path to software dev".

What I would suggest is finding your passion in software and write lots of code for yourself. Given to interview candidates - one who has 2 years of QA experience at IBM or the other guy with 2 years hacking up his iPhone apps or taking shots at the making some of the more esoteric languages competitive in Computer Language Benchmarks Game its a no-brainer, I want the 2nd guy.

The other thing about this is that the field is so big, and getting bigger. You a hardware guy and want to do embedded programming? Awesome. Web your thing? Great. Games? great, business software, databases, high-performance C++? If you wait for a business to just pick you up with little skills you will find yourself in legacy code hell and wonder what you ever saw in the field.


So in a nutshell: Dont worry about the job for now, hunker down and write some cool shit, then put that all over your resume and apply for jobs that are in the subset of software you are interested in.

my .02
posted by H. Roark at 12:00 AM on October 13, 2009


Response by poster: H. Roark

So in a nutshell: Dont worry about the job for now, hunker down and write some cool shit, then put that all over your resume and apply for jobs that are in the subset of software you are interested in.

Excellent summation, thank you. I'll pursue what I can to get (physically) where I want to be and work on getting (intellectually) where I want to be on my own time and through my own "cool shit".

Thanks!
posted by Pontifex at 9:03 PM on October 13, 2009


« Older When iDiots, iMmersion and iPhones collide, the...   |   Looking for a nystagmus/artcar tracker Newer »
This thread is closed to new comments.