There’s a time in a boys life (or woman) when he/she crosses from junior developer, to intermediate developer. The intermediate developer can start making decisions in code without screwing the website up, though there’s the caveat that no developer is safe from mistakes.
What does a Senior Developer do? So, there is no official “body” or committee that actually designates someone a developer. There are schools, and now there is a plethora of bootcamps that allows someone to become “certified” after completing their course. No one person can officially be defined as a senior developer. The way to define yourself as a senior developer is to either be given that title, or through the knowledge/capabilities you have and by receiving recognition for having those capabilities and knowledge.
Here’s one definition for what a senior developer should know or can do:
1) Has a passion for the profession
I guess this one isn’t truly a given. Someone could have stuck around long enough, or he/she has been motivated only by money, but usually to stick around, I would say in most cases the developer is somewhat passionate for programming, even if the passion is there for a different language than what they’re usually using to develop things.
2) Problem solver!
The developer should be able to solve the problem at hand. What is the problem? Well, that’s also something a senior developer should know, having the ability to figure out what a problem is. Having an ability to define problems is in an area called a soft-skill. There are books and books on this topic. One aspect of problem solving I’m working on myself more and more is, is this problem really solved? What is the entire scope of the problem? I’m thinking I need to create myself a physical or mental checklist to write down the entire scope of a problem, because I can get caught up in actually solving the entire problem, only to realise I didn’t get to the entire solution, or the solution works, but there was something in the problem that broke as a result of fixing another part of that problem. So having a QA checklist for each task/problem you solve is crucial, I think.
3) Learn the fundamentals.
You should learn the fundamentals of programming, and you should learn how to use your programming language of choice properly. If you learn the fundamentals of programming, you can become a much more efficient developer because you will just know how to solve different problems. The same thing can be said when you learn how to use most of the functions in your programming language, because when you need to accomplish something that could be taxing on the server, there might be a more efficient way to do something, or a much better way to structure a website/codebase.
4) Be or have a mentor.
If you are working with other people, which you most likely are, in some capacity, you should try and mentor people. Regardless of whether you are a senior developer, and there are other developers at a senior level, you should accept help from others, and you should try and help others. If you help people, or accept help from people, you will learn and better hone your craft, thus making you a better senior developer!
5) Keep yourself up-to-date.
This is a crucial part of being any level of developer, but I think especially when you make it to senior developer, you might have a sense that you have learned everything there is to learn, and approach any team/person like you’re the smartest person in that room. I think there’s a fine line between not underselling yourself by downplaying your skills, and acting like you’re better than everyone else. If you treat everyone else as being a better developer than you, you will learn things you didn’t think you will learn. You should never ever stop learning new things either.
6) Leave your comfort zone.
If you leave your comfort zone, in most cases, you will become a better, more well-rounded person, which allows you to sell yourself to companies, or just become a better person in general, and better able to handle tasks given to you as a senior developer. Last year, I spent about 7 months going to Toastmasters. That was quite far out of my comfort zone as I was getting up in front of a large group of people almost every week and speaking on my own. I learned a great deal, I became so much better. I lead several Toastmasters meetings. I would possibly like to go back because it helped me socially, which is great as a developer handling groups of people.