What makes a programmer “senior”?

What makes a programmer “senior” versus “junior” besides his years of experience?  Certainly part of that is programming skill, but that’s not the whole picture.

Bright programmers may have superior coding skills than their peers, but that doesn’t make them “senior”.  Then again, just because a programmer has 10 years of experience doesn’t mean that they’re senior either.  The years of experience is misleading since just showing up at a job and not getting fired doesn’t increase your value.

Here are a list of things that most senior programmers can do.

1. You know more than one (programming) language

I think there are good programmers who know only one programming language (and know it well) but at some point it actually restricts your thinking. Everything looks like a nail when you’re holding a hammer. I think that knowing and having successfully used more than one programming language is an important step on the trip from junior to senior. I would say, supplementary languages like JavaScript and SQL only count if you have actually built full-scale applications using them.

2. You regularly code outside of work

I’ve railed against using open source as a requirement for hiring, but that’s only because many passionate programmers spend their time elsewhere. In addition to open source contributions, you could do consulting on the side, moonlight for a startup, build your own product or mISV.

3. You’ve built software from conception to implementation to support

The epitome of a mediocre programmer is on who expects to be handed detailed specs on a silver platter and then turn over the buggy code to the testing/support team. Any programmer worth his salt has worked closely with clients to develop the requirements and scope, to code it, of course, and also to support it. The support part is where you have to pay the piper if you slacked on implementation.

4. You innovate

Innovation is about doing something new that the people around you aren’t doing, in order to improve your processes or product. It’s not necessary that you’re the first person who’s ever done this in the world, just that you noticed a problem, developed a solution and implemented it.

5. You apply software to solve real problems

There is this romantic view of a hacker who codes all day long just for the love of the technology and what it does. That hardly makes for a good developer. In fact, I’ve seen developers argue with clients to do something better technology-wise but less helpful to the client. That is counter-productive. You can tinker on your own time. When it comes to work, you better enjoy writing code that actually improves things and solves problems more than you enjoy writing fancy algorithms or interfaces.

These are fair questions for anyone applying for a senior level developer position. The best part is that they’re irrelevant to years of experience. If a programmer can answer 4-5 yes then he’s a senior programmer. If it’s more like 1-2 then he’s not.

Of course, in an interview setting a simple yes/no question would mostly be an exercise in measuring ego. The much more important questions are “Can you give me an example of when you … ?”

What is your senior programmer score?  What do you think of these? Are there any that are not necessary for a senior programmer? Do you have other requirements for someone to be labeled a senior programmer?

