Senior… What does it mean?

According to Merriam-Webster vocabulary, it’s a privileged status attained by the length of continuous service. But if we are talking about our profession? Does this mean that if u worked for 10 years - u are the coolest and most knowledgeable one, and so senior? Does it?

background

When I started to code, I want to become one of that guys, who can do code everything and hack anything, instantly, like in cool movies :].

I did not understand how much effort and works, passion and scrupulosity, books and article, video and conferences, and many other things this require. I want to be a senior developer. Period.

That was my target, to which I walked using strait (to be honest not strait) road for about 2.5 years. When I got promoted I start thinking about the next steps. I start thinking about where I wanted to be in 5 years. I thinking about this for about a year or so.

The important moment here - is that during this year I learned a lot - a new version of Swift, a new functionality of iOS, a new programming language c# for xamarin, a new framework SpriteKit and even more… What does this mean? - all this year, in my senior position I was learning even harder than previously, simultaneously I also managed a team on my project. That was a lot of effort.

Next year - I spend time for investigation and learning unity, year after - Eclipse and c++…

What I’m trying to tell - is that u never know everything u want: the more u learn the more u realize u don’t know… Paradox? Impostor syndrome?

The opposite to Impostor syndrome is Dunning–Kruger effect.

Maybe, but from another side - u just realize that there is always much more than u can ever imagine - Rumsfeld’s quote about unknown unknowns help to understand this.

unknown_unknowns.png



Experience grows - the number of unknown unknowns also.

Check out wiki about Donald Rumsfeld if u want to know more about this man.

conducting an interview

Now, I often participate in interviews as one of the interviewers. Our goal is to recognize specialists, experts, and his/shes level of seniority and provide fair feedback.

level of seniority - what does it mean? I prefer to say - technical knowledge or knowledge in some area.

What features should be present in a programmer so he/she can be a senior?

Good questions are:

  • Does this person needs to have an experience with the latest technologies related to the focus area/field?
  • Does this person needs to have a reach knowledge?
  • Does this person needs to have soft skills?

  • u can continue…

The answer, off cause, is a bit tricky.

experience

Wizard. - This is how Andy Hunt named a true professional in his book “Pragmatic thinking and learning”. He describes a wizard as a person who can do hard stuff without additional effort, a person who can make it look easy. A cool explanation.

Do all experts are wizards? Definitely NO.

Do all seniors are experts? Definitely NO.

From this, we can see, that seniors must have some experience - this is the only way to do things efficiently, to do a thing like a wizard.

Experience matters.

Experience matters but in a tricky way - u can fill the difference between persons who work 2-3 years and the one who worked for 7-10 years. For an expert, u definitely must have at least a decade of experience, for a senior, obviously - no.

I read once that to become a professional u must spend 10_000 hours in some area.

As I was sad, I got a senior position after 2.5 years of work experience. But I was working often for 12-16h per day, on weekends, on holidays… If we calculate:

2.5 y x 12 h/d (average) x 25 working day / month x 12 month = 9_000 h

Close enough.

Does it worth that? I don’t know ;]

Does this mean that if u work for 10 years u are a professional, expert? Definitely NO.

U can bypass these 10 years, or u can work harder and stronger every new year. This also matters.

knowledge

In my understanding, this is a must-have component. As a senior, u must know all basic aspects of u’r profession, even if u don’t use them on every project. Why? Well, if u know u’r instruments - when u have a task, u don’t spend time searching for instruments - u spend time for searching a solution. That’s the point.

In school u at first learning how to make a calculation using paper and pencil, using u’r brain. And only if u succeed - teacher can tell u about calculator.

Same here - u need to know how basic stuff work. Bit vs bytes, binary and hex, heap vs stack… This matter.

Example from my experience.

When I started to learn - I didn’t have a book that can guide me over the language step-by-step, so I found a web platform with more than a hundred lessons related to programming.

I found one kind of a guide-book later - Matt Galloway - Effective Objective-C.

I read and practice with all of them (there were 114 lessons with practice, unfortunately, that resource does not exist anymore). I spend a month or two for that?

I read a lot, I test a lot, I write code a lot - lessons were about the filesystem, camera, images, location, database, networking, threading, and other stuff.

After some time we got a project with a task related to showing a big pdf on iPhone with additional bookmarks and other stuff. We start thinking about how to do this efficiently. After a few minutes, I remembered that we have a CATileLayer that can do a trick. I never use it, I just read about it and test it with demo code, but I know that it exists and that it can solve the problem.

The more u read, the more u learn, the more u know - the more u an expert.

Indeed, making a parallel to senior - u must know something. Under something I mean all the basic stuff and some advanced - to be able to solve most common problems without additional investigation.

soft skills

Soft skill is something that helps u to communicate and so more efficiently solve the problems and tasks. Is this important? - yes.

Soft skills save u’r time.

I do not a person who likes communication. But, I constantly working on this. A team is more effective than u alone. This is a truth that needs to be accepted and understood.

Teaching - is one of the ways how we can develop this. Teaching requires more time and effort than u can imagine, especially if u are not very social ;].

Results of teaching:

  • u helps people to learn and to move forward, skipping u’r own mistakes
  • u helps urself to organize the knowledge, improve it
  • u receive a connection with other people, potentially, u’r team member

At the senior level, u almost always have a team. Without soft skills u’r experience and knowledge are useless. Even if u the best one. Understanding this - is one of the keys.

so what?

The idea of this article was to describe a senior, expert.

A senior, in my understanding, is a person, who has some experience and rich knowledge in the field. A person who is a source of knowledge, and so, who continuously works on it (educate himself, looks for new technology, etc), who working on improvements in his field.

Senior follows the path of tech aspect, tech development, can help others, able to work efficiently in a team.

Senior can be an expert or wizard. This is an ideal case.

In my practice from 100 interviews, I can find 1-2 experts (at least I think so).

Andy Hunt wrote in his book (I already mention it above) that there is about 1-5% of all population are experts.

Resources