Practicing deliberately to learn a technology
If you ask me what the third question that we get all the time is, it is How can I be a better developer?
And again, the answer is simple enough: practice.
If what matters are the skills you only acquire by doing, it follows that the more you do (practice) the skill, the better you get at it.
Again, the answer is simple, but not very useful. Because you are probably thinking about your reality, where you barely have time to do your work and what you must do, you can barely keep up with all that goes around you. How can you spend hours and hours practicing something?
This, indeed, is a good point.
First, you do not need to spend hours and hours practicing. Second, as much as possible, you should practice by doing something real, and that, in most cases, means doing your work.
There is a third point too! If this is your career, should you strive to be the best you can be?
That is not a rhetorical question. For many people, their job is just a job. And that is totally OK. If this describes you, do not feel bad that you are not interested in putting your best effort into becoming better. All you need is to be good enough to hold a decent job. And at the end of the day, you go home to your family, hobbies, and your life.
There are many developers whose lives and hobbies are more interesting than their jobs. And they are better at their hobbies than they are at their jobs. At this moment, Bruno interjects—“I am one of them.” I am better at speaking, engaging audiences, and building communities than I am at being a software developer. I now spend my time helping developers with their careers.
As a Java developer since the earliest days of the technology, Bruno took part in some of the largest Java projects in Brazil and gained extensive experience in large projects in the government, finance, and service industries. While doing this, his passion was actually communities. Slowly, he combined his developer work with community work and started to participate in Java open source communities and projects, such as the Java Community Process (JCP) program, the Open Source Initiative (OSI), the innovation-focused Campus Party Institute, The Developers Conference and much more.
So, although he started as a Java developer, he eventually made his community hobby his main work, and he helped to found SouJava (Sociedade de Usuários da Tecnologia Java; Java Technology Users Society), one of the world’s largest Java User Groups (JUGs), and became a leader of the Worldwide JUGs Community, helping the organization of hundreds of JUGs worldwide.
The fact that I was able to turn my hobby into a full-time career is testimony that it can be done.
But if you do want to be the best technical person you can be, then you must practice. And for you to not spend all the time you have available practicing, here are a few things you need to know about practicing deliberately:
- Deliberate practice is practicing with a purpose: You must practice with a specific purpose in mind. Just sitting down at the computer and hacking away for a few hours is fun, and you should do it because it is fun. But that is not practicing deliberately. Define what you want to improve, by when, and what you are going to do to get there.
- Deliberate practice is focused: Choose a specific skill you want to improve and work deeply on it. Focus on the specific thing you need to improve and be better at. Practicing is improving one specific skill at a time.
- Deliberate practice is intense: Define some exercises that you can focus on with intensity for 30 minutes to 1 hour. A clever idea is to use the Pomodoro Technique and execute one or two pomodoros (25 minutes each). Another technique is to use the rule of three: do three focused bursts with a few minutes or even a couple of hours between them.
- Deliberate practice is daily practice: In terms of skills, nothing beats consistency. It is better to practice for 15 minutes every day than to concentrate 4-5 hours at the weekend. Set a daily practice time, use some inactive time during the day to review past practices, and commit yourself to do a small effort (even 5 minutes can make a substantial difference). Anything that helps you practice daily will give you better and more consistent results.
- Deliberate practice uses proven methods: As much as possible, follow existing tested practices. Learn how to type on the keyboard using proven methods. Practice code katas that have been created specifically to improve development skills. If you cannot find or do not know a proven method for something, talk with friends or colleagues who are more advanced than you, and see whether you find some common techniques that worked for them.
Practicing proven methods daily, in a focused way, and with intensity, especially when combined with work, can at the same time reduce the number of hours invested and give better results.
You will encounter roadblocks along the way, but you can remind yourself to make learning a part of your career path and journey. To be successful in your technical career, you need to consistently be learning. Consistency with a manageable amount of learning is the key to success in making learning a part of your lifestyle.
But how can you keep the consistency? You keep consistency by making learning a habit. That is why we need to build a few good habits.