How can I become the equivalent of a tenured next year or so?
October 31, 2007 10:27 PM   Subscribe

What is the (probably software related) job that I want called, and how can I get that job now rather than later? Obscenely lengthy explanation inside.

I am currently a programmer, pretty much fresh out of college. However, I find the day to day work of programming pretty tedious a lot of the time. I knew this coming in, but I find most things you could do right out of college vastly more tedious, so I figured this was as good as any and here I am. However, right now I'm trying to formulate some ambitions, and I just need to figure out what direction I want to point myself in order to get what I want out of a job with maximal efficiency.

What I really love is thinking about really hard problems and trying to figure out ways to implement solutions. This makes it sound like programming is the perfect job for me, except that I want someone else to actually do the implementation. I hate thinking about the details, and it's clear from looking at my code; I am careless when it comes to small things, and anyone who knows about programming knows that those small things are what separate the men from the boys. So what I desire is to have a job where I think about the big things, and move the small things to someone else.

For example, right now I'm looking at an extremely short term project for a one-off activity day, where my group is trying to drastically improve one part of a workflow in a way that requires some technical expertise that I happen to have due to my schooling (yes, very specific, I know). Right now I feel incredibly energized about this project because I am throwing around all kinds of round numbers, brainstorming ways to reduce the product space to create a prototype, reading papers about other ways this has been done, and so forth. At the same time, the implementation phase is coming any day now and I face it with total dread, because I'm going to have to be down there in the trenches, and for sure I'm going to throw down some incredibly wrong code or something that will tank us. This is not me being modest, this is me speaking from experience. Even when it's something I know incredibly well, and even when the ideas behind my code are sound, I am shockingly bad at turning out good code.

[As an aside, this lack of detail oriented thinking makes me very, very bad at interviews for programming jobs because the whiteboard coding problems typically require that you get things mostly right on the first try, and your syntax needs to make some amount of sense. I lean heavily on my compiler and unit tests, shockingly enough. Advice on overcoming this career liability is also welcome.]

I know of one job that sounds like what I want to do, which is to be a professor and delegate the details to grad students. I also suspect that people with titles like "architect" and "product manager" do some of what I want. However, I would have to go through either years of grad school, then the mad dash to get an actual professorship (eesh), or even more years of this same programming job and then maybe an MBA too, in order to get there. Is there a way I can have a job like the one I describe now, or soon? I do not require being in the software industry, although that is where my technical knowledge is so it's probably the easiest place to start with. How can I short circuit this process so I don't spend all my youthful vim and vigor working on the parts of problems I find brain-deadening?

I recognize that this question sounds like "How can I skip paying my dues and get a fun, inspiring job right now?" I mean it to be more "What kinds of jobs are there for someone with entry-level experience that play to my strengths and not my weaknesses? If any?"

I also welcome the reality check of "crinklebat, everyone wants the job you describe, but only the brilliant get it and you really do just have to pay your dues and work really hard for the next ten to fifteen years in order to get anywhere close." That would be a helpful data point in my quest for jobly fulfillment and probably would be in line with my current beliefs (if not my current hopes). I honestly have no idea whether the job I want is one that everyone would want.

So, um, tl;dr but I hope someone knows what I'm talking about and can offer insights and all that.
posted by anonymous to Work & Money (24 answers total) 9 users marked this as a favorite
I had the same problem with programming, and became a systems administrator. I feel like the maytag repairman about 2% of the time (which allows me to get the most recent version of Alien Arena running on my laptop, usually...) and the rest of the time I'm finding ways to make everyone else's job easier by automating some task. I give a lot of feedback to programmers on how they can improve the workflow of software we all use.
posted by SpecialK at 10:33 PM on October 31, 2007 [1 favorite]

You said it best yourself, "everyone wants the job you describe." No one likes mind-numbing detail work and no one wants to be the one who has to worry about all the little things. Everyone wants to be the big picture guy, everyone wants to call the shots like Steve Jobs or Bill Gates.

