First things first
Before anything, try to do a few things: be kind and flexible.
🙂 Be kind
This isn't just a quality to be a great senior but take it to life, be kind to the person next to you and they'll be kind back to you, for sure, kindness only creates kindness.
😎 Be flexible
Believe me when I tell you that I've met "senior" devs that said to me, this is the only way, and I won't do any different, and that's it. flexible in this context is be open, listen, try new things and be eager to learn from whoever has something to teach you.
Secondly
Being a Senior involves more than coding or communicating, it's a combination of lots of things, in my humble opinion.
Personal and Technical skills. you might have seen this in other blog posts as Soft and Hard Skills, basically the same thing, but personally I don't like to call them Soft and Hard skills.
I want to share with you what I consider important personal and technical skills for work, you might think some of them are unnecessary or a little exaggeration, and you know what, that's fine, because being flexible and accept what others have to say about you or your coding skills is part of the process to be a great Senior.
So, let's have a look at the Personal skills first.
👩🎤 Personal Skills
- Communication
- Proactivity
- Self-taught
- Flexible
- Teamwork
- Problem-solving
- Time management
And then, the Technical Skills.
🧳 Technical Skills
- Concept, designs and methodology domain
- Coding
- Testing
- Software deployment process
- Foreign language proficiency
And these are all the keys I consider the principle of being a great Senior, and of course I'll go through each of them, and I know I might loose some of you, but believe me, you want to understand each of these keys to achieve some seniority 😄.
Anyways, less talk more explanation.
👩🎤 Personal Skills
Communication
Being communicative does not mean, keep chatting all day long with your colleagues, although some chatting is nice to have. it is about process, talk to your designs, talk to your PO/PM, say what you think, contribute with your knowledge, explain to other devs kindly what can be improved, inform the team of issues, really participate on daily meeting (standup), be there, present, ask questions, listem to them.
Proactivity
Did you finish your ticket? nothing else todo? well, be proactive, ask a colleague if there's anything you can help with, pick up the next thing, read a blog post, test some new tech, create technical improvements tickets, try something, I'm sure you can find something to have some fun as developer.
Self-taught
Tech is always changing, so do you, read a book, check tech twitter ever now and then, follow tech influencers, library/frameworks blog, youtube is your friend, lots of content there, make a todo list of things you wanna learn, you don't necessarily need to be an expert on what you're learning, but have fun and study!
Flexible
Honestly, this is my favorite, be flexible will help you not just at work, but in you personal life, accept criticism, reflect about it, change if you must, or not, but listen more and respect each other, be kind, he/she might be your colleague for a very long time, better to have a friend than an enemy at work 😅.
Teamwork
If you work for a company, you and your colleagues are in the same boat rowing to the same direction, if just 1 person rows while the other 9 watch, you might not end up in anywhere, and it is also pretty unfair with your colleague. so, let's help each other, on meetings, or your day-to-day check with your colleagues, if there is anything you can help with, of course, manage your time between helping your colleagues and finishing your tasks, but be there when they need you.
Problem-solving
Catch a problem up, give some suggestions, solutions or any alternative, if nothing comes to your mind, be smart about it, say you do not have a solution from the top of your head, but you already took notes, and you're gonna research about and bring a possible solution as soon as possible.
Time management
In your daily basis you might have so many things to do, read emails, tickets and other instructions, then a few meetings, coding, helping colleagues. I know it is a lot, but manage your time with tools like google calendar, organize your personal agenda, take notes of everything that you say that you'd check later, go through a step-by-step, give estimation, be reasonable again, flexible, not because it's written in your notes that is set in stone.
well, I think this cover a bit of each of the personal skills, let's go for the Technical skills:
🧳 Technical Skills
Concept, designs and methodology domain
Nowadays there are a lot of new developers out there, lots of them don't know any concept, designs and methodology, they simply build CRUDs without thinking of scalability, maintainability and etc. Understanding how a language is converted to binary might be too much in some cases, but it helps, make sure you know basic concepts like functional programming and object oriented programming, singleton, inheritance, polymorphism, interfaces, recurring, etc and learn also about designs systems, agile methodology and more, even if you're a Frontend developer, be aware of all the things that happen in the Backend, and other way around, and make sure you know the most used technologies, study the advanced techniques, understand the language and the most useful of its API, go beyond!
Coding
Despite of any framework, library or language, developers should learn one thing first: Algorithm.
If you wanna be a Senior Developer, do not be a X language developer, be Algorithm Developer, language is learnable over time, algorithm is the core of anything and must be learn at first because as a developer, that's the thing you'll use everyday, sometimes, even when you're not actually coding, but thinking.
Testing
I know for some of you test is boring, doesn't aggregate on the feature itself you might be thinking, but try to see it from another perspective, what if your function of 50 lines is used all around the code base, more than 100 times called, and someone has to do a few changes on it, probably two things will happen, it's gonna break in the other 99 places, or the saint developer mapped all the places it was used and tested all the possible places and fixed them all but spent way too much time doing an undesirable work. testing is about maintenance, make sure your code won't break, that you product is reliable, solid and functional.
Software deployment process
Again, you don't need to be a DevOps expert to at least understand how deployment process work, execute it is another story, and nowadays you might not need to do anything because there's a dedicated team to take care of the projects deployment, but again, study about continuous deployment, continuous integration, build and deploy processes, artifacts, docker, kubernetes and etc. also each company is a different company and the way they deploy might differ from one another, however being aware of how these things work make you more trustworthy.
Foreign language proficiency
In my humble opinion, communication (Personal skill) is of the keys to be a great developer, perhaps second is foreign language proficiency, because it walks along with communication, but in short, express yourself, make sure people understand what you say, try to practice the idiom more, listen and read in the foreign language, without practising you won't reach the proficiency required from you, so, make an effort and be also great in foreign language proficiency.
And this concludes all the topics I had to share, I really hope these things give you some insights, I also know that I'm not a writer and some things might had come a bit wrongly but the idea here, is to bring you some of my own ideas of what I consider a good set of skills to be a great senior developer. feel free to comment, discuss and disagree, I'm all ears. wish you all the best and thanks for sticking until the end!
Top comments (0)