Learning to code can be like preparing for a long battle. Ultimately, winning is not always determined by your initial strength, but by how well prepared you are and how long you can hold out.
With programming, the greatest challenge is often not the complexity of the language, but rather staying consistent and motivated through the learning process.
In order to stay consistent with your learning, you will need a lot of motivation and energy. The consistency with which you learn would help you to understand the complex concepts of any programming language and make the most of your time.
Having come from an absolutely non-technical background, I had to learn this late. After I took the first step into the transition, I struggled with everything relating to learning, particularly motivation.
This article will share the steps I have gathered over time to overcome my struggles with staying consistent and motivated.
Start Slowly but Maintain a Habit
In the early stage of learning, you might only have a few free hours that you can dedicate to learning.
This is because most people are just opening themselves up to doing something they have never done before. Also, they might have tasks such as a full-time job which take a better part of their daily life. Therefore, adjusting and making time for learning might not be easy.
At this stage, you don't need to be concerned about the amount of time you have available to learn in one sitting. The most important thing is making time for a daily study session, regardless of its length, and persisting with it in spite whatever crops up in the way.
Always Schedule Your Tasks
If you don't schedule your daily tasks, it's much easier to procrastinate and forget about them. It's easy to become engrossed in just one or few tasks and lose sight of the fact that there are other things you need to do. Often, this happens when you don't follow a set task list.
To prevent procrastination and forgetfulness, make sure you plan out your days by scheduling tasks. You can use the following tips as a guide in scheduling your tasks:
- Think of all the tasks you would like to accomplish.
- Estimate how long it will take to accomplish each task.
- Identify your peak hours of productivity.
- Arrange the tasks in order of priority.
- Make sure to bundle similar tasks together to improve your productivity.
- To stay organized, schedule these tasks on your phone or computer and use reminder and task applications.
- Schedule complex or difficult tasks during your peak productivity hours.
- Make time for unexpected events in your schedule and plan for them ahead of time.
Note that it is a good idea to schedule your tasks at the beginning of every week.
To learn more about how you can schedule your day for better productivity, consider reading this article by John Rampton, the co-founder and CEO of Calendar.
Join a Community of Learners
For most people, learning alone can be boring and tedious, and in no time, it can hurt your motivation. This is why having a community of like-minded people is always better.
This type of community will provide you numerous benefits, including, but not limited to:
- access to group study
- access to different resources to help with your study
- information on current technological trends
- getting feedback on personal projects
- an avenue to share your progress and measure your growth
Find out if this type of community exists in your area. Alternatively, if you are unable to find one, you can join a remote learning community instead.
The following are some of the remote communities I have personally found useful and consider to be of great value:
- 100Devs: The 100devs community is a nonprofit organization founded and maintained by Leon Noel, a teacher and Managing Director of Engineering at ResilientCoders. The 100Devs community provides free lessons in full-stack web development to individuals. You can join the 100Devs community here.
- 100DaysofCode: 100DaysofCode is an online challenge where people dedicate 100 days to learning a programming language of their choice. In order to participate in 100DaysofCode, you must devote at least an hour a day to learning. And after that, you post a completed task on Twitter with the hashtag #100DaysofCode.
- Kevin Powell Community: The Kevin Powell Community of active learners is a community on discord created and maintained by Kevin Powell. Kevin is a teacher and software developer with years of experience. You can join the Kevin Powell Community on discord.
- Commit Your Code: The Commit Your Code community is created and maintained by Danny Thompson. The community has a lot of active learners as well as experienced developers who are more than willing to help you with your projects and mentorship. You can join the Commit Your Code community on discord.
And of course the freeCodeCamp community has a supportive and friendly forum where you can ask questions and meet other developers.
After joining one or more of these communities, it is important to be on your best behaviour. Keep in mind to also be kind, provide value, and follow their rules.
Find a Study Partner
Being consistent and motivated may be hard even after scheduling your tasks and joining a study community. If this is the case, you might need a study partner.
You can benefit from having a study partner in the following ways:
- Makes sure you have accountability.
- You can set up joint study sessions.
- You can collaborate on joint projects.
- You might find mentorship.
- You can go through coding challenges together.
Use an Efficient Study Technique
Programming languages are generally complex. Unless you have an effective study technique, it will be difficult to understand the concepts and apply them in practical contexts. This can make you frustrated and lessen your motivation to learn.
If you're learning new concepts or a new programming language, here are some study techniques you might have tried:
- repetitive reading, otherwise known as re-reading
- summarizing or making notes
But there's lots of evidence from prominent scientists and psychologists that has proven that these techniques are less effective when compared to other study techniques you can use.
To make the best use of your time and ensure you remember what you have studied for a longer time, try the following study techniques:
Active recall is a study technique that involves retrieving already stored information from your brain.
The mind is a vast storehouse or space; memories are objects stored in that space; and retrieving a memory is akin to searching for and finding an object in a physical space (Roediger, 1980).
Using this technique involves reading a topic once and then converting concepts and ideas in the topic you have read into questions and then testing yourself on them.
This study technique, as its name suggests, involves spacing revisions of what you have learned by way of active recalling. This is in contrast to cramming, which involves memorizing all the concepts in a particular topic in a single sitting.
Essentially, spaced repetition helps you minimize the effect of The Forgetting Curve. It is a mode of learning by which you allow yourself to forget what you have learned. Then you try to retrieve those concepts from your brain by making active recalls at specific intervals over a period of time.
The forgetting curve hypothesizes the decline of memory retention in time. This curve shows how information is lost over time when there is no attempt to retain it. (Source)
Using the above study techniques will help you make sure that you are not spending too much time understanding and remembering any topic or concepts.
In addition, you will have more time to complete other tasks on your list, as well as the opportunity to learn new skills that will be helpful in your professional development.
One popular tool you can use to help with active recall and spaced repetition is Anki. Learn how to use Anki here.
To learn more about the use of these efficient study techniques, watch the video below:
The Pomodoro study technique is ideal for people who struggle to concentrate on studying for a lengthy period of time.
One way to use this technique is to break your workday into 30 or 20 minute chunks separated by five minute breaks. These intervals are called Pomodoros.
Set Short Term Goals and Stay Focused on Achieving One Goal at a Time
Success doesn't happen overnight.
Trying to achieve too many objectives at the same time can be overwhelming. So it's always better to break your objective into shorter chunks of goals and focus on accomplishing one of the chunks or goals at a time.
- Understand the basics of HTML.
- Understand the basics of CSS.
- Understand the use of semantic elements in HTML.
- Understand the use of CSS Flexbox and Grid for layouts.
- Try building a simple static website with what you have learned so far.
- Solidify you knowledge on the advanced concepts by building projects with them.
- Finally you can build your favourite project using the framework you have learned.
You might think that going through the steps above in the order they are stated would take you a few months. But it may take you much longer than that – and that's ok.
Also, don't try to skip any of these steps. Simply taking a crash web dev course likely won't be enough, and can set you up for disappointment and cause you to struggle much more than you would if you'd taken your time learning the concepts thoroughly.
On the other hand, making sure that you carefully go through each of the steps, one at a time, will help you to build the skills necessary to achieve your main goal. It will also prevent you from losing motivation, which is the likely result of having unrealistic expectations.
Don't be Afraid to Ask for Help
One of the reasons why people give up early when learning programming is because they encounter some sort of bug in their program that seems difficult to solve.
But you should know that no one knows it all when it comes to programming. Even software developers with decades of experience still encounter bugs they find very hard to solve on their own.
This is a major reason why collaboration is so important – even more so than developing your personal skills.
Whenever you find yourself in this situation, do not linger on the problem for too long. Use the internet to your advantage when searching for answers. In this regard, your best friend is Google. You can get the answer to almost everything related to programming on Google if you take your time and search deeply.
If you are unable to get the answer you need from searching on Google, then the next step to take is to go to the study community you belong to get help from others. They will typically be more than willing to help you, whatever the problem may be.
Take note of the following when seeking help from your community:
- Make sure to ask direct questions.
- Make sure your questions are clear enough to understand.
- Provide a copy of your code by putting them in a public remote repository such as GitHub or Codepen and provide the link to the repository.
Maintain a Healthy Lifestyle
I can't overemphasize the benefits of maintaining a healthy lifestyle. It will help your maintain energy and keep you fit for the next challenge.
There are several ways to maintain a healthy lifestyle, some of which are:
- Get regular exercise to help your cognitive abilities and general fitness.
- Don't sit for lengthy periods of time.
- Exercise your fingers regularly while you're studying.
- Keep your eyes off your screen at regular intervals while you study.
- Make time for your hobbies as a reward for your efforts.
- Ensure you always sleep well and get a proper amount of rest.
Programming is a marathon, not a sprint. If you want to achieve any level of success, you have to take your time and study consistently.
Taking the steps discussed in this article will significantly improve your chances of reaching your goals.
If you enjoy this article, then you should give me a shout-out.