That said, I would not advise you to just "stick it out" as though somehow a better job will magically materialize just because you became older. Honestly, you don't sound like you enjoy the reality of programming and it doesn't sound like you feel like you're even good at it.

Find something that you really enjoy. Enough that you'd take an entry level job doing it. Your enthusiasm and natural talent will show and you'll rise through the ranks to get the kind of job you really want. Fortunately, since you already have computer skills, getting an entry level position at some other type of company doing some other kind of thing should be possible. Do it before you become addicted to high programmer salaries!
posted by TeatimeGrommit at 10:38 PM on October 31, 2007

Architects and product managers typically have years of experience, but postgrad is not necessary. I think what you're really after is a Technical Project Manager or Development Director type direction, though those will likely be years off as well.
posted by rhizome at 10:47 PM on October 31, 2007

My friend is a business consultant: she did a business/IT degree, and honestly can't program. She works at a place for a year or two analysing their workflow etc, suggesting/reviewing changes, then finds a new company (same job) because she's bored.
Another friend does this as part of a consultancy firm, where to get hired you had to have 'a PHD' (hers is in physiotherapy).
posted by jacalata at 11:27 PM on October 31, 2007

You might like working at a consultancy like frog design. They do a lot of high-level design, interface design, and prototyping-type work. Their projects require people with solid technology backgrounds who understand what's possible, who can brainstorm with designers and information architects and so on, but ultimately they hand over the heavy-lifting of implementation and maintenance to their clients.
posted by medpt at 11:55 PM on October 31, 2007

I recognize that this question sounds like "How can I skip paying my dues and get a fun, inspiring job right now?" I mean it to be more "What kinds of jobs are there for someone with entry-level experience that play to my strengths and not my weaknesses? If any?"

But that's what this question comes down to - you aren't unique, you aren't brilliant, you have no real world experience, you don't have an advanced degree, and at best you're mediocre as a programmer, so why do you think there's a job out there like what you describe that you can get without actually gaining useful skills and experience? And what would qualify you for that job over the other million people who graduated the same year you did who want the same thing?

Go back to school and get a PhD. Having that will mean that you are very well educated in a very narrow field, being painfully ignorant of everything outside that field that you studied, but it also means that you can immediately get a job where you're only responsible for big picture things.
posted by cmonkey at 12:16 AM on November 1, 2007 [1 favorite]

Another suggestion is to go work for a small start up for at least a couple years. Yes you'll have to do programing but you'll get to do everything else as well.
posted by captaincrouton at 12:56 AM on November 1, 2007

I know a lot of people like you.

Fresh out of undergrad, convinced that they're great designers, and that their bad programming is just well .. y'know ... bad luck.

Sitting from my oh-so-lofty viewpoint of a few years in the trenches ... you really, really don't know what you're talking about. You simply haven't gotten your hands dirty enough to really understand the problem domain - your inability to implement even a problem you know demonstrates this. This is normal. Usual. Standard. And the brilliant bit is - usually, the person in question doesn't realise this.

Here's the bad news: it will take you about 5 years of hard work to develop the skills you seek.

Here's the good news: if you can pull it off, in 5 years you've got it made, and that job you want will be there waiting for you.
posted by ysabet at 1:32 AM on November 1, 2007 [4 favorites]

Best answer: Hmm, I wrote a long response but it felt kind of like bragging. I think your question is kind of irritating for people because it does sound like you want to manage people who are better programmers then you.

I mean anyone can come up with ideas, it's the hard and smart work involved in the implementation that makes all the difference. I mean, if you have trouble with basic details like syntax and stuff then you really are in trouble. I don't think many people would want to hire someone who lacked the basic chops to do these sorts of jobs because if you don't know the details you might come up with unrealistic "big ideas", plus, like I said, anyone can come up with ideas and that includes people who can do all the work themselves.

On the other hand, there really do seem to be a lot of IT managers who can't really program all that well, or don't know what they're doing. So it's not like it's impossible or even that unlikely. But all of those people are just old people who have worked for a long time, know people, or just climbed the corporate ladder year after year. But it's not going to come right away.

