Learning how to code: what you should know first (part 2)
Are you thinking of learning how to code? I think there’s still something you need to know first…
This is the second post of a two parts series, and I’m going to cover:
- The importance of Grit
- The key to consistency: Habits
- Why doing Deep Work is important to have productive study sessions
- Why you should Care about Your Craft, and
- Why you shouldn’t compare yourself to others
Just in case you missed it, this is the first article of this series.
You can watch this content on my YouTube video:
If you missed the first post, you should consider subscribing to my newsletter so you can get a notification when I publish my videos.
In this post, we are going to continue developing an attitude and mindset that will allow us to face the challenge of learning programming in the best way possible.
Let's start by discussing Grit.
Grit can be defined as a fierce determination to perform our work. Grit means being able to endure setbacks and work hard. Once more, keeping in mind our "why" will be very helpful here.
We can have a high potential (or almost none), but what’s really important is what we do with it.
Someone with great potential, like a person that understands mathematics and logic easily, but with no grit, will not be able to progress far in the programming journey.
On the other hand, someone with low potential, like a person that needs to read a definition several times to really understand it, but with plenty of grit, will progress far in programming.
If you want to know more about this topic, I recommend you read the book Grit.
Let's now move on to Habits.
We need to decide what our identity will be and develop habits that can sustain that identity. Our habits shape our identity, and, in turn, our identity also shapes our habits.
Ask yourself: What type of identity do you want to develop? Do you want to be a programmer? What habits does a programmer have?
We can define our identity as follows: “I’m a programmer that takes care in giving the best of himself or herself at this very moment“. Then, when we are about to do something that goes against that identity, we will have a clear indication of what we should be doing:
- “Will a programmer that’s giving the best of herself sit to watch a Netflix show, or, instead, would she choose to work on a project for her portfolio?”
- “Willa programmer that’s giving the best of himself choose to work or study without a break, or choose to go outside for a while to clear his head and stretch the body?”
The key here is not to fool ourselves, because we are the easiest person to fool.
To know more about this topic, I recommend you to read the book Atomic Habits.
Let's now talk about Deep Work.
According to Carl Newport, Deep Work is a “professional activity performed in a state of distraction-free concentration that pushes your cognitive capabilities to their limit”. The key here is “distraction-free concentration”.
If you wish to know more about this, read the book Deep Work.
One of the main obstacles to overcome in order to achieve distraction-free concentration are social networks (Facebook, TikTok, Reddit, Twitter, etc.). When we are studying programming, or working on a project, we should avoid using social networks if we want to keep the focus on the task at hand.
In his book, Carl Newport recommends allocating specific days and times in which we are going to be studying, distraction-free. This will help us to:
- avoid burnout,
- avoid pilling up subjects to learn or projects to practice, and
- keep the focus on the studying activity.
The hours of our day are not all equal. We are going to be more productive at certain times of the day rather than others. For example, we could study best early in the morning, or in the late afternoon, so we need to pay attention to which time serves us better according to what we want to do.
What I usually do is assign a relative value to the different parts of the day. Early mornings are my most valuable hours. I’m full of energy, no one is going to interrupt me, and I can use those moments to study programming or work on a project, no matter the day of the week.
Let's now Care about our craft.
Care about your craft
What we do in our work and in our studying activities will be a reflection of the type of professional we want to be. Therefore, it will be in our best interest to do things the best way we can:
- We shouldn’t be mindlessly studying, overlooking important topics.
- We should try to care about the quality of the code we are writing (even if it just how well indented it is).
The objective here is to do whatever we do, in the best way we can, given our current circumstances.
I find it very helpful to ask myself if my future self (not someone else) would be proud of how and what I’m doing right now.
To learn more about this topic, you should read the book The Pragmatic Programmer.
Now... remember not to compare yourself with others.
Don’t compare yourself to others
We are all different, and you don’t know what paths have led people to where they are today. So, comparing yourself with someone else has no point.
Instead of comparing ourselves with someone else, choose to make that comparison with your own self.
- Where were you 2, 5, or 10 years ago? Are you in a better position today? Did you know how to program 5 years ago? What about today?
- Where could you be in 2, 5, or 10 years in the future, if you continue doing what you are doing? If you keep studying programming, could you become a senior developer 5 years from now?
This concept is so important to me that I’ve written down the question “How would my life be in 10 years if I stick to this?” (speaking of programming), and hung it over my monitor, together with my list of my "whys".
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!
Thanks for reading, and 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.