Many of you have been trying to learn to code for weeks, months or even years and as soon as you feel like you are getting somewhere and things start to click, you hit a wall that makes you feel like you are going backwards. This is very common, and most of the time it comes down to a few basic human traits that we need to correct and that luckily, we can correct.
I'd recommend coming back to this article time and time again whenever you feel like you are stuck on your development journey. Just to refresh your memory on why this is happening. Because I have been there time and time again, believe me.
With that, let's dive in to the 3 reasons that you are probably struggling as a programmer.
1. Lack of focus
Focus is a skill. It is a habit that we build up over the years. The problem is, our current modern society trains us to be distracted every five minutes or so. We take 45 minute classes on a variety of topics continuously for years from K-12, jumping from one topic to the next and never really fully grasping any one of them, but getting good enough to be told that we are ready for the world.
Add to that the yearly popularity of social media networks, hourly phone notifications, billions of bits of content getting created and distributed daily, and you can start to see how your focus is taking a hit. And that's normal. Unless you decide to go against the 99% and uninstall every app and go full airplane mode 24/7 while you code on a boat, distractions will be a part of life. And since you are reading an article on programming, I have to assume you are not in that camp.
The solution is simple. Work at improving your focus each and every day. And don't take a day off. Habits normally can't be erased. But they can be replaced, slowly but surely. There are various ways to go about doing this, but essentially you want to work on something until that nagging anxiety that you should be doing something else triggers, and then you want to continue working for a bit longer until that feeling passes. Eventually, that window will open up more and more and you won't even notice the 7+ hour work session that's taking place in the foreground.
I recently did this in order to complete a relatively complex project on time. My normal daily focus time sat around the 4-5 hour mark before the usual lunch time hunger pangs rang out. The first few days, I pushed my lunch up by an hour until it became normal and didn't require any extra thought. I then pushed it up by another hour after a few days. And I repeated. After the first 2 weeks, I was able to complete 12 hour work sessions without that nagging feeling anymore. Gone.
Again, focus is a muscle, and if you want to perform at higher levels, you need to train it daily. So if you are currently reading about ES6 and wondering about prototyping and OOP, don't jump to string templating, stay on course until you find what you are looking for.
2. FOMO (Fear of missing out)
Fear of missing out (or FOMO) doesn't just apply to going out on a Friday night because you are afraid of what you will miss. It can also be used to represent that anxiety that we get when reading about the latest gadgets not in our possession or about which programming language is the one to learn in 2019.
We've all had this feeling. Mainly because they are valid questions. Is Angular.js a better framework than React? Some would argue yes, others no. And until we know, it's hard to get our work done. So we detour our learning and work several times over until we finally settle ourselves, like a pup laying down.
My best solution here is to stick with one technology stack for at least 2 months straight without getting distracted. If after 2 months you still feel uneasy using it or you find that certain things are difficult to accomplish using it, then you should consider looking at alternatives. But you should be the one making that choice, and not some random blog post online. If you notice on my blog, I tend to steer clear from choosing any one technology over another. And that's mainly because programming is such a subjective activity dependent on many factors.
But for this to work, you need focus! (See #1)
3. You might just think, you are struggling
This one I found to be very common among many of my students brand new to coding. They always tend to feel like they are light years away from where they should be, even though, they might be just right on course. But because their work doesn't look like that person's over there, they assume that they know nothing and that they should change careers. Some call this impostor syndrome and it is very common among everyone pretty much. It helps to know that you aren't in competition with anyone. There are, and will always be, people out there much better at things than you are. If we just accept that, we can graciously move on. Most of the time, you are only in competition with yourself.
There is a very high chance that you are fine, however. You might not be amazing. But as long as you pick up the learning material daily and are doing something with it for 30 minutes minimum, you are making micro steps towards your larger goal. My tip here is to just change the words that you are using to describe yourself during the learning process. Or any phrases that make the assumption that you can't learn something. A few examples that come to mind are:
- "This is difficult"
- Any "can't" sentences
- "I'm trying..."
- "One day..."
And the rest of the self-sabotaging words that many of us can't seem to control. If you change the perspective, then the situation changes as well. For example, "This is really difficult". Is it? Maybe it's really simple, but you just can't understand it yet. Which is perfectly normal. When I read a sentence in another language, I don't normally state that it is really difficult. I'm honest about it. I just don't know the language. Can I learn it? Sure! I can buy a book on it and spend a few hours a day getting familiar with the syntax. I could even get my phone out and translate it using an app. Any of a number of things.
Reframe your perspective and things will go smoother for you.
If you read this far, then good for you. You have a good sense of #1 from above. And if you didn't. Then hopefully you begin to work on that one daily.
Happy focused coding!