The following is something I wrote to remind myself to take my time to learn how to program. Hopefully it’ll help some of you.
It’s originally published on my blog.
Any feedback - like, hate, don’t care - is appreciated. I’m always looking forward to changing how I see things.
When we’re desperate, we’ll rush things. This is because desperation encourages us to overestimate our ability and underestimate a goal’s difficulty. Thus, we are less likely to reach our goals despite the desperation-induced motivational boost.
A common desperation pattern:
I must/should/need to/will achieve X by Y or else Z will happen
I need to finish FreeCodeCamp in 6 months or else I’ll always be stuck in my current job.
I must to get a job in 1 year or else my savings will run out.
I need to become an expert web developer in 1 year or else I’ll be too old to learn things.
The goal might be feasible if it was chosen rationally, but that’s normally not the case for a desperate person. When we set goals that are beyond our capabilities, we’ll most likely fail and intensify the desperation.
Of course, there are stories of desperate people accomplishing remarkable things. Unfortunately, these stories are rare and serve a poor basis to justify desperation. For every story of an accomplished desperate person, more stories are told of desperate people becoming worse due to their indulgence in desperation.
Desperation can help if we do the right things and use the affective boost to accelerate the achievement of your goals. Yet, this is unlikely to happen because desperation clouds the mind rather than enlightens.
First: Identify the source of desperation and assess its severity
Ask: “Is it truly critical?”
Concerns like age or lateness seem critical at first but upon examination, it’s mostly that we fear the negative things people might say about us rather than the concerns themselves being an issue. Sure, being older or late can make learning programming difficult but that doesn’t mean it’s impossible.
But what if we’re concerned with something critical like not having enough money to survive if we don’t achieve our goal in X amount of time?
That is indeed critical but maybe it’s best to decouple that desire to survive from a difficult goal like learning how to program. Learning to program is difficult and time-consuming. If we rush it, it’ll be even more difficult and when we fail, life becomes even more of a desperate gasp for survival.
Try to find ways to make ends meet to lessen that “survival” tension and give our programming goals their own timeframes to play with. Yes, it’s easier said than done, but it’s probably the best way to survive and learn programming at the same time.
Second: Be honest with ourself and set realistic goals
If we know that we have limitations that can impede our learning such as chronic procrastination, depression, etc, it’s worthwhile to include them into the equation when we set our goals.
Self-honesty is important. It goes both ways: try to not overestimate and underestimate our capabilities.
One great way to do this is to review our past performance:
If we’ve never code 8 hours a day, then avoid making goals that require us to code 8+ hours a day.
If we’ve never read a technical book in our life, then avoid making “Read one technical book every week” a goal.
If we’ve never learnt a programming language before, then avoid thinking that we can become an expert in 2-3 months.
Try to set goals that are equal or slightly above our level of capabilities. Also, it’s not necessary to stick to the same pace all the time; when we’ve started working towards our goals and realised that it’s too easy or difficult, tweak the goal until we discover that difficulty sweet spot.
Other ways for self-assessment:
Set a pilot week - create a week’s worth of schedule and try them out. At the end, evaluate our performance and calibrate the goal as needed.
Find out how other people set and achieve their goals - find as much data as possible about others who have achieved the goals we seek. It’s important to note outliers in the data; learn what we can but try not to base our pace based on them. Look for the average pace and set our goals based around that. We can always change the pace later.
Third: Take it easy once in a while
It’s a long journey, and we’re not built to continuously work and be stressed all the time. Life is normally a cycle of working very hard and then, relax and let go…
Being desperate violates that cycle.
Be kind to yourself.
Desperation is a goal killer. Most often than not, desperate people set goals that have a high chance of failure.
Try to identify the source of desperation. Find out if it’s truly critical. If it’s critical, it is probably wise to decouple it from a difficult goal like learning how to program.
Assess our capabilities honestly and set achievable goals. Don’t let desperation cloud that assessment.
Take it easy.