Achieving greatness, like reaching the top of a mountain, is a great undertaking that requires discipline and practice on a solid foundation of safety and driven with a desire for growth. This blog post provides practical tips and strategies for achieving difficult goals, using the metaphor of climbing a mountain as a framework.
A journey of a thousand miles begins with a single step.Lao Tzu
Choose your mountain
Before you start climbing a mountain, you need to know first which mountain you want to climb. If you don’t think carefully about which mountain to climb, you might end up just going in circles, or trying to climb two or three different mountains! This is why understanding yourself and deciding on a goal is one of the most important first steps. If you’re not clear with what your goal is, how will you determine if you’re already there? It’s difficult already as it is to pick and specify one goal clearly. It is more difficult with three.
As a software engineer, you might find yourself trying to both learn frontend development, user experience, and product design all at the same time! This can result to feelings of frustration, lack of progress, and lack of fulfillment in your work.
- What do you want? Why do you want it?
- What are you willing to pay for to get what you want?
- Do you want too little? Do you want too much?
Reversal: Decide to wander
At times, not choosing a mountain is okay. Such is the case if you have already been suffocating yourself in pursuit of a singular goal that has been difficult to achieve for an extended period of time. In this case, it might be better to leisurely wander and take a break.
To wander is to live freely, in awe and gratitude of the moment. To dawdle is to spread yourself thin and miss out on what was within reach.Mental Model: Wander, Don’t Dawdle
To wander is a luxury, a privilege, and a way to enjoy life. For some it is an unlearned skill, as some may have the space to wander, but are plagued with anxiety about how to do it. It’s okay not to know how.
Wandering requires freedom, abundance, and contentment to enable a person to accept and be content with not knowing where they may be, while still enjoying the sights and taking in the fresh air.
- Do you need to focus more or do you need to relax?
- If you’ve been grinding for so long, when was the last time you shifted gears and reassessed the situation?
- Have you been dawdling, wasting time, or spreading yourself too thin?
Determine your pace
When you are climbing a mountain, stamina is a real thing. You can’t simply sprint your way to the top of the mountain. Not only is that exhausting but it is also very dangerous, especially because there are risky areas like cliffs. Learning to determine your pace is tough, especially if you’ve been running in the mountain for so long without any measure of distance, or any assessment of progress using a map.
As a software engineer, once you gain some mastery of software development, you will eventually need to learn to estimate your work. Your product owner or team lead might ask: how long will this task take? Estimation is a skill all on its own, and like all skills, it takes time and effort to practice.
- Are you aware of what your progress and what you have accomplished? Or do you subconsciously discount, diminish, or disregard your accomplishments?
- If so, how will you learn to estimate accurately if you haven’t been observing the truth carefully?
- How have you been performing? Have you asked for a trustworthy third-party to assess your performance?
- Do you compare yourself excessively to other people? If so, are you properly qualifying whether or not you have sufficiently similar capabilities, situations, and timings?
The dangers of not knowing your pace and timing
People are inherently different. Especially if you are starting out, it is incredibly foolish to expect yourself to run as fast as Usain Bolt, to play basketball as well as Michael Jordan, or to beat Tiger Woods at golf. Notice the important phrase here: “if you are starting out”. We are not saying you cannot become better than them- in fact you can achieve their levels of performance and go beyond.
However one very common problem that people face is that they do not know their pace and their timing. They mix up the lessons of Seek Out Classmates and Find Role Models, and find themselves comparing themselves to the professionals and leaders of the field as their classmates. Be realistic and make sure your comparisons are valid and useful, otherwise you will be spending energy to frustrate yourself with disappointment.
- If you make your pace too fast, you can possibly exhaust and/or harm yourself. Worse, you might get yourself killed.
- If you compare yourself with others, you might build habits that (a) beat yourself up for being too slow or having a different timing or (b) you fool yourself into over-estimating yourself or (c) you chase after another person and get distracted from reaching your mountain.
- If you go too slow, you might end up being too comfortable. You might end up camping at the foot of the mountain, never reaching the heights that you have long dreamed of. These are where people sacrifice their dreams because of mediocrity, complacency, or fear.
Develop your Intrapersonal Relationship
On every step that you take on your way to your goals, do you hear encouragement or desperation? Is it a kind person, or is it judgmental? Does it sound like your peers, your enemies, or your family members?
Depending on how people learned to socialize, they’ll have picked up social cues, expectations, or judgments from people around them, whether part of their tribe or not.
When you find yourself training and on the daily grind, do you hear this kind of encouragement:
“Wow, I was brave enough to take the step and I overcame it! Good job, Darren.”
or do you hear yourself critically and non-constructively berate yourself:
“You’re taking too long to accomplish this. Other people took way quicker, and they’re 5 years younger than you. They’re way more skilled at climbing! You are an embarrassment.”
- With other people, to whom am I gentle with?
- Who am I like, to myself?
- Do I believe that I deserve to be treated with trust and respect? Why or why not?
- What holds me back from treating myself with a high standard: respectfully, gently, and lovingly?
Don’t Carry rocks
If it’s not obvious enough, this kind of language is not sustainable. Hearing it once is something that you might brush off as unusual. However, imagine hearing this twenty times a day, for a year: it becomes extremely dangerous and discouraging. Imagine having to hear that kind of talk every step of climbing the mountain!
- Have you observed how you speak to yourself? If not, try to reflect back within this day and see how you may have spoken to yourself as you accomplish a task.
- Have I practiced paying attention to how I treat myself?
- Who are the people who have demonstrated encouragement and support to me before? What holds me back from developing this kind of relationship or treatment with myself?
Celebrate your wins
When you’re climbing a mountain, it can take hours before you reach the top. So every now and then, when you take a break and you take in the sights at the heart of nature, you have to enjoy the accomplishments you’ve made along the way. Celebrate your victories, big and small- and when it comes to your failures, be merciful and gentle with yourself.
In software engineering, we are met with thousands of errors and bugs. Every problem solved should be celebrated, rather than focusing on the depth of the dark chasm of the unknown and not understood.
Learning to appreciate your effort and celebrate your wins is something not everyone has learned to do. Sometimes, people look for affirmation and praise externally because they have not yet learned how to provide it for themselves.
The validity of the affirmation or praise is not dependent on who gives it- but on the truth of the affirmation or praise.
- Today, I will practice affirming myself at least once, no matter how small or big the task is. I will observe how it feels.
- Tomorrow, I will affirm myself three times. I will let the awkwardness pass.
- By next week, I will have practiced affirming myself three times a day. I will appreciate my effort, no matter the inconsistency.
- By two weeks, I will not aim to have mastered the skill. I aim to have overcome the awkwardness of both telling the truth while affirming myself.
There is such a thing as excessively and annoyingly enthusiastic. You don’t need to be like that. There are appropriate levels of affirmation for the corresponding difficulty of the task that you accomplished (See: Mental Model – The Stairs).
Ask for help
You are not the first person to try climbing this mountain. Don’t feel embarrassed to ask for help. Often times, people are more likely to help a humble and honest person rather than an arrogant, selfish, or conceited person.
In computer science, we google every single problem we encounter from build errors, to compile errors, to syntax errors (think about that: we even fail to speak correctly the languages we use!). What we rely on is the consistency of the error message that we receive (and that our ancestors, millions of millions of other developers, have also received years ago). We’re comfortable asking for help about problems on Google. Why is that?
It is okay to look like you don’t know what to do.
You are not an idiot. Being comfortable with not knowing is a skill on its own. Not knowing everything and still remaining calm and collected is a skill, and all skills can be developed. Rest in the fact that you know you are willing to learn and listen to the stories of other people who have already learned.
- Learn to ask for help.
- Don’t think that other people are focusing on you. Focus on your growth.
- If others are focusing on your shortcomings and giving you non-constructive feedback, then they have nothing better to do. Their behavior speaks more about their character, rather than whatever they might have to say.
- Practice saying “I don’t know” until it is comfortable. It gets more comfortable when you follow it up with “but I can try to find out”.
In summary, this mental model employs these strategies and emphasizes the following concepts:
- Divide-and-conquer: Breaking down complex tasks into smaller problems makes them more manageable.
- Abstraction: Focusing on the next few steps in front of you and not worrying about problems you haven’t encountered yet helps you stay focused and make progress.
- Small-term and long-term planning: Knowing which mountain you want to climb (long-term) and taking the next step (small-term) is essential to achieving your goal.
- Protecting your mindset: Your beliefs can either uplift or harm you. Be mindful of your thoughts and their impact on your mindset.
- Knowing oneself and one’s pace: Play your game by your own rules, and don’t compare yourself to others. Learn to set your own pace and achieve your goals on your own terms.
- Being kind to yourself: Failure and setbacks are part of the journey. Don’t carry rocks and be kind and merciful to yourself when you stumble.
What’s your mountain? How is your journey going? Are there other areas in which this mental model can help you achieve your goals? Let’s continue the conversation in the comments section below.
I’ve written a new blog post on the application of the mental model: The Mountain! I talk about my challenges in climbing Celeste, a platformer game, and how I wrestled with the ideas that I pointed out above.
I hope you enjoy it!