The 4 most important skills to become a great developer in 2021

Kenny Horna.
7 min readDec 21, 2020

I have some years now into software development, mainly as a PHP/Laravel developer. Since I was a student, I’ve noticed and applied what you will read below to improve myself as a developer and a person.

¿Quieres leerlo en español? Puedes hacerlo en mi blog.

You may have read the following elsewhere, however I want to explain my reasons for doing so and how it has worked for me.

1. Embrace the knowledge

I have always enjoyed learning. Whatever caught my attention or needed. Either something nice, like setting up a home media server, or something useless like knowing why it’s called chopsticks.

I started by visiting technology and design blogs every day since I had my first computer. Surfing between different topics and content allowed me to discover many things. But above all, it allowed me to generate questions that then I forced myself to seek answers.

This habit of always looking for new things has made my life easier, specially in our industry. Something that is the standard today.. may be outdated in 2–3 years from now. So you must always be willing to keep up to date and discover new trends . Remember: Knowing that this new tool exists, may be useful in the future when you need it.

Today we have an insane amount of content available, so I get if this may feel overwhealming. My advice is: stick to what interest you the most and then switch to something else if you want it to.

You can see the latest trends in many places like StackOverflow Annual Survey. Also, there’s sites like Hacker News, GitHub Explore an many more. Check this article of FreeCodeCamp which list a series of resources to stay up-to-date.

If you have interest in a specific technology or tool , follow communities around it. I love Laravel, so I’m subscribed to sites like Laravel News, Freek’s site and a bunch of other Laravel-related blogs. I have them added to my Feedly feed that I check daily. There’s also a lot of great podcasts that you can find related to your interests.

So Kenny, that’s nice.. but what happens when I need actual help with something? That leads to my next point.

2. Master your searching skills

One of the reasons of why I became better at searching stuff was my desire to fix issues or found answers. When I was at school I messed up our PC so many times that I already lost coun. So I desperately needed to fix it before they found out and ended up grounding me. Also, given I didn’t have much money back then (or any), I had to find alternatives or shortcuts to get what I needed/wanted.

You know, I’ve always been a geek. That’s why it seemed normal to me that my family or friends didn’t have the same ability about tech stuff as I did. I was (well, I still am) the IT-guy of the family. But, as I entered university, I noticed the same in many of my classmates. This surprised me a lot, especially since they were also software engineering students. This was also the case later when I started working in software agencies. When some of my colleagues had trouble solving a problem, they had a hard time getting help or figuring out why.

So, this are my tips for you on this aspect:

  • Check the documentation. I’m amazed at how many questions you find that can be easily solved by looking through the docs.
  • If you have a problem, the chances that it happened to someone else before are very high. So try to search for the exact same issue and use keywords. You’ll be surprised by the amount of matches you’ll find.
  • If none of the above helped, don’t be afraid to post your question with details somewhere. You have sites like StackOverflow (or any StackExchange site), Github, CodeProject, Laracasts Forum. This is miles better than asking in Facebook/Whatsapp/Telegram support groups.

The latter is important because not only will help you to get the answer faster, but it will also help others in the future. We’ll expand on this in the later.

3. Put your knowledge into practice… but in something meaninful

Like you too, I have followed dozens of tutorials. We have thousands of these available in different formats like articles and videotutorials. They are a great way to learn. You go hand in hand developing a small project which uses aspects of the tool of your interest.

The problem is that due to the simplicity of most projects, they end up not being interesting enough for us. That’s understandable, as they try to explain something in the simplest way possible. This is the reason why many times you end up forgetting part of what you learned in a very short time.

I while ago, I wanted to improve my Laravel skills as we (as a team) were developing a cross-platform app. At the time, I followed the “Let’s Build A Forum with Laravel and TDD” series from Laracasts. I learned a lot from Jeffrey Way (the tutor, the best I’ve saw tbh). Although the course did not fit what I specifically needed, It was amazing. I was able to draw many valuable lessons that I could replicate in our app.

I do the same when I follow courses on other aspects of both Laravel and other frameworks. The key, as you have been able to appreciate, is to put into practice what you see to reinforce it and learn it in a better way.

Taken what I’ve learned — as simple as it may be — to a real app it is much more effective, so I end up learning it better. By “real application” I mean something that has meaning to you. This can be something that helps you in your day to day, or recreate an application that you like.

This is going to be tremendously beneficial. You are trying to solve real problems, so you will be more interested in discovering more about how to do X things to get the result you expect.

4. Give a hand to others

Since I was a child, I always had good grades. Because of this, my friends would come to my house to do our homework and to play soccer. Given that at times I ended up explaining them about how to solve the exercises, I discovered that I enjoy teaching others. In fact, one of my first ways to earn money was by giving private lessons. I was a tutor from the time I was in high school until I started working in a company.

Being in frequent contact with certain topics helped me stay fresh for when I needed to apply them. The same I began to apply in software development.

Almost like any programmer, I have turned to the help of StackOverflow or GitHub seeking help. However, as I spent more time on these sites, I started to answer questions because I knew the answers.

Helping others to find solutions to problems that I had before had myself is very satisfying. It makes me feel like I’m contributing with my peers. It became my favorite hobby for a few years now.

As time went by, I began to improve in the explanations I provided. I understood each of the questions that I saw on the site better and better. I’m sure you know this Einstein quote:

“If you can’t explain it simply, you don’t understand it well enough “.

Then, I began to try to solve questions that even I didn’t know how to answer myself. This is because I already believed I could find a solution through a good search.

As you may have noticed, the benefits of this practice are several:

  • You help other devs to solve their issues
  • It makes you improve yourself as a developer by reinforcing your knowledge
  • It allows you to expand your knowledge on certain topics that you do not use frequently.

An additional benefit of the above is that it will also help you build an online reputation. I wasn’t aware of this because I didn’t intend to obtain something additional. However, as I contributed more, the interest of companies in me also grew. This is how I got my current job which I am very happy with working with a great team at ABOUT YOU.

In closing

That’s it. That’s all I wanted to share with you. So, in summary:

  • Embrace the knowledge
  • Master search skills
  • Put your knowledge into practice… but in something meaninful
  • Give a hand to others

Share your experience in the comments about what you did to improve as a developer. I will love reading about it 😃.

--

--

Kenny Horna.

Hey there! I'm a software engineer and designer that loves to code ;)