Rule 1: Harnessing Inertia and Building Habits
Becoming proficient in coding is similar to going to the gym - continual effort over time produces the best results. Going to the gym for a single weekend won't give you a transformed physique, just as coding requires a consistent commitment. The challenge often lies in finding time to code amidst work, family obligations, and daily tasks. On a typical day, with a full-time job and essential responsibilities, only a limited amount of time is left for coding practice. However, there is a clever strategy that leverages human inertia to optimize learning potential.
Recognize that shifting tasks demands significant motivation. The moment you step through your door marks a crucial point for action. Capitalize on this juncture by dedicating just 20 minutes to coding. Trick your brain into underestimating this effort, leveraging inertia to extend your learning session far beyond the initial timeframe. This way, you exploit your brain's natural inclination for inertia, turning it into an advantage for your coding journey.
Moreover, establishing a consistent habit is pivotal. Research suggests that around a month of daily repetition is necessary to form a new habit.
💡Here's a helpful tip to stay on track with your coding practice. Visualize a wall with five paintings - four of them are perfectly aligned, while one is crooked. Think about the urge you feel to fix the misaligned one. Now, apply this concept to a monthly calendar. Every day that you practice coding, draw a line through that date. The objective is to create a chain of progress that's unbroken. This approach helps you overcome the psychological hurdle of breaking a continuous streak. It motivates you to keep going, even when you encounter challenges. And here's an additional tip to supercharge your progress: consider tracking your habit on a digital platform like Notion. Notion offers a dynamic way to monitor your coding practice. For added convenience, I'm sharing a video link that demonstrates how to construct a daily habit tracker using Notion. This resource simplifies the procedure, offering a seamless way to monitor your progress and maintain a consistent streak.
➡️ Notion Habit Tracker Template
By applying this first rule of harnessing inertia and cultivating habits, you're setting the foundation for a successful journey in learning to code.
Rule 2: Learning with Purpose and Creativity.
Starting on the journey of learning to code often involves moments of frustration and wavering motivation. I can relate to this from my own experience. Upon reflection, I now understand that becoming a skilled coder involves more than just selecting a programming language and completing tutorials. It requires discovering a sense of purpose and motivation from within.
Many beginners dive into coding by replicating code from tutorials, perhaps solving mathematical puzzles or mundane tasks like identifying prime or even numbers. However, the truth is, that these exercises might not necessarily fuel your passion for coding. If your goal is merely to learn for the sake of it, the journey can be arduous. Coding, a skill that demands time and dedication, flourishes when it's driven by a deeper motivation, a spark that engulfs you so much that you lose track of time and forget about the world around you.
The allure of coding lies in its fusion of logical thinking and creativity. It's about crafting something unique, something that has never existed before. This is where the real excitement lies – creating solutions that simplify lives or bring joy to many. It's akin to designing a remarkable custom motorbike in your garage, minus the physical limitations. This aspect of creation and innovation is what resonates with most aspiring coders.
So, I encourage you to embark on your coding journey by following tutorials that guide you in creating something tangible. You might not be coding the next blockbuster game right away, but you'll be crafting something engaging and educational. Whether it's a simple dice game or a flash-card app, the process of building, testing, and interacting with your creation fuels your motivation to carry on.
For example, picture creating an app that wakes you up a minute earlier every day, helping you adjust to an earlier morning schedule. Or designing a personalized slideshow app as a thoughtful gift. The possibilities range from a timer for cooking the perfect noodles to innovative wake-up solutions, and the potential is limitless. Developing your app might be difficult without a clear roadmap, but it's this challenge that drives the most significant advancements in your coding skills.
Rule 3: There is No "Perfect" Language to Learn.
In the world of coding, I often encounter a common question from my fellow juniors at university: "Which programming language should I start learning first?" This query embodies the notion that there exists a single, ideal language for beginners. While some might propose Python as the starting point, others champion JavaScript. However, my perspective sets me apart from this ongoing debate.
Choosing the right programming language is like selecting the appropriate tool from your hardware kit. Just as you would pick a hammer to drive a nail or a spanner to fix water pipes, your choice of programming language should match the task at hand. It's possible to use the side of a spanner to drive a nail, but it's not the ideal "fix-it" tool. Learning to code is similar to going to the gym; you need to find the right tool for the specific job.
Web developers may suggest JavaScript as a beginner's starting point, while those in statistical fields might endorse the R programming language. However, what truly matters is the task at hand. For example, if you want to develop iOS apps, then Swift is the way to go. If your focus is web development, then JavaScript is essential. The beauty lies in the shared core programming concepts—loops, conditionals, functions—which remain consistent across languages. It's the syntax that differentiates them. Consider the analogy of language itself. Just as "werewolves" in English become "Werwölfe" in German, the essence remains unchanged-the same shirt-ripping mammal that comes out during a full moon.
Similarly, in coding, printing to the console in Swift is achieved with:
print("Hello Werewolves")
while in java it becomes:
println("Hello Werwölfe")
The essence remains, but the syntax adapts.
In your journey toward coding mastery, remember that these foundational concepts span language barriers.