Introduction
Are you thinking of learning how to code? š¤ I think thereās something you need to know firstā¦
This is the first post of a two-part series. In it, Iāll cover the following topics:
- The importance of having a good idea of Why you want to learn how to code
- How Passion is overrated
- Why itās important to have a Growth mindset
- Why you shouldnāt rely on Motivation
- Why focus on Systems over Goals
When starting the journey of learning programming, one tends to focus on the programming languages to learn, courses to take and books to read. But I think the most important thing is to develop an attitude and mindset that allow us to face the challenge of learning programming in the best way possible.
I discuss these concepts in my first published YouTube video! You can watch it here.
Have a clear idea of why you want to learn how to code
Knowing our why will help us to keep going when motivation fails us, and things get difficult š°.
Ideally, your why would be internally focused, so donāt start studying programming just because you want to earn more money (something external). Programming is very hard, and doing it just for the money may not be a reason powerful enough to stick with it š°š°š°.
Instead, try to find internal reasons why you want to study programming. For example, some of the internal reasons that work for me are:
- To learn and grow personally and professionally.
- To choose better quality problems and to choose a struggle to enjoy.
- To build mastery at something.
- To be an inspiration to others (family, friends, strangers).
Having a clear why will give meaning to the effort we are going to invest in our learning journey.
You can read more about this topic in the book Manās Search for Meaning.
I actually have my why printed and hung on top of my monitor. I use it as a tool to lift my mood and motivation when I donāt feel like studying or when Iām stuck with a programming problem or bug. It reminds me of what I have chosen to do and the reasons behind that choice, something thatās very helpful as a reminder that I need to keep going in spite of feeling uncomfortable.
By deciding to become a programmer, Iām choosing to have better problems, because problems are going to be present no matter what we decide to do. One thing is to have problems that someone enforces on you, and a very different thing is to choose your own problems.
You can read more about choosing your own problems in the book The Subtle Art of Not Giving a F*ck.
Passion
Iāve been struggling to find my passion for most of my life. Ultimately, Iāve learned that passion is not something that you find, but something you build day by day.
You can choose an activity that sparks interest in you, but that interest will evolve into a passion over time. Itās because of this that we shouldnāt pay too much attention to passion when we are just starting with programming and give it time to build up.
Growth mindset
The Growth mindset is a concept developed by psychologist Carol Dweck. You can read more about it in her book Mindset.
The way in which we see ourselves deeply affects how we manage in life. If we perceive ourselves as someone who is not intelligent, or incapable of learning programming, we will start our learning journey on the wrong foot.
On the other hand, if we understand that intelligence is something we can develop over time, as well as most of our skills, we are going to be better prepared mentally to begin studying programming.
The growth mindset is based on the idea that our qualities can be cultivated and developed through effort.
You can have a deeper dive into this topic by reading this article.
Motivation
According to Steven Pressfield (author of The War of Art), motivation is the push we feel when āthe pain of not doing something is worse than the pain of doing itā. For example, the pain of being in a job we hate is greater than the pain we feel when we must sit to study programming to change our careers, so we are pushed to sit and study how to code.
There are two types of motivation:
- External: itās outside of our control. For example, study programming to get a good salary in the future, solve a bug to receive praise from others, and prove someoneās code is wrong so others can see us as intelligent coders.
- Internal: itās in our control, within ourselves. For example: study programming to get good at it and gain mastery, solve a bug because we love our craft (our code), or solve someoneās else code because we care about delivering a good product.
We should focus on internal motivation, as itās the only one we can control.
Furthermore, itās very important to realise that motivation is the result of an action, not the cause of it. This means that motivation will come after we start doing the thing we need to do (but donāt feel like doing it). You can know more about this topic by reading the book Atomic Habits.
So, the key to keeping ourselves motivated is to make the thing we need to do as easy to start as possible. We can arrange a calendar with the times and places to study programming, for example, so our decision-making process can be automated.
We can follow the same ritual or habit each time we sit to study programming, thus conditioning our study activity. For example, we can choose the same place in the house, at the same time in the day, with the same music playlist, each time we sit to study.
You can have a deeper dive into this topic by reading this article.
Systems over Goals
Itās important to have a goal, a clear objective. But itās also important not to focus too much on it. What we should do instead is to focus on the system we are going to use in order to achieve our goal.
Those who achieve a goal and those who donāt, ultimately have the same goal. So, having a goal by itself is not a guarantee to get it. Many people want to become programmers, but not all of them end up achieving that.
Focusing on our systems will help us to achieve our goals by providing discipline, reminding us why we are doing what we are doing, and avoiding procrastination.
For example, our system could look like this:
- Wake up early
- Take a shower so we can be more awake
- Make our breakfast
- Sit in front of the computer with our breakfast
- Open the programming book or online course
- Start to study whilst we are having breakfast, and do this for at least one hour (we are stacking habits here, as described in the book Atomic Habits)
By focusing on the process (our habits) we are working on our system every day. We are focusing on the immediate, without worrying too much about the future: all the programming languages we donāt know, or how much time is left to become a programmer. By focusing on the day-by-day tasks, we can diminish our anxiety.
If we keep applying our system, day in and day out, we are going to achieve our goal of becoming a programmer.
You can have a deeper dive into this topic by reading this article.
Finishing upā¦
I want to remind you that this is just a guide to what I consider to be the best way to set the right mindset and attitude toward becoming a software developer.
Which one of these concepts resonated the most with you? Leave it in the comments so we can see which ones are the favourite picks!
Next post
In the next post, Iām going to cover the rest of these concepts, so you may want to subscribe to my newsletter to get a notification when the post is out.
See you next time! š
šļø NEWSLETTER - If you want to hear about my latest articles and interesting software development content, subscribe to my newsletter.
š¦ TWITTER - Follow me on Twitter.
Top comments (4)
Nice article. I like the idea of setting a system. This will work out and will help to achive the final goal.
I'm glad you liked it!
Knowing our why is the best motivation and reason to become a Software Developer!
It sure is! :)