Slashdot Mirror


Ask Slashdot: What Makes a Great Software Developer?

Nerval's Lobster writes: What does it take to become a great — or even just a good — software developer? According to developer Michael O. Church's posting on Quora (later posted on LifeHacker), it's a long list: great developers are unafraid to learn on the job, manage their careers aggressively, know the politics of software development (which he refers to as 'CS666'), avoid long days when feasible, and can tell fads from technologies that actually endure... and those are just a few of his points. Over at Salsita Software's corporate blog, meanwhile, CEO and founder Matthew Gertner boils it all down to a single point: experienced programmers and developers know when to slow down. What do you think separates the great developers from the not-so-fantastic ones?

3 of 214 comments (clear)

  1. Alternate Link by Anonymous Coward · · Score: 5, Insightful

    Here's an alternate link for the first article.

    Or better yet, skip it. Usual shitty dice.com summary article.

    The linked lifehacker article seems pretty good and I largely agree with it. Couldn't make it through the second one.

    Two things I would add from my personal arsenal:

    - Try to kick ass at least once a week. This sounds weird, but it's worked very well from me. In the perfect world we would kick ass every day, but I think realistically we (or at least I) would quickly burn out. So instead I try to just randomly pick a day where I come in with the mindset that I'm going to just fucking own whatever I'm working on. The day is random and sometimes I skip a week, but I usually manage, and while you would think inconsistent performance would stand out, I've found (at least where I work) that it doesn't, and people tend to remember the kick ass days rather than the average days.

    - Dive into the stuff that others avoid / are scared of / don't like doing for various reasons. I'm not saying take the shit jobs, but usually there are tasks programmers hate because they involve working with hardware, dealing with clients, travelling, or doing something out of their comfort zone. Become the <whatever> guy.

    1. Re:Alternate Link by barrywalker · · Score: 5, Interesting

      I've become the "goto" guy for a lot of stuff simply by being curious. I've had a significant hand in every single piece of our application and know it better than anybody else on the team. I volunteer for things that scare the shit out of most of our developers. All it takes is, "Huh. This is broken. I wonder how it works?" to become Mr. Indispensable.

  2. It depends by Tablizer · · Score: 5, Insightful

    The best "lone wolf" developers probably use something like Lisp and a high amount of math-like abstraction to crank out vast amounts of features in a short time.

    However, a good team programmer knows how OTHER typical programmers think and read code, and writes code that is easy for them to navigate, digest, and change. Team programming is more like authoring a good technical manual, not clever gee-whiz tricks.