Slashdot Mirror


Ask Slashdot: Advancing a Programming Career?

AuMatar writes "I've been a professional programmer for 10 years. The startup I work for was recently bought, and while I was offered a full-time job, I opted to accept only a six-month contract. At my most recent job, I was lead developer for a platform that shipped tens of millions of units, leading a team that spanned up to three geographical areas I've done everything from maintenance to brand new apps. About the only thing I haven't done is been lead architect on a large system. What else is there to look for in the next job so it won't just feel like the same challenges all over again? I'm not interested in starting my own company, so I'm looking for suggestions assuming I'll be working for someone else."

18 of 165 comments (clear)

  1. Own Company or Game Designing by antitithenai · · Score: 4, Interesting

    While you say you're not interested in starting own company, why is that? Since you've been lead developer and are looking for further challenges, there really isn't much where you can go. Either you have to switch your area of work, go to management (which also switches your area of work) or start your own company.

    Having your company is definitely interesting and provides new interesting challenges. You also have much more personal feel to your work. At times it can be exhausting, but it's also really rewarding - but to yourself, and of course to your wallet. I wouldn't do anything else than running my own company at this point. It is definitely much more interesting than working for someone else.

    Apart from that, what is your line of work? Maybe switch to more interesting part of the industry. Game development can be fun too, if you're just done some other kind of software programming. However, I would really suggest you look into game designing and not programming. The latter is crunch work that can be done by almost anyone and in the long run extremely annoying. Designing is fun.

    1. Re:Own Company or Game Designing by Anonymous Coward · · Score: 5, Insightful

      I would really suggest you look into game designing and not programming. The latter is crunch work that can be done by almost anyone and in the long run extremely annoying. Designing is fun.

      I did games for 17 years and I disagree with that statement.
      There are parts of game development that can be done by almost anyone, and those parts suck. Things like shitty game AI and front ends. Things that don;t take any insight, just hours of monkey work.
      Then there are the parts that separate out the chaff, the low level optimization and driver stuff. I did the latter for almost all of my career and it was a blast. Every five years or so a new generation of hardware comes down the pipe and you get to wrap your head around a whole new set of problems building on the knowledge and experiences of before. Going form the old 8 bit stuff all the way to current consoles has been a hell of a ride.
      As for game designers, I've only worked with a couple that weren't idiots. The biggest problem I had with them is their inability to think about their decisions ahead of time and require the devs to actually build the bad ideas before understanding how awful their decisions actually were. The good designers were a blessing to work with. They had a clear vision and an understanding on how to get there. The projects with good designers you build once. The projects with poor designers get built two or three times on the way to final and are usually poorer for the effort.

      If you think you could be a good game designer then GO FOR IT! The industry needs you.

    2. Re:Own Company or Game Designing by Anrego · · Score: 4, Insightful

      I can sympathize with not wanting to start your own company.

      Marketing, accounting, networking, hell just coming up with an idea all things I very much detest. Being a wage slave sucks in a lot of ways but at the same time: you show up, do the thing you love (for the most part) and get paid enough to be happy. You don’t have to worry about how it makes money or where the next project is coming from... that’s someone else’s job.

      If you can partner up with a guy who has the same passion for wearing suits and working in power point as you do for cranking out killer code... then maybe it would be alright.. but having to deal with all that stuff yourself (in addition to actually writing the software) sounds like a nightmare to me at least.

      Obviously some people enjoy the whole package.. but we don’t all have that entrepreneurial drive, and I think going that route just to get more interesting coding projects is a bad move.

    3. Re:Own Company or Game Designing by timeOday · · Score: 4, Insightful

      If you can partner up with a guy who has the same passion for wearing suits and working in power point as you do for cranking out killer code... then maybe it would be alright...

      I think that would inevitably wind up a Steve Jobs / Steve Wozniak situation - in the best case, if the endeavor were really successful, he would gradually leave you in the dust and replace you. Whoever manages the money and touches it first has all the leverage. Might as well work for a larger company with more stability. (Granted Wozniak never had to work again, but Apple's level of success is unusual to say the least).

  2. Natural Transition by rwven · · Score: 4, Informative

    A natural transition for programmers can be "Enterprise Architect" roles. This will still allow you a modicum of programming, and you get to be at a slightly higher paygrade, with pseudo-managerial powers. If you're decent at your job already, this gives you more of a top-down on the process so you can truly shape a project rather than simply build the shape someone else has given to it.

    Just my $0.02.

  3. Figure out what you like by PCM2 · · Score: 4, Interesting

    Are you interested in anything besides programming? Maybe head that direction. I don't mean stop programming and do something else, I mean find a job where your programming skills will be contributing toward something worthwhile and that you're interested in. That might mean working on software to help find new cures for deadly diseases, or it might mean being a lead programmer for the NFL. Whatever floats your boat. If you're a part of a team that's doing something that you genuinely like and that enriches your own life, maybe it you'll be less concerned about "the same old challenges" and you'll be happy just to contribute toward the end goal.

    --
    Breakfast served all day!
  4. Teach by Anonymous Coward · · Score: 4, Insightful

    I would look around for the opportunity to break in to the education field. There is no field more challenging and the real life experience you would bring to the classroom would be invaluable to the students.

  5. Similar Situation by jomama717 · · Score: 4, Interesting

    I've been a developer for about the same amount of time as you and am now a tech lead/team lead, where "tech lead" means I'm the go-to guy for the organization on anything to do with my particular product (new design/architecture, integrations, major issues, what have you), and "team lead" means I act as the manager of all of the developers/testers under me (reviews, layoffs, vacation approval, all that crap).

    I'm coming to the realization that I kind of hate this role...I can only put myself down for 5-10 hours a week of actual development, and even that is usually a stretch, and the management stuff is quite stressful. It is shocking how differently people behave when you go from their peer to their manager. So, I find myself in a similar situation, what do I do now? I am the best developer available to work on my product, yet I am unable to find any time to actually code...all I can do is quickly spec things out as best I can, pass them to my team (also spread around the world) and get back to fire control/integration meetings/budget planning/etc. It's extremely frustrating.

    My thoughts wander from 1) Just suck it up, dive into the management aspect, do as much coding as I can on the side to scratch that itch (it is my true love), 2) Find another job that is purely technical - lead dev/architect, what have you (would probably lead to the same situation I'm in), or 3) Say f**k it and go totally off the reservation - try to start something on my own, or become a teacher and work on stuff on the side or something, complicating this option is the small matter of a family to feed... I just don't know.

    --
    while [ 1 ]; do echo -n -e "\xe2\x95\xb$((($RANDOM&1)+1))"; done
    1. Re:Similar Situation by wmelnick · · Score: 5, Insightful

      Here is the problem you are about to face... Next time you work under someone, you are going to second-guess everything they do. What you need to do it to ask your company to send you for management training, my guess is that based on how you phrased things you have never had any. After that you need to take the time to figure out how to explain to your subordinates how you want something done and let them do it. You may think you are the best person to do something, but if you can teach 5 or 10 (or more) people to do it the same way, that makes you far more valuable to the company and will get a you a larger paycheck as well. You just need to figure out how to do it all in a way that does not stress you to the point of snapping and eventually it will become easy and natural. All that being said there is nothing to stop you from trying to teach the occasional night class at a local college.

  6. How do you feel about Lumberjacks? by RingDev · · Score: 5, Insightful

    Every developer hits that point eventually. And your choices aren't necesarily limited. Assuming you're ok with a pay cut.

    There are plenty of opportunities to move in the direction or Project/IT management. That's the direction I've gone. 15 years of seeing poorly run projects and trying to get them back on track has left me pretty well practiced for taking the reigns.

    Switching over to the networking side of the house isn't a bad option either. There's some learning involved, and you're not going to start out as a senior architect, but you can get work with the ancilary skills you've developed.

    All industries can benefit from exceptionally bright solution developers. Look into 6-Sigma training and advance your career into process improvement.

    And if all else fails, get out of the office. Find yourself a lumbar jack gig, maybe come camp counciling in the summer, park maintenance in the Everglades, etc....

    -Rick

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
    1. Re:How do you feel about Lumberjacks? by rubycodez · · Score: 5, Funny

      Dear Sir,

      I wish to complain on the strongest possible terms about the previous entry in this webpage about the lumberjack who wears womens' clothes. Some of my best friends are lumberjacks, and only a few of them are transvestites.

      Yours faithfully,


      Brigadier Sir Charles Arthur Strong (Mrs.)

  7. Maybe a different thinking perspective by pkinetics · · Score: 4, Insightful

    My overused response to a lot of questions is: Unask the question.

    You've got a lot of technical and lead and coordination and probably management skills you've developed. So instead of asking where should you go next, ask what do you enjoy the most?

    It may be that you do want the challenge of a lead architect position, in which case you might be looking for a startup company. I have no idea how people get to that level. Some are bottom up evolution, and some are top down revolution type people.

    It may be that you want the joys of integration or release management, or something along those lines.

    Basically, in a nutshell, ask yourself what makes you happiest and pursue that. Worst case scenario, you've wasted a few months. Best case scenario, you grow into a beautiful butterfly...

  8. Take a job in QA by CyberDong · · Score: 4, Interesting

    Most developers tend to think that QA is for button pressers and failed programmers. However, having a couple of good programmers on the QA team can dramatically improve a product. If you're really a good programmer then you can take requirements and write GOOD tests. Also, as a programmer, you can deconstruct what the dev team has built, and look for ways to make it fail (i.e. the cases they failed to consider). If you understand the nuances of the language, you can better anticipate the edge cases that a lot of non-technical QA folks would miss.

    I've been down this path, and found that when a dev team knows there's someone who will call bullshit on their submissions (and can back it up), the code that's checked in tends to be better.

  9. Advancement where, then? by Jake73 · · Score: 4, Interesting

    I'm not clear on exactly where you'd like to advance. You don't want to commit to your employer (and only took a 6-month contract) and you don't want to burden yourself with the risks associated with success (by not wanting to start a company). I assume this also means you don't want to partner with someone.

    So you want exactly what out of advancement? No more risk. No more commitment. No more responsibility. Just money? Play the lottery.

  10. Re:Try Freelance commission work by PCM2 · · Score: 4, Insightful

    The only problem I see with freelancing is that he specifically says he wants to advance his career. When you're a freelancer, people tend to want to hire you to do the thing you did last time. It's just the nature of the beast; you're probably going to get a lot of jobs by word of mouth, and the word of mouth is going to be "when we needed that same thing, we hired this guy -- you should hire him, too." Also, people tend to underestimate the amount of hustle it takes to be a freelancer. You're always thinking about your next job, which means you tend to be reluctant to turn down paying work. These two factors make it very easy to fall into a rut.

    --
    Breakfast served all day!
  11. Lead architect moves you out of programming ... by gstoddart · · Score: 4, Insightful

    Almost anybody I've ever known who has moved onto being the lead architect isn't handling much (if any) code anymore. You're operating at a different level ... the overall design, the components that make it up, and working with the dev team to sort out problems. And, of course, working to define the requirements, use cases, and all of the other stuff like that.

    Which is fine, but from what I've seen you can stay as an actual Programmer for so long, and then people expect you to move into architect/management roles to oversee the people who now do the coding. Your job becomes big-picture kind of stuff. Sometimes they look at someone of a certain age who is still writing code and wonder why you're still doing that.

    If you're looking to solve new and interesting problems without feeling like you're doing the same thing over and over ... well, maybe what you want to do be doing it is working with a consulting company? The breadth and depth of your experience gets used for many different problems, it definitely changes often, and you get called in to help clients solve problems and develop solutions

    Not saying consulting is for everyone, or that it's even the best choice out there ... but when I 'graduated' from a previous job as a programmer and got into consulting, I found I got to work on different projects, provide different insights into them, and then work towards the overall solution.

    If you've been doing the kind of dev work you describe for long enough, there's a remarkable amount of soft skills you've likely picked up that are very marketable ... you don't need to know everything about everything, but knowing a lot about a lot of things actually makes you quite useful as a generalist skillset, with the ability to delve deeper when the need/occasion arises.

    --
    Lost at C:>. Found at C.
  12. The best thing to do by caywen · · Score: 4, Insightful

    Take some time off and reflect. Slashdot isn't going to provide you with any wisdom for something that is a function of you and your feelings.

  13. IT is a saturated market. by Anonymous Coward · · Score: 4, Informative

    While you say you're not interested in starting own company, why is that?

    I can give a few reasons why you wouldn't want to.

    For one software is extremely saturated - talent, businesses, products - you name it.

    Sales. Starting a business is easy. Watch: There I just started a business. Here I'll start another one. Bam! Two businesses in as many seconds.

    Sales. It's extremely difficult as someone who has been behind a computer all his career to get the sales. If you think it''s just a matter of cold calling, walking into a building, or placing an ad in CIO magazine; you will be quickly disillusioned.

    You will be competing with established businesses. A couple of years ago, folks were suggesting that one should get into the web page and marketing business because the companies they were working for were experiencing increasing sales. Of course they were. Try walking in as a startup and convincing someone that they should drop the guy that they have been doing business with for the last several years (and most likely pleased with them) and hire you. Try, just try to convince them. Do it cheaper? Never compete on price because there's always someone who'll do it cheaper. Anytime on RAC will show one that.

    Your own portfolio? It's a start - if you can get a chance to actually show someone who has the power to hire and pay you. And that's assuming your design and coding skills are so awesome that the potential client will fall in love with you. There aren't too many people like that in the World. .

    It's much more than hard work. If all it took was hard work, everyone would be successful in their business. And here's the killer: when you're in business for yourself, you will spend most of your time getting work. So you will not only have to meet your deadline for your project, but work in getting sales - going out to networking events, shows, taking "decision makers" out to lunch.

    Then there's the collections. Do you think at the end of 30 days, said company is just going send a check right over? Pfft.

    Industry: IT is a saturated industry. If your business has anything to do web design, custom software development, support, or anything sun of the mill like that - good luck! Folks like that are a dime a dozen. And they're all not screw ups.