What Makes a Great Software Developer?

shutterstock_Andrey_Popov

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), developers who want to compete in a highly competitive industry should be unafraid to learn on the job; manage their careers aggressively; recognize under- and over-performance (and avoid both); know the politics of software development (which he refers to as “CS666”); avoid fighting other people’s battles; and physically exercise as often as possible.

Click here to find software developer jobs.

That’s not all: Church feels that developers should also manage their hours (and avoid long days when feasible), learn as much as they can, and “never apologize for being autonomous or using your own time.”

Whether or not you subscribe to Church’s list, he makes another point that’s valuable to newbie and experienced developers alike: Recognize which technologies endure, and which will quickly fade from the scene. “Half of the ‘NoSQL’ databases and ‘big data’ technologies that are hot buzzwords won’t be around in 15 years,” he wrote. “On the other hand, a thorough working knowledge of linear algebra (and a lack of fear with respect to the topic!) will always suit you well.” While it’s good to know what’s popular, he added, “You shouldn’t spend too much time [on fads].” (Guessing which are fads, however, takes experience.)

Over at Salsita Software’s corporate blog, meanwhile, CEO and founder Matthew Gertner has a long blog post referencing Church’s article. His own conclusion: If you want to become a great programmer or developer, learn to slow down.

“If you create something with a solid foundation that is usable, maintainable and meets a real need, it will be as relevant when you finally bring it to market as it was when you came up with the idea, even if it took you much longer than you anticipated,” Gertner wrote. “In my experience, projects fail far more often because the software never really works properly than because they missed a tight market window.”

But that hasn’t stopped many developers from embracing the concept of speed, even if it means skipping over things like code reviews. “We need to work on tests and documentation as we go, not leave them to an elusive future Shangri-La when the stress to crank out features has subsided,” Gertner added. “We need to recognize that our job isn’t about producing more code in less time, it’s about creating software that is stable, performant [sic], maintainable and understandable.”

Upload Your ResumeEmployers want candidates like you. Upload your resume. Show them you’re awesome.

Related Articles

Image: Andrey_Popov/Shutterstock.com

Related

13 Responses to “What Makes a Great Software Developer?”

  1. So what makes a great/good software developer? Article says, “learn, manage career, stead performance, politics, exercise” Wow, and all this time I thought it was understanding how to code in a way that produced products that people want and can use with minimal effort (something that most companies–including Microsoft and Apple–have forgotten…so maybe the article is right!)

    Linear Algebra? Interesting idea…it’s helped me but I don’t think it’s really necessary.

    In my opinion, great programmers know how to build products and understand the foundation that makes them sound, while still understanding enough human nature as to be able to make things that appeal to people.

    So who’s right? The author, me or something else?

      • That’s probably true…but all of the things said would probably apply to any career-oriented position, so it seems like the title was set up to draw in a very limited audience.
        If you’re going to customize an article to a career, don’t it seems that you should at least mention what type of people would be good at that career but not others. For example, in my opinion good software developers understand both technical and artistic disciplines. Those who only understand the technical side typically make products that fail because customers don’t know how to use them. Those who only know how to make pretty products find they lose their audience when it doesn’t do anything useful. (Of course, having the right product manager can make a mediocre software developer look really good!)

  2. Partial Pivot

    Linear Algrebra – Really?
    I are an engineer of the softwares,
    and am expert linear algebra person.
    Yet I never been asked to use that skill,
    or even have had need of it.
    My linear algebra is now mostly a hobby
    of mine. I use it for mine amusement.
    When I explain this to people I get the
    same reaction as those who read this article.