Technology career planning

Rafe Colburn posted some good thoughts about career planning for programmers (like me), and whether to go broad or deep with your skillset. He says, "Aside from my specific knowledge of HTML, Perl, Java, SQL and other things like that, I have general knowledge of what makes sense for developing applications, how to get projects finished on time, and how to evaluate and make decisions on technology." For many jobs I've applied for, these general knowledge skills like application design and user experience design rarely come up. In fact, I've often had to fill out a grid of numbers: years of experience with given technologies. I imagine they take these grids and input them into a computer, calculating scores for all applicants. I know it's not that cut and dried in reality, but when programmers are hiring programmers it makes sense that they'd come up with an algorithm so they don't personally have to focus on the task. I wonder if there's a way to hack this standard hiring algorithm, and which method (breadth or depth) works best for scoring.

I'm at a similar decision point. I've always worked with Microsoft technologies: SQL Server, Visual Basic, IIS, ASP. Do I dive completely into .NET? Or do I widen my non-general skillset to include more open source technologies? Based on my experience with applying for jobs, I should stick with Microsoft so the numbers on my application can keep climbing. That's frustrating.

Comments

I've always gone wide. As wide as possible. Partly because it's my nature to learn new things I don't understand, and partly because my job demands that I write everything from the PHP/ASP server portion, supporting JavaScript logic on the page, and the Win32 Desktop application if required.

I fear that my "go wide" attitude will hurt me in the long run, as I won't be such a good candidate for management positions later in life. That's what happens to old programmers, no?
I have no idea what makes you a good candidate for management positions later in life, and I'm edging towards later in life. I'm trying to figure out, though, because I'm looking for a job and right now I'm only applying jobs in the "manager" or "project manager" category. I'm trying to slip out of the bonds of coding all day every day, and to get off the treadmill of matching up with the checklist that pb mentions.
Another axis to consider as well is 'business domain'. For example, (dead-trees) publishing, or financial services are both areas where experience within the specific industry are seem more important that specific skills.

I guess it's easier to cross train from say C++ to Java than initiate a Java coder with no financials experience into the whacky world of derivatives trading.

If you can get deep in a particular business domain, you're likely to develop the social networks that get you hired without going through 'tick-a-box' recruiters. You're also more likely to be able to explore new technologies at an employers expense.
It's not the programmers or technical folks who try to pigeonhole you: it's the HR types who don't know the technology and what skills are transferable. If you know C/C++, the various scripting languages or java would be easily grokkable (not so going the other way): the HR person reviewing resumes against job descriptions is going to pass on someone who doesn't have the magic buzzwords on their application.
I think most people struggle with this qn off and on. After a dotcom brownout, I am still trying to get a grip on my career. I come more from a business domain / project management / business dev. background and it may be presumptious for me to comment on this. But here are my two pennies:

I think both approaches work ( ie depth of skill set and breadth of skill set) so long as you have strong complimentary soft skills. There is a market for both PMs with deep skills in a specific technology and also for PMs with a breadth of skills in a wide variety of areas (to give a simplistic example: Chase Morgan doing Citrix consolidation will look for a PM with strong management skills, Hotwire rearchiteching their BEA Weblogic implementation will look for a PM with deep J2EE/WL skills. It depends on where you want to go)

In tech recriting (specially for large companies who outsource to external agencies), it is usually the hiring managers with suboptimal knowledge of what is required who create those stupid grids that you are talking about. A lot of times, there are mid level line managers who have lost the intellectual rigour needed to think thru requirements who also do this.

It sounds like an obvious thing to say: But what really really seems important is 1. Ability to articulate ideas cohesively 2. people skills 3. social networks. Consider the number of brilliant weblogs from tech people that I see on the net, it is a surprise that one runs into so few such people in offline life.

As someone said here before me - for specific business domains: Domain knowledge is incredibly important. But there are important trade offs. Very few people trying to get good domain experience in a specific domain are lucky enough to get work in exciting technology areas. So if you are looking for job excitement, you are either working with start ups or hopping verticals.

The other approach is to find a higher take off point. ie. go to a top flight consulting outfit / school and that brand equity will usually land you in a better position than if you were working your way up.
×

Search Results

No emoji found