When should you call yourself a senior developer?
Whats the difference between Entry Level/Jr/Sr developers?
I'm curious what senior developer means because apparently the definition doesn't mean what I thought it would. I keep seeing these teens at 22-23 years old who call themselves senior X developer or senior Y developer. To me, a senior must have 10 years or so experience in programming to call himself 'senior'. I've seen a lot of these teens here (hence the question). Am I wrong? Why?
It's possible. I'm 21, and I've been programming for about 15 years. (I don't call myself a senior dev, though)
@Kev I'm 28 now, and I was programming at age 6. BASIC on Tandy/TRS hardware. At age 21 I had 15 years of BASIC experience (from TI-BASIC to QBASIC to QuickBasic to Visual BASIC), 10 years of C experience, and 5+ years with a half dozen other languages and assembly variants. I had mentored other programmers, and taught classes on the subject in and out of school. Was I a "Senior Programmer" then?
While I agree that at 22-23 you should not be a senior devloper, they are not teens. They are adults. Thinking of them as teens is a bad habit. It encourages them to not grow-up and it encourages the older person to treat them like they are less than a real adult.
Teens are defined as those people with an age range [13, 20) years old. So, the 22-23 y/o people you are dealing with are not teens. They likely have been programming for a decade already.
@Sparr: Accountability. Count years of experience as those spent coding for money.
@Josh K: or participating into free-software. After all the people who started VLC (the video player) were students who did it for free (and I am sure I could find other examples). But I do like the accountability argument.
@Josh K So someone with 2 years of paid experience is more senior than someone with 20 years of unpaid experience? I don't think that holds in any industry, whether you're a software developer, a millwright, a pilot, an actor, or a dentist.
@Sparr: You're claiming years of experience at ages that *do not matter*. If you're dentist told you he had been practicing dentistry for 20 years and was 30 years old what would you say? I think being a paid pilot for say 5 years is more comparable to being a hobbiest for 20.
@Josh K and you think a paid pilot of 5 years would be "Senior" to a hobby pilot of 20 years (with 4x as many flight hours logged)?
@Sparr: A commercial pilot with X years of experience is a known quantity. He has flown a logged number of hours, in specific conditions, with a co-pilot, all recorded and verifiable. The hobby pilot of 20 years has none of that, therefor he is an *unknown quality*. Sure he could be great, but he could also think that the best way to land is nose first.
@Josh K A hobby pilot of 20 years has flown [at least] a logged number of hours, in specific conditions, recorded and verifiable. He has to do that to keep his license.
@Josh K Then you have broken the analogy. We are talking about people with less paid experience vs people with more unpaid experience.
@Sparr: If you want to think that programming at the ages of 8-14 count as six years of experience you are more then welcome. I don't share your view and find it's usage to be a misrepresentation of your experience.
@Josh K I wish that half the "software developers" I meet with 6 years of professional experience on their resume had even half the experience I had at age 14. I fear you are being unfair, but I *hope* you have simply had the great fortune to only ever meet good programmers.
@Sparr: You could be a genius, I have no real way of knowing. If someone came to me and claimed 21 years of experience when they were 28 I would thank them for their time and show them the door.
@Sparr: As someone who ostensibly started "programming" around the age of 6, I'm with Josh K on this. I may have learned a hell of a lot by the time I was 15, none of that remotely compares to the programming I did when I entered industry. It's not as though I didn't write some apps, but I really don't feel that it counts to anywhere near the same degree.
I'm 17 and have been programming since I was 11. I think you can't compare one who've been programming in its spare time for x years against one who programs in a company of some kind for say x/2 years. They probably do different things and work in different ways (I'm not sure because I'm still at school). Having started programming in the childhood is certainly a good starting point, but not enough.
@qes Can you quantify the difference? Plenty of hobbyist programmers are doing enterprise-level planning, collaboration, quality assurance, etc. Today's 15 year old could be a top-10 code contributor to a project like Firefox or OpenOffice, but apparently that experience isn't worth much.
@Sparr: time spent coding has nothing to do with it. When you are mature and secure enough in your trade to take responsibility for an entire development effort, then you are a senior developer.
@pap taking responsibility for an entire development effort seems like a lead or architect trait, unrelated to rank or title as a programmer.
@pap I stand corrected. Still, taking responsibility for an entire development effort seems like a lead or architect trait, unrelated to rank or title as a developer. That is, "senior developer" means you're better at all aspects of the "developer" job than a "junior developer". It is wholly separate from "lead developer" or "development manager" or "software architect", which encompass distinctly different skillsets and job responsibilities.
You can call yourself a Senior when:
- You can handle the entire software development life cycle, end to end
- You lead others, or others look to you for guidance.
- You can self manage your projects
Software development is a curious creature unlike other fields.
Sometimes, a fresh punk out of college can run circles around veterans who have 20+ years of "experience". Programming is a bizarre world where code is king.
Some achieve the above in 2 years or less, others take 10 years.
+1 agreed. "Senior" is not a measurement of time with hands on keyboard. It's when you are mature and secure enough the successfully take responsibility for an entire development initiative.
I would disagree with the second bullet point. The ability to lead others does not define "senior". It defines the "lead" portion of a title. I know senior developers who I'd rather push off a cliff than follow them over it. I love your other 2 definitions though. +1
I'm not even graduated and I work as a senior developer at a multinational company (secret: I started freelancing since my 4th semester, then I started a small company)
@Joel - I would argue that you wouldn't want to push them off. Part of being a strong dev is thinking not just of the end user but the next developer.
@the fresh punk thing though - You can be a gifted coder, a brilliant inventor of algorithms, and still run into trouble simply because it's trouble you haven't run into before. I'm still cockier than I ought to be but even I figured that one out.
@Erik Reppen: It was just a turn of phrase to point out that there are many senior developers who have no real leadership qualities and are still capable.
I would also add, after 10,000 hours of real programming (not just sitting in front of a computer).
some take less than 2, others take 10 -- many won't _ever_ (I met quite a few of them...)
I know people than can do all the above but have an absolute disregard for software quality.
Personally, mines contractually my Job Title. Yes, I have numerous years of experience and I have Juniors that actually report in to me, but as for the title, I became one by default with the job I took.
@Aryeh Leib Taurog The could be something that Steve Jobs said: A small team of A+ players can run circles around a giant team of B and C players.
one more point... One should be consider sr if he worked with 5+ projects. or worked at 5+ companies.
"Programming is a bizarre world where code is king". This statement by DarkNight was the punch-line. Awesome!
I find the reasons to be very generalised. All 3 bullet points carry entirely different requirements depending on the scenario. For example running a huge app with 150 features written in Symfony with Doctrine yadda yadda, vs a small app written in simple procedural etc? In each case handling the entire software end to end, helping others, and managing my own project have *very* different skill level and knowledge requirements! One I need to know so much to be senior, yaml/config, auto wiring, an ORM, what controllers and the model is, etc, the other just basic PHP
@53E3916A I'd be careful about connecting a line between being seen as an "Expert" in a field (ie. the 10k hours idea) and being a "Senior" which in my opinion really just reflects your ability to handle the development cycle independently.. like point 1 states