My journey to learn Python as a Petroleum Engineer - part 2
In this part 2, I share my tips on how to stay motivated in learning Python and where to find projects that you can apply your Python skills
I have been a Petroleum Engineer for over 8 years now. I started learning Python 5 years ago, with no prior experience in programming. Since then many have asked me on what are the best resources to learn Python, which I shared through my blog here.
Having resources to know how to learn a new skill is a critical first step. It gives you the road map, but as having a treasure map is different to having the treasure in your hands, an excellent road map is not the same as knowing enough Python to apply in your day-to-day work.
Learning Python is easy, there are endless number of resources. Similar to learning a language like French or Farsi, just learning the grammar and vocabulary may seem motivating but eventually you need to be able to practice it and finding the right project can be difficult. The project must be challenging for you but at the same time should not be too challenging that demotivate you. Over the years I develop my own methods on how to go around this challenge and I am sharing those with you today.
Below I talk about two things, firstly how to find doable projects easily to keep you motivated in your journey and secondly how to measure your progress so you never feel that the time you are spending learning is wasted and can push yourself forward.
How to find doable projects easily
This is easier said than done and I am happy to acknowledge that. I can share some scenario which worked out for me and hopefully one or some of them will work out for you as well. The list below is from ideal scenario to the most practical one based on my experience. I used a combination of third and eventually second method as I was not fortunate enough to have a work mentor with Python background. Here is the list:
Learning at work with a mentor
You may be incredibly lucky, and you are learning Python on the job to work on a specific project with a mentor/coach assigning you a task and can guide you to achieve it.
This is the best way in learning Python but needs a lot of luck as you need to be in the right place in the right time and a right mentor helping you to build your skills. If you are lucky enough to be in this situation, jump on this opportunity and do not look back and move to the next section so you learn how to keep yourself motivated.
I was not lucky enough to be in this situation, but I have been mentoring younger engineers on delivering projects using Python and I was envying their situation.
Learning at work without a mentor
This is also a great way to learn Python and apply learning. Sometimes you know something can be done in Python as you have seen it in other workplaces, on the internet, or in a conference.
Your task here is a simple. Break the complicated task to smaller and doable chunks. Now, apply your Python learning to deliver each chunk.
My strategy here is to not sure what I am working on with my manager till I have something clear value to business to show. The benefit of this is you do not work towards a hard deadline, and you can spend more time learning and exploring your solution without complexity of giving time estimates, resource requirements, etc.
Learning using personal projects
You want to find a pain point in your daily life and use Python to solve it.
You may be passionate about investing or trading and want to write a small script that suggest a buy or sell based on moving average closed prices of certain stocks.
You may enjoy playing around with a Raspberry Pi. (Pi website)
you may have a solar panel that you can read its daily production. (example)
You may want to write a small script that calculates how much you and your partner spent each month and track your shares.
These are some of everyday script I wrote to practice various python techniques. You can also join different communities (like pi community) and see what type of projects people have worked on and get inspired. If you have done other easy and interesting projects, please comment below.
How to measure your progress
Many start the year with a weight loss resolution. Imagine you are going to the gym and eat healthy to lose weight and meet your resolution. Your motivation comes from seeing your weight going down the next time you step on a scale or when an old pants now fits you well. Same applies in learning Python and other skills.
The trick here is to find the same quantifying progress check in Python. I found two ways so far to measure this. The easiest is to review my old codes and see how much I can improve them while the second one is how I can teach a new learner the ropes.
For code review path, depending on the pace you are learning and the time you are investing, I suggest reviewing your old codes every few weeks or every few months. It is quite common to not appreciate how much you have learnt and hence getting demotivated as you falsely think you have not made any progress.
your ultimate confidence boost will come, when a new learner asks you on how to do certain things and most probably that question is very similar to something you faced before. That can give you the boost of confidence that you were in a right path the whole time and the challenges you faced were all part of the journey.
Conclusion
This is the 2nd part of my original My journey to learn Python as a Petroleum Engineer. In the original post I shared the resources I recommend to a Petroleum Engineer to start learning Python based on my own experience. In this article, I address a challenge I saw many of my colleagues faced whilst trying to learn Python, losing motivation as they cannot see how far they have come or losing interest as they cannot translate learning to something to apply to their daily work. This article is my attempt to address both of these challenges.
Always a great read Amin. Thanks for sharing.