Developing the basics : programming myself, post four



<< Read the previous post in the series.         Read the next post in this series >>

Even with all the theory and planning on the best way to learn how to program in place, I am not going to lie to you, it is incredibly hard to stay on track, and there have been several times when I fell off the wagon. Life has a way of throwing hurdles into even the best-laid plans. And so it is important to realize theory doesn’t always match reality, and how you can come back from this and still try and achieve your goals.

There have been a few events which have knocked me off course a bit, the first was I volunteered to give a public presentation about the science of storytelling to a big audience. This needed weekly rehearsals and revisions to the presentation all of which took time out of learning to program, simply put, it is not just difficult to concentrate on doing two projects at the same time, it is pretty much impossible; especially if you want to do a good job of both. The second event is another addition to my family of a new daughter, so for those of you counting that’s now 3 children and a dog, this too has taken its toll, as she will take priority in any case and with lots of family around it also leads to distractions and breaks in routine which are hard to recover from. The third event is life, Christmas, for instance, is coming up on us quickly, which is probably the best time of the year. With JetBrains taking us for an incredible annual winter trip and other events going on and with friends and families visiting, this time of year is going to be the most difficult to stay on track with learning how to program.

I gave myself a 2-week buffer (which I am now coming to the end of), for this project. But it is only now that I am beginning to build a learning habit that is working. As mentioned before in an earlier post, it is more beneficial to learn often rather than in chunks, if you are just doing something once a week then it is very easy to start not doing this activity once a week and then not doing it at all. Dipping in and out of the material as I had been doing to start with, doesn’t produce results. I know little bits but the bigger picture is still a long way off and as a result, when I evaluated the progress I was making with the plan, it actually fell well short. Don’t get me wrong though, I do see there is progress, but it needs to be much quicker if I am going to get to the level I want to be at any time soon.


What can you do to stay on track?

These are the methods I intend to apply to make the experience successful, get back on track, and get on and learn how to program:

Focus – It seems like this should be a given. But sometimes there are other aspects of life which take up your time. I took on a presentation for a group named 15×4 and this alone took up at least 20 hours of time I could have put into learning. If you want to seriously learn something though you should try to mitigate distractions like this. Prioritize your time toward learning the one thing you want to get done. So as an action, in this case, it is to come out of extracurricular activities until I have achieved this one goal, just have one goal at a time, accomplish it and then move on to the next.

Make a habit – As with writing, you can’t wait for the perfect set of circumstances to begin writing otherwise we would probably all be sitting around waiting for the first Game of Thrones book to still be written. Progress comes from making a habit of it, for my books I would write around 2000 words between 10 am-1pm every day whether I wanted to or not; leaving the writing on a cliffhanger to encourage and motivate myself to go back to it again the next day to carry on. Learning is the same. You need to make a habit of doing it every day if you are intent on learning it thoroughly. The action I am going to take here is to set out a time between 8pm and 10pm to dedicate to programming, the trick is to not allow yourself to start breaking this routine, which is exactly the problem I have faced these last 5 weeks. According to the internet citation, it takes between 21 days and 2 months to form a habit, I take solace in this as it just means I have to keep at it.

Trigger behavior –  Give yourself a secondary trigger to set yourself up for the habit. For me, the new Star Wars Battlefront 2 is out… Between 7pm and 8pm I intend to defeat the rebel scum of the galaxy, it works as a wind-down period and will set me up to continue a habit. Having a trigger for the habit means that you strengthen your routine for the habit you want to encourage. Things that don’t work as triggers are Facebook and Netflix, both of these channels are almost exclusively dedicated to keeping your attention. Avoid them if you can’t afford to be distracted. Triggers which will work though are things that happen every day without you having much input into. Taking your dog for a walk, running the dishwasher, brushing your teeth, these can all be used as triggers. Find things which you have to do each day, and use them as triggers to attach your habit to.

Actively engage – Engaging better with the materials is important, it is easy to watch lectures and think you can understand the concepts. What is going to give you the results though is the practice. I finished the introductory PyCharm EDU course, but I realize that doing an exercise once isn’t enough to learn it fully, it is great for seeing how it comes together but you need to practice the elements in different ways to see exactly how this comes together.

I hope that this post shows you that even if you have tried to start something and found it a non-starter, there is always hope. You need to look again at where you are finding it hard to continue, and what is getting in the way; then you can work on methods to mitigate the obstacles. I have lost my buffer, but not the determination to learn coding, but it is time to get serious about what you want to get done.


“We are what we repeatedly do” – Aristotle