Enhancing your skills with one code exercise a day

One of the characteristics I notice the most when talking about Software Development is the need of constantly being studying, learning and updating yourself. And as having this constant effort of gathering information, last year, I found myself a bit lost in the process. I was tired of reading and doing courses, and was struggling to find a sparkle to code every day again.

Also, I found this pattern in most of my colleagues as we got tired of staying at home only (due to the pandemic). So I started thinking about what could bring me joy in programming again. Then I heard about exercism.io (of course there are many other tools that have the same concept, but I had a good time with Exercism).

What I decided to do by the time, was to challenge myself to make a nice piece of a project, which tools I’d like to have knowledge of (for example, putting a nice and clean CI in place). Something that I’d be proud of for some time (as I had many started but not concluded messy projects), something that I’d be proud of from the beginning.

With that said, and reading about what people usually do to enhance their skills (100 days of code, for example), I decided to challenge myself to make one code exercise a day. Could be simple ones, but something that I could start and finish in one day, as well as keeping consistency and strengthening my coding moves (as I found them rusty by the time).

That is where Exercism comes in, I decided to make myself a repository: https://github.com/anaschwendler/everyday-exercise (before called - exercism) where every day I’d add an exercise always focusing on having a nice piece of code added, not just rushing and writing something but concentrating on one small exercise well done.

What were the lessons I’ve learned in this process:

  1. Having more focus:

I was struggling a lot to have focus on my tasks and was having the feeling that was hard to centralize my attention to finishing one task.

  1. Deep diving in learning what programming languages can offer:

For me, it does not matter which programming language one is using but yet, I try to focus more on having well structured logic and easy-to-read code. But at this point in life I was interested in learning new methods/classes the programming languages I was more interested in the time (python and ruby) had to offer.

  1. It does not need to be every day as long as you have some commitment:

There are days the code flows, and days that none line is written without having to be thought about a hundred times. After doing that constantly for about 3 months, I noticed that I was starting to see this act, which was supposed to be a fun activity, as a duty, and things were getting harder and harder to complete. So I decided to give myself a break, and after some days of break, I felt great and willing to get back to it.

  1. You don’t need to stick to any platform:

In the beginning, to get the consistency I wanted I stuck to Exercism, but after that, I started remembering some exercises I’ve been challenged within, for example, in interviews (I’ll never forget once that the exercise was doing a balanced parenthesis solution). So I started to look for other platforms, while still keeping my repository

  1. Bringing it to Github:

For me, that helped with the motivation of seeing my consistency in the board, as well as by seeing other people’s effort, you start gaining the feeling that you are not alone in the search for meaning for coding.

All this structure behind trying to find something that would make me feel like coding again, helped me a lot to start feeling confident with what I’m writing and delivering daily on my work time. And as so, I started to feel that this wasn’t helping anymore, so while talking to my team in one of our 1:1, I started coming up with a plan to get one step forward.

What I suggest for future reference when one exercise a day seems boring:

  1. Have someone mentor you or just take a look at the code you produced.

After some time coding on your own, you start missing discussing with other people different ways of solving the same challenge. So I started asking some peers to take a look and maybe suggest changes to what I did. I am not certain if what I’m coding makes sense, so it is nice to share with more people.

  1. Start a nice long term project, but simple:

After some time working in small exercises, and as it started getting a bit tedious when talking to other people, it came the suggestion of doing a small project, on something that you might decide (or like) that can keep you hooked enough to keep on coming. For me at that point, what seemed attractive was to do a small board game, trying to mimic what we have in real life, but in code.

  1. Start exploring specific areas that require the use of algorithms:

Basically all areas, right? But it is nice to find one that is your interest in the middle of so many options. For me, it is linguistics, I adore the way we can work with language using code and the number of things we can learn while experiencing how machines try to reproduce human reading behavior.

It is quite hard to keep motivated while living in extreme times, but in the middle of this I’m working on trying to find ways to see code as I saw when I started university: as something fun to solve big problems. There is a lot that can be done in order to enhance your skills, but at this point, I just wanted to share this small bit of information on how I found bliss in my work even after a long time doing it.

Hope it can be nice to everyone reading it! See yall in the future!