Do you train your programming skills? Do you follow any programs to keep your programming skills up to date?
It was not the case for me one year ago. Currently, I am maintaining my level and learning some new programming languages! My training is based on three axes: Book reading, learning new languages, and skills maintenance.
The first pillar of programming skills training: Book reading.
The first part of my training is dedicated to book reading. Each day, I take about 15-30min of my time to read books.
At first, I read some “no technical books”. Like personal development in the programming world. I can recommend you some books like this one:
Here is a little review of "Pragmatic Programmer". Indeed, This is one of my favorite "programming" books". Written by Andy Hunt and Dave Thomas, two professional software developers, this book reviews different situations in the Software industry. Furthermore, I felt that this book was really easy to read: Few codes
In all cases, this training has three goals: To learn new skills, new practicals and the evolution of the programming world. When I started to read books, I felt that my Software skills had been improved. Among all my recommendations here, it is the best one!
Learn a new language per year.
The second part of my training is learning a new programming language. The programming world is in constant evolution. A few years ago, Typescript didn’t exist. Docker is recent and now Virtual Reality and Artificial Intelligence are coming up!
As Software developers, we should learn new competencies constantly. Personally, I am learning one programming language per year.
To learn a new programming language, you don’t need to learn all specificity. My program to be proficient is simply to start by reading a book/following a course. Then, I start a personal project to practice my new language.
You don’t need to know a new programming language at 100%. Only 20-40% of the language is sufficient to be proficient!
Maintain your programming skills: The code Kata.
There are many programming languages. However, in a single job, you can exercise only a few programming languages. Moreover, “coding” is only a few parts of our job. You participate to meetings, maintain designs, review strategies...
Your programming skills are rotting. Specially the ones you don't use. We should maintain them to be proficient at any time.
To maintain our programming skills, we should train it! Personally, I follow a great method featured by Dave Thomas: the Code Kata! Later, Robert C. Martin described the concept in his book “The Clean Coder”.
In martial art, a Kata is a choreographed movement that simulates one side of combat. Converted to the programming world, a Kata is a precise set of movements to resolve a simple programming problem. It can be “How to convert a string to uppercase” or “Create a simple chess game”.
Choose your programming language, and repeat the exercise again, again, and again! Practicing a set of Kata is a great way to maintain your programming skills. Personally, I follow some websites to train my programming skills in multiple languages, like C, C++, Rust, or Python. Here two of them:
Those websites propose to you a set of simple exercises to train your coding skill. Enjoy!