If you want to be a better programmer, write a lot of code. I'm sure I've written hundreds of thousands of lines of code in my life. I've got a personal project for which I've written 13.4k lines of code since may, including the implementation of a red-black tree and memory allocator (which was probably unnecessary in some ways, but I wanted to challenge myself)

Hmm, now I've ended up with a long, braggadocios comment again. Oh well. I am really proud of that Red-Black tree, the reason i wrote it (and the allocator) was so that I could store (sorted) lists of things in memory mapped files in Java. It would have been simpler to use the JNI and C++ allocators to do this, or used Berkely DB, but I A) wanted pure java and B) wanted the experience)
posted by delmoi at 2:47 AM on November 1, 2007

Y'know, you can get some great tech jobs without being a super-genius, without much experience, etc... but the complete lack of attention to detail is a show-stopper for me. Whether it's entry-level HTML or data entry right up to tackling architecture, planning or consultancy, it's all about details; anyone can spout generalities and devise vague schemes based on limited experience/knowledge while leaving others to clear up the mess. Those people are called 'bad managers'.

Sorry, but it sounds like you either need to find a way to improve/encourage your attention span (you could try out other roles such as sysadmin or HTML/CSS to see if they're better), or switch to an industry that isn't so relentlessly detail-orientated.
posted by malevolent at 2:48 AM on November 1, 2007

Pay your dues. Personally I'd advise you to pay them programming, rather than in pursuit of a PhD, because that way you get paid for paying your dues instead of racking up student debt.

The good jobs do go to people who have a track record showing that they're able to jump through assorted hoops for at least several years.
posted by flabdablet at 3:14 AM on November 1, 2007

Are you bad with details in general or specifically with code?

I also suspect that people with titles like "architect" and "product manager" do some of what I want. However, I would have to go through . . . . in order to get there.

Some companies hire designers straight out of college. E.g.

also: consultant?
posted by lullabyofbirdland at 3:55 AM on November 1, 2007

You didn't specify in which field you would get a Ph.D. in - but whatever the field, to get to be a professor who delegates details to grad students, you have to go through the process of being a grad student.

You'd have a hard time getting through a graduate program in CS as you currently describe yourself, unless you're willing to pay your own way or you end up in an area of CS that involves little to no programming. Most CS grad students pay for grad school through RA or TA positions, and RA positions in general require you to program. Your supervisor (usually your advisor) won't be too happy with you if it takes you forever to implement something. A lot of TA positions involve helping students debug their code or showing them how to implement something (especially the intro classes). Again not good if you're not detail-oriented.

I am puzzled regarding the disconnect between your knowing what has to be done, and not being able to turn that into good code. A red flag for me is your reliance on compiler and unit testing. This indicates that you don't know well the programming language you are using, and/or you don't know as well as you think what has to be done. One question: how much time do you spend reading code? One way in which writers learn to be good writers is by reading lots of good writing. Same goes for programming, although CS education doesn't seem to emphasize this a lot.
posted by needled at 4:35 AM on November 1, 2007

Project or Product manager, depending upon where you are looking for the job. Where I work, which is in developing consumer electronics, it's a project manager. Other people I know do the exact same thing and it's called the other.

I managed to get this job after working for a few years in finance because I walked in, metaphorical balls out, and sold the fact that I can teach myself to do anything, and that managing process and final product is something that I do in my free time for a non-work-related venture.

Let me say that again - I had zero work experience project managing. I just had a lot of "extracurricular" and some awesome recommendations to back me up. So my advice is to work on the skills that this kind of job requires OUTSIDE of your current job - join or start a community organization, get involved with something online, whatever, so long as it's something you can work into an interview, and then get your ear to the ground and look for start ups, growing companies, etc, places that might take a chance on a bright, ballsy young person. And then when you get there, kick ass. That said, being a project and/or product manager does mean you have to pay attention to details - they are just different sorts of details compared to the ones in programming. It may or may not be for you. Feel free to email me if you like.
posted by Medieval Maven at 4:56 AM on November 1, 2007 [1 favorite]

Best answer: You think you want to be a person who sits in meetings 24/7. Two types of people seem to do this in programming:

1. Assholes
2. People smart enough to be needed in design and architecture

I never bothered to ask the folks from group 1 their thoughts. People in group 2 often sit in those meetings and dream of being alone in a room implementing something. The grass is always going to be greener on the other side. Your generation, and I say this as someone who's just on the other side of 30, is a challenge for the workaday world. We had long discussions at my last job around how to handle the coddled kids who expect a pat on the head for anything they do and think they are brimming with revolutionary ideas.

I don't know all the answers, I don't know how things will work out for you, but assuming you don't immediately get frustrated with not being CEO in two years, what will most likely happen is along the way: the scales will fall from your eyes and you'll realize how little you knew now. This process will repeat itself for as long as you continue learning. When you stop having these cycles, it's a problem. A good deal of my work-related reflection revolves around realizing what an asshole I was a couple of years ago.
posted by yerfatma at 6:53 AM on November 1, 2007 [1 favorite]

Best answer: What you're after doesn't exist.

There are roles for programmers who could/do see the details but have programmed for so long that they're burnt out of hacking in code or are too valuable to be stuck in making quicksort work best for your project.

But, you're not qualified for those roles. The details are what matters, and until you've seen enough details to know the good ones from the bad ones, then you don't really know anything useful.

I think you're fooling yourself in how much you think you see in the overall plans. Most anyone can throw a few arcs on a piece of paper and point and say "suspension bridge!", but you have to know to say "no modern material can withstand that load". Drawing the arcs is fun and easy. Too easy, and it's seductive to look at the curve and think you're better than you are.

So, you have a degree, but you're not yet a programmer. Become one.

1) Learn a language you don't know much about. Learn its idioms and why people love it. Fabricate a project for it, and program in that language/culture until you dream about it and then more until you stop dreaming about it.

