How to keep moving forward with your coding journey in the face of disappointments, failure, and other difficulties.
LONG ARTICLE ALERT !!!!
I have previously written a post on lessons I've learned so far on my programming journey here, but I decided to go deeper and elaborate on what keeps me going despite the daily challenges and disappointments. These are the days I find it difficult to remember how to work with arrays or can't remember whether to use let or const and have to dive deep into research and make a whole blog post on it.
When faced with disappointment, most people take one of two routes; either they quit or keep struggling despite the difficulties which in reality is the lesser taken route. Getting frustrated and suffering mentally is very often especially for programmers which leads to fatigue and burnout. This is partially due to the massive information that developers have to absorb daily to keep up with the ever-developing world of technology.
For a learning programmer, the journey is never smooth. There are disappointments after disappointments. There are times when you’ll try to learn a concept for weeks only to be disappointed in yourself and almost if not give up entirely.
Having to face these disappointments when learning to be a developer, I’ve come to realize there is a third option; taking a small break and revisiting the issue with fresh thought.
Obviously, this is easier said than done especially when you think of all the energy you invested the first time around on the issue but ended up disappointed, the idea of abandonment and quitting seems very alluring. I have had countless such moments and I am sure everybody who aspired to do something great has too. One of my tricks I use to encourage myself to go through it multiple times without giving up is remembering the *feeling of accomplishing the task. *
I'm sure aim not the only developer who at one moment feels that can solve all world problems with just a few lines of code only to feel like they are a fraud soon to be discovered that they know nothing related to coding.
I have to remind myself that no one will do it for me.
I have to remember that no one can learn on my behalf. No one will work on my projects on my behalf or will have to make all the job applications and go through the dreadful interview processes for me. The harsh reality is that it becomes twice as difficult to solve an issue once you have procrastinated and most likely you’ll give up.
Allow me to share a bit about myself and my schedule. I usually prefer to wake up at 4:00 in the morning. I've used the word "prefer" because like any other human, sometimes I fail in this important task. I’ll call this my prime time usually between 4 - 7 am. I can get a lot done during this time because there are mostly no interruptions or any external noises and the whole world is asleep. This is the time I allocate to the disappointing and daunting tasks because I am well equipped mentally to handle them.
It took me a long time to realize this. I had to listen and read multiple articles about the best time possible for a person to increase their productivity and I can tell you for a fact it is different for every individual. Some developers are very productive during the day and others in the evenings while others are night owls - productive throughout the night and then the early risers which I think is the category where I belong.
To me, commitment is doing what needs to be done regardless of your current feelings.
Sticking to my schedule sometimes is more difficult than working the schedule itself. There are times I feel so tired to wake up to work on my demanding tasks in my prime time, and I have failed to act accordingly several times but never given up. I usually deploy some simple tactics to keep me committed to my schedule.
## Tip 3: Count to 3;
This is more of a wake-up call to get going. One of the simple tactics is counting from 1 to 3. This usually works, in most cases especially when I’m procrastinating. when you realize you have veered off your schedule, try counting from 1 to 3 and dropping whatever unproductive activity you were doing, and diving deep into your scheduled activity.
When we want to procrastinate we usually tell ourselves that what we are currently doing is also important and will also deliver results which essentially is lying to ourselves because if this were the case, we would have included it in our schedule which we took more time and thinking to create than the random activity we are currently engaged in to avoid the scheduled task.
When I’ve committed to an activity and kept my schedule for some time, I find it difficult to break the commitment.
Breaking the commitment is the first step towards disappointment and the ultimate failure.
This is more of a motivation to get back and work my schedule no matter how bad I feel or dread the activity. Remember getting back at working the scheduled activity is not enough, you have to commit to it and work it diligently otherwise it’ll be a wasted time.
Most of the time especially during the day, I always have a rubber band on my wrist. Remember, if you took enough time working on your schedule, it eventually becomes part of your routine, and consciously you’ll always be aware when you are procrastinating or avoiding it.
To mitigate this I use the rubber band by pulling it and snapping on my wrist and I’ll stop whatever activity I was using to procrastinate and get back to my scheduled activity. This is very effective especially during the day when there are tons of distractions.
There is nothing that snaps you back to the present faster than a rubber band's snap on your wrist.
Then there is the anticipation of results. I’ve already briefly motioned this using a metaphor of climbing a hill. The feeling of achievement of getting to the top and looking back at what you had to go through to get where you are.
This is a very powerful motivator because it not only shows there is progress but also indicates your schedule is effective and will eventually get you where you need to be.
I realized that to keep going and working my schedule, I need more than a count and a rubber band. I needed motivation. I can not insist enough on this. Try going to youtube and just type motivation and you’ll find multiple very nice videos on motivation even some specific to programmers.
There are times when I listened to a video and it resonated with me so well I got back to my schedule instantly energized and eager to work the task at hand. There are reasons why top-performing companies and institutions hire motivational speakers and coaches to talk to their staff. I’ll do more than just tell, here is a list of my top motivators;
There are even amazing channels dedicated to motivation and experience like;
This is among my favorites because it is based on real-life people giving their experiences.
The second part of this is reading. videos are good for short jolts of motivation. But for a detailed and well-crafted process on how to keep you motivated try reading a book, it’ll surprise you.
Here is a list of amazing books you could read to keep you going.;
The Alchemist by Paulo Coelho
Grit: The Power of Passion and Perseverance by Angela Duckworth
Think and Grow Rich by Napoleon Hill
The Subtle Art of Not Giving a F*CK: A Counterintuitive Approach to Living a Good Life by Mark Manson
Who Moved My Cheese? by Spencer Johnson
Take books like an umbrella and a bottle of chilled water that you take with you on a long journey to drench the agonizing sun and the dusty roads towards a blissful town of your goals.
To most people, learning new things especially in programming is difficult, tiring, and disappointing, but I'd urge you to keep going, track your progress, keep your schedule, Come up with a plan and most importantly learn how to keep going even in the face of disappointments, failures, and adversity.
Start by doing what's necessary; then do what's possible, and suddenly you are doing the impossible. -Francis of Assisi
THANK YOU so much for taking your time to read this article. I really appreciate your patience and attention throughout the reading. This is just the beginning and a lot more tips and posts related to my development journey as well as technical aspects of it are on the way and to get notified when they do, follow me on Twitter.