How to Make More Time to Learn Programming. True Story
29.09.2017 | 7 min read
Disclaimer: this post includes no magic, no breakthroughs. Just some observations from my life and decisions I made to change my career path: learn programming and become a (more efficient) software developer. I put this post together to share these and to inspire you.
A year before writing this post, the future was bright: I was going to get my master’s degree, change to a (hopefully) better job, and to have a lot of free time to develop my strong interest in homebrewing. But by the end of 2016, I felt like something was wrong.
I quickly forgot about the degree, my job at that time was not as satisfying as I anticipated, and I knew that I could do more. I wanted to learn programming in Python so I could automate repetitive tasks at work and pursue some side projects that might benefit me. There was one big problem:
When exactly could I work on these projects?
On an average working day, this is how my schedule looked:
I loved to sleep as long as possible. I spent a lot of time getting ready for work, getting back and forth, and actually sitting at the office. Activities that are mandatory for everyday living (eating, bathing, groceries, cooking, laundry, etc.) took me 2 hours a day on average.
This left me 3 hours and 30 minutes a day to do whatever I wanted. I knew that I had to use some of this time to learn Python, while still reserving time for myself.
You have a plan? Cool. Now change it!
The reality was harsh. After getting back home after work, I was often tired and wanted to spend time with my girlfriend or my friends. Watching even one episode of a favorite TV show consumed too much of my precious free time.
Still, I promised myself I would dedicate at least one hour a day to sitting down and writing some code. That often resulted in sitting in front of the computer till midnight. After that, I didn’t sleep well. Either my mind was racing or my eyes were unaccustomed to darkness. As a result, I was even more tired the following day.
I came to a sad conclusion: it just didn’t work.
I had devoted many hours of work to achieve my goals, but it simply didn’t result in anything spectacular. At first, it was a letdown, but then I realized: if you really want to do something, you have to be tough. I decided to take stricter measures: wake up earlier and work then instead!
“I learned in a SEAL training that if I wanted any extra time to study the academic material we were given, prepare our room and my uniforms for an inspection, or just stretch out aching muscles, I had to make that time because it did not exist on the written schedule. […] The only way you could make time, was to get up early. That took discipline.”
Jocko Willink, Extreme Ownership
Ugh… What time is it?
Yup, that was me every day at 8:00 AM. Nowadays, we have both high-tech and old-school solutions for getting better sleep. I must say I don’t really believe in sleep monitoring apps, and drinking milk and honey seemed to be going a little bit too far.
What worked best for me was pure motivation.
After some time spent on coding, I was sure that I wanted to switch my career path, and that gave me a lot of strength. In the beginning, I tried waking up 30 minutes earlier and then pushed that to as much as 2 hours.
Of course, at first it was hard, but by gradually getting up earlier and earlier, my body got used to it pretty quickly. I split my morning routine into:
30 minutes: eat breakfast, drink tea, and read some tech related articles
30 minutes: learn programming with online courses (Coursera, Udacity, etc.)
60 minutes: programming my own stuff
After some time, I observed that I was up to date with the IT news. Finally, after several years of trying, I had actually completed not one, but two courses on Coursera and had honed my Python skills a great deal. I also made progress on my side project: a house rental browser that was supposed to help me and my girlfriend find a new apartment.
And the best part is that I actually got the job of a Python developer at 10Clouds, where I could push my skills even further.
- I could finally do stuff. As I wrote above, I read blog posts and news, completed courses, and programmed a lot.
- I became a professional. My work resulted in me getting a new job.
- I didn’t have to sacrifice the time I usually reserved for those closest to me. I worked while my fiancée was asleep (or worked while trying to adopt these methods).
- I got additional 10 hours a week for doing whatever I want. That’s a bonus working day and 2 hours!
…and drawbacks of my approach:
- It requires a lot of motivation. Some people say that developing a new habit takes about 2 months. In other words, you would have to wake up earlier about 60 times before it becomes automatic (and thus, less painful) for you. Considering that I avoid working on weekends, it would probably take even longer.
- You get really tired. As Friday approaches, I think about getting some rest on Saturday rather than partying hard in the evening. At some point, I started skipping my morning routine on Wednesday or Thursday just to give my body a break.
- I had to slow down with my hobby. For a homebrewer, cutting down the occasions to taste your own beer hurts a lot. I felt a big decrease in my performance even after a single pint. Too bad!
Wanna learn programming? You have to work deeper!
I became intrigued by the subject of personal performance, so I started digging, and Cal Newport’s ‘Deep Work’ got into my hands. It’s a must-read for everyone who has to solve problems that require more focused thinking. The four philosophies of deep working drew my attention in particular:
The Monastic Philosophy
Try to drastically reduce shallow tasks and interruptions. It often means disconnecting from your phone, email, and, of course, Facebook. This way, you can dedicate even whole days to hard concentration and thinking. It’s not something everyone can do, but it sure provides great results – for the price of almost becoming a hermit.
The Bimodal Philosophy
This is similar to the monastic philosophy, but it uses shorter time intervals, like a couple of days or weeks. During this time, you disconnect from the rest of the world and work really intensely, dedicating yourself entirely. After such a period, you come back and lead a perfectly normal life full of distractions. You can also gain valuable insights for your research during the shallow periods.
Do you know who uses the bimodal philosophy?
“Right now, I’m getting ready for Think Week. In May, I’ll go off for a week and read 100 or more papers from Microsoft employees that examine issues related to the company and the future of technology. I’ve been doing this for over 12 years.”
Source: CNN Money
The Rhythmic Philosophy
Develop a specific working rhythm. For example, a young doctor and father took a job at the clinic while working on his PhD. By getting up earlier (his alarm clock set off at 4:45 AM), he was able to write new chapters of his thesis and, after work, be close to his family. This strategy is well suited for an average John Doe who works 9-5.
The Journalistic Philosophy
This is probably the hardest technique to master. Essentially, you enter a deep working mode as soon as you have even a short spell of time, just like a journalist who gathers their material, comes up with a story, and sends it the publisher as soon as possible.
Newport also argues that willpower is a finite resource and that’s why you should train yourself on how to use it most efficiently.
Seeing the bigger picture
Wrapping up all of the above, I would like to emphasize one thing: Don’t consider this a theory or something you have to pursue. It is just an example of a process.
Maybe you prefer working late at night? It’s perfectly fine. Maybe you are a PhD student, have free days during the week, and can dedicate them to work? It’s also great. Pick whatever works best. What I strongly encourage you to try is:
- Define your goal. There are many publications you can check out to help yourself in discovering precisely what you want to achieve.
- Find out how far you are from this objective and what you need to achieve it. Choose the most efficient ways and tools that will get you there. Is there, perhaps, something you can improve?
Based on what you learned in the previous step, just start doing it – get to work!
- After achieving a milestone, or accomplishing a difficult task, get back to point number 2. And, maybe, reward yourself with something you like that won’t distract you from your routines.Exactly: this is a repetitive process.
From time to time, you should take a while to think about what’s behind you and what’s ahead. That way, even if you get lost, you can get back on track. Your goal might change, maybe you drifted off the desired track, maybe you chose the wrong goal or found something that would bring more benefit in the long run.I achieved my goal. I found a new job as a software developer at 10Clouds.
Did I stop working on myself? Absolutely not. I wake up at 6:00 AM; it’s still difficult for me, but I get a reward. I gain valuable knowledge, I complete courses, and I am able to deliver new insights to my workmates by presenting what I learned.
Still, I do not compromise all of my spare time; I successfully combine professional growth with a social life. Would I change something? I don’t know what right now, but when the time comes, I will be eager to do it. And I encourage you to do the same.
Looking for a skillful Python developer?
Get in touch with 10Clouds, we’d love to work together!