2) Repeat about 10 times.

That will take about 5 to 10 years. At the end you will know enough to sit way above most any project and say "this is how it should be shaped" and not be full of hot air. It's not that the languages are useful for programming, it's that they shape the way you think.

You need experience, and that unfortunately means you need to spend time. After that, then you might be a good choice for managing a project and those details that you're then aware of will fade into the background and you won't spend time thinking about them unless your well-trained brain raises warning flags.
posted by cmiller at 6:57 AM on November 1, 2007 [1 favorite]

Look for jobs as a Business Analyst. That seems to be the route mediocre programmers take. Most consulting companies hire people right out of school to do that sort of work.
posted by chunking express at 7:08 AM on November 1, 2007

You sound like a normal first-job-out-of-college programmer to me. There's lots you don't learn in college CS programs. How to write reliable and useful code is one among many (working in a team and communicating efficiently, understanding that genius coding isn't as important as meeting stakeholder needs, understanding that the UI is the system - to the users - are some others).

Keep your mouth shut for a while and watch and learn from the more experienced people around you. Stop trying to get ahead and have lofty ambitions and spend a few years learning what colleges will never teach. I guarantee it will pay off.

Software development is all about detail, regardless of your particular role. There's no escaping that. Architects and technical leads have to understand the detail to be able to evaluate the work of subordinates. Project managers have to understand the details of the business domain, methodology and the implementation and design negotiated with technical managers. Even purchasers and stakeholders are more likely to get what they want if they're willing to collaborate on details of the specification. If those notions don't suit you, pick a different industry.

Look for jobs as a Business Analyst. That seems to be the route mediocre programmers take. Most consulting companies hire people right out of school to do that sort of work.

Only if they want mediocre business analysts. A good business analyst is the bridge between domain expertise and technical design, requiring sound knowledge of both. They're rare and valuable people.
posted by normy at 7:48 AM on November 1, 2007

I'm pretty new to the workforce as well, but I'm in consulting so I took the fast route... One thing I can say is this:

If you want to have a job like that, you need to take control of your career. If you're stuck in a programming job that you're not good at and you feel like your strengths are elsewhere, talk to your manager about taking on some projects doing what you want to be doing, and continue doing the programming job that you're doing now. Let people know that you have goals and aspire to do something and let them help you. Ambition is very important in the workplace. You won't go anywhere if you are a bad programmer, don't get better, and nobody sees you trying.

You might also want to look into companies that do a lot of outsourcing. In that type of position they are looking for people to do the designs and then ship the work off to somebody else. There are many unique challenges in this, however, and you might find that you need to get better at programming very quickly to help troubleshoot code.

Also- to everybody's point about our generation, I'm going to ask a new question to the hive mind to discuss.
posted by ets960 at 8:27 AM on November 1, 2007

Crinklebat, I don't want to muddy the waters, but I have to warn you about "paying your dues." It could be very well that after spending several years developing your coding skill and becoming a skilled and respected software engineer, as many have suggested, you'll enjoy being a programmer.

However, it is also possible you still won't like it, even if you are writing good code.

I went down a route somewhat similar to this. I wasn't sure if I liked it at first, but felt I could achieve some sort of "enlightenment" if I worked harder. I became immersed and was proud of myself for becoming a good software engineer. After a while, though, I realized that I just wasn't into it. Now, I'm trying to figure out what I should be getting into, like you.

So, I'd say that you should timebox the "dues paying." Maybe work hard for 1-2 years or a couple major projects, then try to derive how you feel about software engineering at that point.
posted by ignignokt at 8:40 AM on November 1, 2007

This question, the similar ones linked within, and the corresponding smackdowns that ensued may provide some perspective.
posted by mkultra at 8:45 AM on November 1, 2007

I want someone else to actually do the implementation.

Can't someone else do it!
posted by Chuckles at 10:18 AM on November 1, 2007

So what I desire is to have a job where I think about the big things, and move the small things to someone else.

Coding may not be the career path you want. It seems like a lot of coders have given answers here.

You can go on from being a junior coder to becoming a development manager. They have more of a larger project view but they still have to know all the details.

Large software organizations do have architects and technical product managers. They are usually the ones responsible for designing upcoming products and then helping to flesh out the technical implementation. They rarely spend any time coding although many of them have a coding background.

Here's the career path of one senior architect I know, spending one average a couple years in each role:
Junior Coder
Jr. Consultant (coder for hire)
Sr. Consultant (helping customers with project plans)
Product Manager (Setting direction for a major software product)
Architect (in a s/w development organization - attending planning meetings, writing high-level specs, architectural problem solving)

Architects at the highest level will have two backgrounds:

1)The first is technical - they need to understand technology at a deep level.
2) Customer needs - they will have been in some role where they face customers or understand customer needs. Consulting and product management can provide this.

A Phd in anything wont help you. They're sort of looked down upon here in Silicon Valley - where experience is valued over theory and most are self-taught.
posted by vacapinta at 10:54 AM on November 1, 2007

Your impulse is the right one - play to your strengths and not your weaknesses. However, stay open-minded about what those strengths and weaknesses are. You're still early in your development, and you may find that if you're patient with yourself in areas you consider yourself bad at, you can still outperform many, many people.

Don't listen to anyone that tells you that there's only one way to be - that everyone has to X, or Y. There are people who find it easy to focus and enjoy lots of detail work. Then there are people who need to get really energized to do well, but when they get in that zone, they are unstoppable. There are plenty of very successful people in both camps.

That said, find a position that promises to be a good fit, and then grind it out there for a while - 2 or 3 years, at least. You won't really have a strong read on yourself until you challenge yourself and grow. Unless you say "that's it, I'm just going to make this work, no matter what" there's too much room to make excuses, and you won't really find out what you're capable of.
posted by lbergstr at 11:01 AM on November 1, 2007

« Older On your toes.   |   can you save my roomies puppy from being strangled... Newer »
This thread is closed to new comments.