Want to become a senior developer, or increase your seniority?
This is a common goal for developers. No wonder.
Becoming a senior will open up opportunities for you to work on interesting projects, create new challenges and even allows you to move to new companies if this is your desire.
Inspired on their conversation, what are some practical things you can today to improve those key abilities?
Let's get started on the road to be a senior developer:
Develop quickly is not only about writing code super fast. It is about writing correct code with consistency. That allows you to do it faster!
So the main thing is: get your brain trained to develop (correct) code.
To train your brain, a great suggestion is to run Code Katas. Those little coding exercises will create "muscular memory" for coding, pretty much like martial arts Katas create muscular memory for the fight moves.
(If you don't know what a Kata is, remember the Karate Kid movie... Paint up. Paint down. Paint up. Paint down. Or... Put the jacket on. Take the jacket off, depending on the version you watched!)
The repetition ingrains the move (or in our case, the coding) in your brain. And frees your brain to focus on the problem you are solving instead of on the mechanics of the language.
Schedule some time during your day to experiment with a kata. You need to repeat it several times, so it is better if you set time daily to do it. Then, just get started!
A great resource is: http://codekata.com/
Another brain training technique is to get really good at the keyboard.
The keyboard is our main tool!
This may look too small a step to become a senior... But in reality, getting good at the keyboard will free yourself to focus on the important parts of development. The same way that being really good at the strings of a guitar frees the musician to focus on his performance and his audience.
What makes a musician "senior" is not the ability with the strings, it is his contact with the audience. But he can never focus on it if he is fumbling with his notes! What makes you a senior developer is not your ability with the keyboard. But if that holds you back, no way to get there!
15 minutes practicing this a day can make a huge difference. Choose one shortcut a day, and spend the whole day using it. Practice it while you are waiting for a build or a cloud machine to come up.
The more the basics are ingrained, the more your brain can focus on writing correct code.
Finding the ideal solution is the ability to solve problems. More important: to solve the right problem!
This comes with experience, of course. But unfortunately, many developers just rely on experience to improve this. The issue here is that it may take many many years for you to be exposed to enough different projects and problems for you to develop this skill!
Let's turn the table: learning how to solve problems is a soft skill that needs practice, and you can practice it no matter what project you are working on.
First, you need to really have a process, an algorithm, to solve problems. There are a few ways to approach problems, here is a good one that you can follow. Understand this process. Follow the steps. Make a checklist if you need.
Now... Practice it!
Look around you. When you commute to work. While you are watching a movie. When you walk for lunch. Try to spot problems -- any problem -- and try to solve them.
No, I don't mean that you should get late to the movie because you are trying to get the popcorn people to change the way they are serving customers... All you need to is to practice in your head! You need to train your brain.
Spot a problem. Propose a solution. Think it through. Shoot it down. Think of another solution.
There is always a reason why our solution is not ideal. Senior developers are capable of understanding this, and compromise or prioritize. Get your brain trained to see and propose solutions to problems.
We love technology, and the challenges excite us, right? But too often I see developers -- even senior ones -- that follow a deep rabbit hole trying to fix a problem. And it's the wrong problem...
Usually, because they didn't really understand the problem, to begin with. And they are not trying to fix the cause, but something else entirely... Valinda Chan says "You can’t solve a problem you don’t understand. There is a difference between the problem and the problem you think you are solving." Very true.
That's why it's important that you follow a method. Every time.
It's too easy to just skip something, and then -- many hours later -- we realize we are on the wrong path...
Valinda's 10 steps to solving a programming problem is a good start. Learn it. Use it. Adapt for yourself. Keep improving your problem-solving method.
I left this one for last because I think is the most important one. A senior developer is someone that makes the whole team better.
And nothing makes a team better better than helping the people in the team be better. So, be better at making others better!
Arg... But did you get the point?
You can improve yourself a lot. Practice a lot. Do code katas. Solve problems. But if people around you are not improving, then you are not really being a senior developer, and also, you are not growing as fast as you could.
Helping others to succeed is an important leadership skill. But, from all those abilities, it is also the most visible one. People will notice. And follow your lead.
That's how a senior you became.
A leader is someone that inspires others to achieve more. Inspire people by expressing clearly, and helping them face challenges and learn for themselves.
This translates into direct results. Explaining your ideas during a meeting or a presentation is not only great for your project, but it will be a big push for your career. People notice when you can express things clearly in writing and in speech.
When ideas, problems, challenges, proposals, solutions are clear, everyone's lives get better.
A very simple, but amazing technique to build this skill is the Feynman learning technique.
To put this in practice, choose something you already know. Apply the Feynman Technique to it, and explain to someone!
I hear all the time from many developers that they want to help others by sharing. And that they will learn this or that and will start sharing.
Don't wait... Start now. Start small. Share what you already know!
Yes, you can learn and then share (some people even share to learn!). But this is overwhelming... It means you need to share something you are unsure about.
But people need what you already know! The knowledge and experience you already have are helpful! How about you start from there?
Make a point to teach this week to your co-workers something you already know. It can be a piece of code you wrote. A technology you learned recently or in the past. Maybe a talk you watched or a book you read. An experiment you did. Even a small tool or technique.
Nothing comes to mind? Teach them the 6 tips above!
Seriously. All you need is to get started. So, start with what you already have.
Jacob and Ben had a great discussion. They mentioned 3 of the 5 basic skills needed to become a great developer (in this webinar I talk about all 5 skills).
Now it's your turn...
What are your best tips to improve your development skills?
Share with us in the comments below, and you will be already applying tip #6!
PS: This is my first dev.to post, thanks Jacob and Ben for the inspiration. Go check their conversation at the devpath.fm podcast.
PS2: This post was originally created as this YouTube video, and also a twitter thread. Share with your friends!
PS3: Cover Photo by Startup Stock Photos from Pexels