6 Things You Can Do to Improve Your Programming Skills
Being a great engineer is also about having a life outside of work. They go together.
About one year ago, I was starting my first and only marathon. Yes, 42 kilometers and 200 meters. More than four hours running without stopping, going through sensational landscapes while asking myself why I was really doing that.
When I finished the race, with a lot of pain in muscles that I didn’t even know existed and a few existential doubts, I got that great feeling of accomplished duty.
I was proud of being a part of a distinct group, doing something few people have done. (Well, not so few, since there were more than 1,000 people with me, but you get the point.) Anyone that has finished a project, a course, or built something knows what I am talking about.
From the moment I decided to run the marathon to the finish line, I’ve learned some things that I’m applying to my professional life as a programmer. And these are much more important than the race itself.
This article will share with you some things you can do to improve your programming skills.
Have a Hobby
I’m not saying you should start running a marathon right now. Running is a hobby for me, and I like it a lot.
There are a lot of articles on the internet extolling the benefits and the importance of having a hobby. One of the reasons I do it is that I can stop thinking about the bugs in my code. It works like a pause for my brain, like an escape, so I can rest a bit. (I know—how can I rest if I’m running?)
Whenever I’m stuck on a problem or can’t think about a solution, I pause and start doing something related to my hobbies. I watch a documentary, I read an article or a book, go for a run—anything but coding.
A hobby can teach you different ways to approach a problem. And you can apply those methods to your code problem.
Some of my hobbies and what I learned from them:
- Running: Every time I apply for a race, I have to prepare myself for it. And that requires discipline to achieve. There are some days that you’re feeling unmotivated, but you run anyway. Because you know that it’s important and you have to do it.
- Cooking: I love to cook. When following a recipe, I like to have all the ingredients separated, so I can focus on the task. You can blow up a dish just because you forgot to buy onions. For my projects, I like to do the same. IDE, terminal, documentation, tutorials—all I know I’m going to need to execute that task, so I don’t have to search for it later.
- Gardening: I love to pick a tomato from my garden and make a salad with it. It’s just another flavor. But it takes time to grow, just like it takes time to create a nice app or dashboard. But you get there eventually.
And there are other things I do that help me in programming. So, if you don’t have any hobbies, I suggest you start one today.
Do Side Projects
“I’ve learned more in one week in this job than in four years of college.”
You’ve probably heard this phrase many times in your life, if you haven’t said it at least once.
When you are learning, some things are already done for you, so you can concentrate on the topic being taught. It can be an API if you’re learning how to make a website, or it can be a database if you need to create an API.
But when you’re doing a real project, you will have to consider all these little details and learn how to make some assumptions. This will help you understand concepts about a language, an algorithm, or the reasons why an architecture is chosen.
You will have a lot of ideas for projects to do with your hobbies. It can be to solve a problem or to automate a process; you will think about a script or an app that you can program.
And this idea can become a side project that you can start doing. You have a goal, and this will help you with some problems you discovered with your hobbies.
For example, I have a problem with watering my plants when I’m traveling. So my next project is to design a system to water them when I’m away. I’ve learned a lot of product designing, from the hardware to the mobile app.
Compete in Hackathons
The training for a marathon is a mix of short, sprint runs and some long ones. They serve different purposes for your body and are both important.
As according to the Hackathon Guide:
A hackathon is any event of any duration where people come together to solve problems.
Usually, you will join a small team (two to five people) and try to solve a problem in a fixed amount of time (24 or 48 hours, for example). All this time you will be focused on solving a given problem, without any external activity or distraction.
If you have not taken part in a hackathon before, I encourage you to do it. Gather a few friends, create a team, and join an event.
There are big companies out there that organize hackathons constantly. Check them out. You can get a list of online hackathons on this site.
Do Some Code Challenges
Every artist or athlete practices the basic fundamentals of their art or sport almost every day. Even the better and experienced ones. So why shouldn’t you?
Reserve a part of your day to practice your favorite language or algorithm. You can do this with code challenges or with something like 100 Days of Code.
They provide a lot of exercises on different programming topics, from basic string manipulation to complex binary tree manipulation. And you can solve it using almost all existing languages.
If a hackathon is like a marathon, think of a code challenge as a 100-meter sprint. It is a very specific problem or algorithm you have to solve, and you have a small time in which to do it.
You can then fixate a concept in your mind. Or remember an algorithm you don’t use often. You can even learn new ways of implementing it while you compare your code with thousand of other developers.
I like to do one or two challenges before I start my day. Imagine being a music star, warming up backstage before you enter and start rocking the day.
During my marathon training, I used to write about my progress and what I could do to improve my running.
For a developer, writing can be a good way to improve your coding skills. You will start to record the solutions in your head much more easily.
I wrote an article with some reasons why a programmer must write tutorials that you can read here:
Writing a tutorial forces you to organize your thoughts and what you have learned to make it clear for others to understand.
Join a Community
The human being is a social animal. Even in a solo sport like running, you often see people training together and creating a community.
Probably, there are thousands of other programmers out there with the same problems or doubts that you have right now or that have gone down the same path you are on right now.
You can help and be helped as well. You can learn from the struggles of other people and from their solutions. You might even make some good friends along the way.
These communities will also encourage you to start a new programming language or to continue when you feel unmotivated.
Improving your programming skills is something that every developer should be doing.
Never stop learning and practicing, so you can become even more skilled than the day before.
Thanks for reading!