38 Responses to “What makes a programmer “senior”?”

  1. Marek Blotny says:

    I would add one important (from my point of view) skill which senior programmer should have: knowledge of tools and techniques required for performance analysis. One thing is to create working software and another thing is to make sure that it will be fast enough in production environment, high load scenarios etc.

  2. tz says:

    Can the code produced be refactored to be more efficient (Programmer’s stone Quality Plateau).

    One person I mentored over several years went from producing working but cluttered code to something which was completely clean and efficient.

    How many refactorings does the programmer have to do before the code clean and clear and fully reduced (something analogous to 3rd normal form for databases).

    Senior programmer should be 2 or 3 (I don’t think this number can go lower without a completely clear specification, and those are rare – but given a generic task or description).

    I also think there is something to the “10,000 hours” from the “Talent is overrated” and “Outliers” books. You know what good code is and how to write it by maintaining and writing it. There might be some prodigies but the more code you see, the more contexts, the more problems, the better you will be at doing any particular problem or particular code. And you really can’t compress it. If you spend 3 hours a night hacking your own stuff while getting the degree, you will have a lot of those hours in.

  3. Hibri says:

    Interesting post. I’ve been interviewing devs for a senior role lately.

    3, 4 and 5 are the qualities I’d look for in a Senior Programmer.
    Someone who knows how to solve real world problems is likely to have more than one language in his/her tool kit. Although they would have solved many different kinds of problems, been in several projects and not the same project/website for the past X years.

  4. Nate says:

    @tz -

    I don’t think you can really count refactorings like that. Refactoring is more of a continuous process you have to do to keep your code in a usable/readable state – like you mention, you can’t ensure that a specification is completely clear – so how can you be sure that the code is fully reduced to the state it needs to be in? I’d think it would be like the person you mentioned – a junior developer just gets code to work any way he can and “working” is considered finished; whereas a senior developer cares about working code plus readability/efficiency/design/etc. and only considers code finished when these have been dealt with to a “good enough” state (because *over* analyzing code or trying to get it perfect before checking it in/releasing it can be just as bad).

  5. [...] What makes a programmer “senior”? Well it needs a bit more, but that’s quite a good start. [...]

  6. Anonymos says:

    I’m about 2 years a developer. When i was younger (14-19) nothing was impossible, i hacked the whole night, wrote small games, built software… But now it’s like the time is over !?? I can’t really motivate myself writing cool apps or games at home. If I continue like that, I won’t be a good senior… Anyone with similar experience?

  7. Doug says:

    I have seen coders called themselves “senior” yet:
    1. write everything in a single class file (15K + line!)
    2. don’t know wtf a unit test is or against writing them
    3. bundling source code inside a JAR (java specific) for better debug
    4. 100-level if-else-hell nest
    5. build everything from scratch (for better performance)
    6. don’t adhere to any coding standard/format (the wild-west style)
    7. Don’t know wtf is continuous integration (what is a build server?)
    8. write straight code/logic in JSP (java specific)
    9. Do not use any new technology (see point 5, too risky)
    It could take me all day to list all… But I have seen those behaviors with some senior guys I work/ed with.
    Those drive me nuts.

  8. Shaun says:

    Not a word about leadership?

    In my company technical skill alone will not get you a “senior” position. You’ve got to be able to demonstrate leadership skills. Probably principal among these is the ability to be a mentor to your peers…

  9. DMB says:

    Lots to chew on here. I was recently promoted to a senior position, but I think the status is exclusive to my current company, and wouldn’t necessarily be interchangeable if I were to hop jobs.

    I look at this list and feel like there are a lot of areas where I still have plenty of room to grow. The list certainly captures the qualities in people that I admire as “senior programmers”. I might also include the ability to confidently make good design decisions, and more efficient production of good-quality code. Perhaps that can be rolled into innovation and experience with the entire development process, but it’s what I aspire for.

    I think there’s also a leadership role rolled into this, even if it’s mostly by example.

    I’m curious, do you (and commenters) think that every development team needs a senior programmer, or can it get by without one? What particular experiences shape a senior developer, and which do not? On my current team, there was an obvious need for someone to take the initiative and fill a senior role, especially in a leadership sense (setting an example and taking the initiative with regards to team processes and priorities, etc.) I took it on, but it was only at the suggestion of others that I acknowledged my additional responsibilities as those of a senior developer. I do feel like that role is a bit disjoint with what’s presented here – my programmer chops are still rough at the edges.

  10. Oaz says:

    #3 is essential and not enough
    Not only you must have gone through support but you should also have gone through 2 or 3 major releases of the same product to understand the software life cycle and its implications on development.

  11. Xain says:

    Wow! I feel almost better about myself! I have the same “can still grow” feelings DMB has, but I feel I got a yes out of most of those. Though #2 could also be a sign of terminal geekness….. “We’re sorry, we’re too late. He’s a geek ma’am. There’s nothing we can do…” “But Doctor! What can I do?” “Upgrade his video card, and give him some more RAM. That will help him enjoy what time he has left.” *dramatic music played on an organ*
    However, so there’s 2 issues I have with the post:
    1) The reference to SQL being a “supplementary” language…. I am a closet DB freak, and can admit that it borders fanatic….. However, you have to admit, if a developer is amazingly awesome, but gets put with a crap DBA (and the Awesome Dev can’t SQL enough to make up for it) then the project is officially of “creek!=paddle” status. I work in support at the moment, and I’ve had a number of problems go from mundane to “HOLY CRAP THE SYSTEM IS CRASHING” because the DBA didn’t do something right, or decided they knew better and did more then they should have. Those weekends SUCK! Mainly because the crap DBA is usually unreachable during the weekend…..
    I’m going
    2) DMB’s comment about needing a leadership trait is a good idea. Leadership potential is one of the hardest things to verify until it’s needed, then it’s “hope they have it….” and roll the dice. I’m going to go farther and say the missing “senior requirement” is the ability to work in a team. I’ve been around people that we affectionately referred to as “code savants”. I knew 3 during my college life. Of the 3, 2 have incredible team work skills, and people, including myself, flocked to them and enjoyed every second of our time together. I was even team lead for one of the class projects with Woflgang, one of the savants, on my team. He never tried to overrule me, even though his mastery of the coding language was far higher then mine at the time, and he was always working on making sure everyone got involved, even though he could have easily written the code all by himself. The ability to work in a team, along with the other traits listed, would give the senior developer a leadership quality when it was needed, and a leadership support quality the rest of the time.

  12. ich says:

    1.) Most fresh graduates would know more than one language.

    2.) I coded much more out of work when I was junior. Most senior people will be older, thus more likely to have family and a demanding live beyond coding.

    3.) Yes, this one I think is absolutely essential. I’d even add “repeatedly”.

    4.) Yes, but you could also be extremely experienced and efficient at something which does not require much innovation, e.g. designing and implementing financial transaction systems.

    5.) This depends more on your job than your seniority and is often true even for very junior people. Many people would never work on software that does not solve a real problem, as you’d be hard pressed to find payment for that.

    I’d rather focus on aspects like “knows the right algorithm for problems”, “knows the right technology for a problem”, “knows the strengths and weaknesses of common technologies”, …

  13. Anonymous says:

    [...] What makes a programmer “senior”? This entry was posted in Uncategorized and tagged Notes. Bookmark the permalink. ← Hello [...]

  14. Dev From India says:

    Here in India, anyone who can grind for long hours is a Senior Developer.

  15. Greg R says:

    Just a quick point in an otherwise good essay – you might want to use more gender neutral pronouns in the final summing up – otherwise the implication is that only men can think about being senior programmers (which is certainly not true!)

  16. Tom says:

    Junior programmers – still learning how to program and how to turn programming into a business need

    Programmers – know all the features of a programming language, but usually get caught up in the technology. He/she will develop a program for 1/2 a day to enter 20 records, when they could have spent 45min. doing data entry.

    Senior programmers – know all the features of a programming language and use the best parts to get their job done. They understand the business as well as the programming to develop high quality business needs.

  17. A very good essay. I like it when somebody admits that years of experience do not tell much about a person, it happens rarely though.

    I think every good programmer should come to a point where he stops focusing on coding and starts to see the big picture. Programming languages, frameworks, tools – these are just the instruments. We use them to achieve something. Let’s focus on that something.

    For example, when I’m programming it’s not the process which I enjoy but the anticipation of the product which will come afterward. So I focus on that goal, not on programming as a self-purpose.

    Another criteria to mark the coming of wisdom is when a programmer conducts his work based not on a methodology/process/design patterns/formal rules but on his actual goal/real-world-situation/common sense. It’s important to understand what you’re doing and why you’re doing it.

  18. [...] to “What makes a programmer ‘senior’?” post, years of experience are not so vital, senior developer should have following [...]

  19. Amy says:

    1. You know more than one (programming) language

    I *probably* qualify here. i’m most familiar with C# but have done a significant amount in vbscript as well, and also know smaller amounts of a bunch of languages (c++, javascript, php, sql, actionscript)… enough to pick them up relatively quickly.

    2. You regularly code outside of work

    Coding is not my hobby. I have hobbies for hobbies, not work for hobbies. I have freelanced a few times and enjoyed it, but I do it for extra income and experience, not for fun. Being in school limits the amount of time I’ve had even for that. So I think I fail this one.

    3. You’ve built software from conception to implementation to support

    Yes, I definitely qualify here.

    4. You innovate

    I think the issue is more about practical and creative problem-solving. This is something I’m very good at.

    5. You apply software to solve real problems

    One of the reasons I decided to get an MBA was to have more perspective into the business problems that my software was designed to solve. So yes, I definitely qualify here.

    Overall, I think I make the cut. :)

  20. Xain says:

    @ Greg – You know the blog’s author is a woman, right? Avoiding along drawn out discourse on why, most of us are programed to default to “he/him” when talking about a group of people. I consider it the core bios of our mainframes. Some of us, whether out of caring, or anger, or any other motivation, have added software to overrule this with “they/them” but when we’re tired/fried, the threads hang and it defaults to “he/him”
    @Tom – I LOVED the description of the programmer spending 1/2 a day to avoid 45 minutes of data entry. I’d add the evolution of that to the senior description. Something like “When faces with needing to add 45 pieces of information, initially says ‘I can write a script’ but then decides ‘Or I could enter manually and be done by lunch’”
    @Amy – Yeah, I didn’t do much coding outside of work when I was in school (I did make one timer program to help a buddy farm in EQ2). Wait till you’re done with school, then see if you get those “I could code that” voices in your head…. hehehee….. Let’s face it, the App Store and Facebook are proof that those voices are powerful motivators for some…..

  21. Amy says:

    @Xain “I LOVED the description of the programmer spending 1/2 a day to avoid 45 minutes of data entry. I’d add the evolution of that to the senior description. Something like “When faces with needing to add 45 pieces of information, initially says ‘I can write a script’ but then decides ‘Or I could enter manually and be done by lunch’””

    The real evolution of this process probably goes even further, to where the programmer asks themselves “Is this something that will need to be done again and again?” and if so, they write the script, and if not, they enter the data manually and be done with it.

    Wait till you’re done with school, then see if you get those “I could code that” voices in your head…. hehehee…..

    True… I have those thoughts even now! The problem though is that there is SO MUCH stuff that I enjoy that is unrelated to programming or even IT, so even when I’m done school, I doubt that I’ll ever be the kind of person who programs regularly for fun (aside from a neat project from time to time, or freelancing for money).

    On the other hand, it’s many of those outside interests that helps me to have a broader perspective on the things I’m building at work. I think that they make me more well-rounded… I know how to ask better questions and can be more creative in my at work problem-solving. :)

  22. Amber says:

    @Marek You’re probably right, although I meet too many junior programmers who overvalue performance issues. For example, they’ve never seen a performance issue have a negative business impact, but they’re constantly talking about nitpicky programming tricks to improve speed (that don’t actually do so). So for that reason, I don’t think it’s a great test.

    @tz I think the 10,000 hours is valid to programming, but you still have to face the issues of what about the guy who’s clearly done 10,000 hours of programming but still can’t code their way out of a paper bag.

    @Hibri I actually expected more push back for the multi-language requirement. This is something that I’ve just observed empirically.

    @Anonymous I think you might be floundering in this space: http://www.fluentself.com/blog/stuckification/exit-the-middle/

    @Doug That’s what happens when senior is something you automatically fall into based on your age.

    @Shaun I don’t think I would put leadership in here. On one hand, I think a great senior programmer will naturally fall into a mentorship role for junior programmers, but I consider leadership an important quality of a lead. I think the ability to innovate (#4) is what leadership looks like at that level. For example, in a team you might have 1 lead, 2 senior devs and 2 junior devs. I would want the 2 senior devs to be mentoring the junior devs, but I wouldn’t want them to go around practicing active leadership. Too many cooks in the kitchen.

    @DMB That’s an interesting question. I think every development team does need a senior developer but that means different things in every team. I usually see the senior programmer (or lead programmer in the case of 1) do things like be the primary interface with the management/clients, interview and mentor new hires, and set the pace for code quality. There are exceptions but generally junior programmers follow the lead of the senior ones, in terms of overall sloppiness, code coverage, etc.

    @Xain You’re right about SQL. My husband is a “closet DB freak” also and his comfort level with SQL probably warrants a language point for him. I’ve even worked somewhere where the entire backend applications were built in PL/SQL. For many developers, though, myself included, SQL is something you avoid where possible with ORM and when you must, you’re doing basic selects/inserts. That hardly gives me the benefit of knowing another language.

    @ich I think most fresh graduates knowing multiple languages is not true. In fact, I’d bet many don’t even know any if you require them to be able to code something up from scratch using that language. Having dabbled in a language doesn’t count as knowing it. I do understand the part about the family, and it certainly does restrict the volume that you can do, but I think most senior programmers with families still do something (myself included).

    @Dev From India I think that explains this: http://www.codeanthem.com/blog/2010/07/outsourcing-doesnt-work/

    @Greg @Xain Yes, I’m a female programmer. We exist in the wild! Joking aside, it’s rather tedious typing “he/she” and “him/her” and breaks the flow. So usually I resort to “he” and “him”. I recently noticed that when considering hiring an admin, I used the term “she”. Sexist yes, but I’m over it.

    @Amy I find this with women more than men, including myself at times. Partly it’s a desire to do other things outside of work, but now that I have a kid it’s more than that. The reason why I included it is because I do still find time here and there to do things that are important to me (related to coding) but aren’t required for my job. Secondly, if you read Outliers you know that practice is a huge part of expertise. So even if choose to have a life outside of work, we are going to trade off some level of expertise to do so. We still might be better than the guy who codes next to us, but it is a disadvantage.

  23. 2. You regularly code outside of work

    I don’t think that is a reasonable statement. Certainly there were ‘phases’ most of us go through were we code outside of work, but if you’ve got a life, and your work is challenging enough, then the last thing you really want to do is spend time “hobby coding”. It is far nicer to focus on one great development project, then a multitude of little ones.

    Photography, writing, renovations, sports, family, entertaining, hiking, traveling, etc. There are so many other great things to do in this world that it also seems very obsessive/compulsive to spend every waking hour of every day glued to a machine, pounding out stuff. The world just doesn’t need that much code (and most of the stuff written is rather short-term anyways).

    Paul.

  24. To really get into a senior position, it usually requires far more than just being able to quickly pound out sorting algorithms. Software projects fail more often because of personal and organizational issues than they do from poor or missing code. Good programming makes it easier, but it is far from being the driving issue.

    We can split the different skills sets needed at the code level and at the project level:

    http://theprogrammersparadox.blogspot.com/2010/07/micro-vs-macro.html

    Paul.

  25. Xain says:

    @ Amy – HOLY COW! So yeah! When I first read the post, I had the same thought “if it’s gonna repeat, write the script” but forgot it by the time I read through the comments (they’re long on this blog!) Thank you for adding that! Totally agree!
    I don’t think you have to be a basement for life coder to count yourself as a “hobby coder” While in school, I wrote a small little C# program that my friend can set any video/music file on his computer to play after a designated time frame. He used it to farm high level mobs in EQ2. He kills the mob, resets the timer, then plays with his kids till he hears another song (yeah he’s an addict to MMOs) The projects don’t have to be huge, but if you’re a good programmer, and talk with other people, you’ll probably find yourself saying to one of your friends “I could write a program to do that”
    @ Amber – First off, I love bloggers that reply to comments! Second, props to marrying a SQL junkie! hehe. Also, I worked on a project called nORMa while in college. It’s ORM the next generation. If you, or more likely your husband, loves using ORM, I recommend looking into nORMa. If you can’t find any hard information on it, let me know and I can hit up my old professor. (you have my email from the posts right?)
    And I hope you know I didn’t mean any disrespect about the gender reference. Developing is one of the best industries to drop the gender crap and let the real devs do their thing. (That’s why I love the dispersed team idea from a few posts ago!)
    Now I’m rambling….. It’s not too often I find a closet DBA, and one that managed to find another human being to put up with him too! It’s so nice to know I’m not the only one not in my parent’s basement! hehe. I’m curious to know what his perspective is on the whispers of XML replacing SQL Databases. If it’s okay, either of you can feel free to email me, or you could toss a blog post about it.

  26. Amber says:

    @Paul I’m the last person to suggest to suggest that we should code (or work) 60+ hours a week. I certainly don’t. There are several reasons why this is not desirable, including the inevitable burnout, tunnel vision, lack of creativity and overall lopsided interests thing. But you don’t have to code 10-20 hours a week extra in order to “code outside of work regularly”. Like Xain mentioned, it can be a little program you hack together to get something done at home or for a friend. Or it could be debugging some code for someone on Stack Overflow.

    For a long time I used to call myself a “9 to 5″ nerd and it’s still mostly accurate. Meaning, I have no problem going deep into programming at work, but as soon as I walk out the door I’m done with it. I don’t want to do it or even discuss it. Over time that has eroded and I do tend to talk shop with my husband at the dinner table (he’s a coder too) and work on side projects, but I could see it fluctuating back.

    But the thing is, whatever I decide to do that is right for me personally, you can’t discount what people are doing when they do side projects. Not only does it expose them to new technologies and give them more “tools in their toolbelt”, it also contributes to that old 10,000 hours of practice required to become an “expert” at something. Just because it’s something that is common, or even a prerequisite to becoming a senior programmer, it doesn’t mean you have to do it, but that doesn’t make it any less valuable.

    @Xain No offense taken – it was pretty funny actually. Thanks for the awesome feedback on the blog. What Code Anthem will provide will end up being way more useful than a job board site, for both the employer and candidate – always looking for the win-win. Hopefully you can be an early user and help grow the site! Now I’m a broken record “coming soon”. It seems the closer you get to launch, the longer the to-do list gets.

  27. Hi Amber,

    I would never discount outside experience, that is after all one of the best ways to jump from one technology to another. If you work at C#, but would prefer a Java job, you usually won’t get hired until you have some experience. Easy fix: just write something on the side; most often that is enough to get the door open.

    My point thought is that it isn’t (shouldn’t be) a prerequisite for a senior to have done this at some point. I met excellent coders, who actually hate programming and only are in the business for the money. What my friend calls “true believers” are often more energetic and creative, but if you’re on a critical project with enough leads you don’t need any more fanatical chefs. Simple, solid performers are more valuable (I like to call them “ships-of-the-line”).

    In a weird way it isn’t even really a prerequisite for a senior to be a super-fast, gifted coder, unless they’ve be assigned a critical chuck of the coding work. A weak coder who knows the domain, understands how to lead and can design solutions for the users can lean on a group of younger better coders. Way back I refactored a mess of code, in a few months, that turned out to be a perfectly decent commercial system. The developer had excellent ideas, but was extremely weak on organizational issues. All he needed was a big of youthful energy.

    Paul.

  28. Amber says:

    @Paul I don’t really think it’s a prerequisite, but I think if I thoroughly evaluate someone’s skill and productivity level and they come up “senior”, more often than not they do code on the side.

  29. Yëco says:

    Here’s a very related article by Geoff Sowrey about what makes a senior developer. He has a valid point about the required soft and hard skills.

    http://www.sowrey.org/2010/02/what-makes-a-senior-developer/

  30. Xain says:

    @ Amber – “It seems the closer you get to launch, the longer the to-do list gets” I wish I drank sometimes….. Oy! We’ve had “This is it” deadlines from our sales side so many times, and each time falls through, and the next client to be gives me another 2-6 features to add…..
    I am SO eager to see this mystical new “better then a job site”! hehe! Makes sense you aren’t doing the same old job site. I’m very excited!
    @ Paul – Remember, you don’t have to be 100% yes on all the points she listed. Just the majority. Though your description seems to point more toward a productive manger with coding skills. My definition/goal of a senior developer could complete the project on their own or with a team. I don’t want to discount the value of someone that knows how to properly leverage individual team members to maximize the output. In a large corporation, where the developer recruiting practices fall under the standards Amber suggests here, the ability to maximize a team’s skills is extremely valuable. But, for me, a senior developer title doesn’t have to do with how much/many team responsibilities you have. A senior programmer brings a solid understanding of how to code good stable code, and delivers on their potential (note the “they” ;->) I did like your description of a very productive manager. I have had a few in my team based work experience, and I loved working with each of them.

  31. iThoughts.de says:

    WHoa. I’m a senior developer but am still payed like a junior.

    I guess you should mention speed of development too. In my experience seniors are just much faster than juniors.

  32. @Xain — Yes, I glossed over the 4-5 yes point near the end of the post, instead focusing on the ‘can do’ part (sorry Amber :-) . In regards to the productive manager who codes idea, I’ve been holding (or acquiring) duel roles on most of my projects for the last decade. I’m often managing the project, while also a tech lead. I really think things would be better if the industry could accept this more often, usually they want one or the other but not the combination. The drawback is that sometimes it’s hard to context switch out of programming mode, and into management mode (the same reason I don’t like micro-programming tests). Once you get used to it, being able to control the features, schedule, releases, etc. can make development way more sane, but you always have to be careful to balance off the organizational needs against the development ones (and err on the side of the org).

    If I had to pick one and only one skill for seniors I would choose ‘Independence’. An old TV show once talked about the different employee types, breaking them down as ‘princes’, ‘knights’ and ‘knaves’. A prince is a manager that sets (and is obsessed with ) a fiefdom. A knave is someone you need to order around, in order for them to get their work done. A knight, however, is someone you send off for quests. A senior should be a knight. If they don’t know how to do it — whatever it is — then they should go off and acquire the skills to get it done without asking. If you need to hold their hand through the process then they are still a knave.

    @iThoughts.de — Actually I’ve slowed down a lot in terms of raw coding speed and I can’t do 14 hrs straight anymore. But, I do tend to get the first version closer to the final one (most of the time), so I generally have less work to do than before (and I don’t have to think hard about 90% of what I’m doing, because I’ve been there before).

    Paul.

  33. Xain says:

    @ Paul – Pointing out a connection between coding and knighthood to a coder that grew up as a tabletop gamer….. As the band member in Wayne’s World says “I love you man!”….. Now I’m going to have to hang some of my swords above my desk at home!…. Geek squared for life!
    I have loved my time with managers that have both technical and organizational skills. However, in my experience, the managers who are unable/unwilling to delve into the technical side usually have more time for the whole office politics side of life, and they end up getting more recognition even with a less satisfied/motivated/efficient team. But I digress into my anti-office politics state of mind….. Oy!

  34. [...] Driven Integration Estimating Work Shared Between Two Backlog Items Better Coding Through Community What makes a programmer “senior”? Senior developer versus junior developer Video: Keys to Successful Agile Adoption Calculate Free [...]

  35. Swizec says:

    No, just being able to answer all of those doesn’t mean a senior programmer. Looking back at myself 5 or so years ago when I was 16 I could answer “yes” and provide examples to all those questions.

    But I was still a noob. Definitely not someone I’d consider a senior programmer nowadays when I’ve got my own startup and am in charge of hiring people.

    The important thing you missed is that a senior programmer needs to have life-skills as well as programming skills. They have to be a developed person if they’re going to impart their skills on those less awesome, they also need the humility required to be able to learn from and get along with those less gifted.

    Otherwise they’re just a douchebag.

  36. tz says:

    @Nate – Refactoring should be an ongoing process, but it often isn’t. And a more senior programmer can refactor a junior programmer’s code and get an order of magnitude resource saving.

    @Amber – 10,000 hours means 10k different hours, not 100 hours repeated 100 times.

  37. [...] blog Code Anthem publicou um artigo onde ele mostra algumas habilidadades que um programador deve possuir para que [...]

Leave a Reply