Since you clicked on this article, you probably made up your mind to learn programming, but are feeling overwhelmed and frustrated right now. You just started your journey and already you feel like you hit a wall.
Maybe you are struggling to understand basic data structures like variables, functions, and arrays. Maybe object-oriented programming leaves you scratching your head. Maybe you can’t solve even the simplest algorithm you can get your hands on. Maybe you got stuck as you were working through a tutorial or basic programming textbook. Maybe you tried to build an application and can’t figure out why it isn’t working. Maybe this struggle to understand and learn is making you feel depleted and exhausted. Maybe you just want to smash your computer with a sledgehammer.
You are probably wondering how on earth software developers can be so damn smart. You may even be asking yourself if you’re smart enough.
I am here to tell you this:
YOU ARE SMART ENOUGH…IT GETS EASIER… KEEP GOING.
Approach programming as you would approach learning any other language.
Let’s say you are trying to learn a language like Hungarian. Initially, you won’t understand a single word, unless of course, you already speak Hungarian. Soon, however, you will pick up a few words like “szia” (hi) and “köszönöm” (thank you). Next, a few common phrases: “Jó napot kívánok!” (I wish you a good day”) and “szeretek programozni” (I love programming). Over time, you start to develop an understanding of the language structure and accumulate a vocabulary of common words.
Through repeated exposure and practice, there will eventually come a point when things just click. Suddenly, you will understand the gist of a conversation you overhear on the subway. You begin to realize that you are able to communicate your ideas. Learning slowly becomes less of a struggle and more of a pleasure. At this point, you have hit a critical mass of knowledge and now you are simply building on it.
When you are in the early stages of learning to program, everything is new and unfamiliar. You are training your brain to think in a completely different way and this can be a painful and frustrating and slow process. Building this foundational knowledge is difficult.
My advice is to just keep going. Keep trying. Keep struggling with the content. Expose yourself every day (even if only for a few minutes) to programming.
Eventually, things will click. You will hit that critical mass of knowledge. Suddenly, you will look at a few lines of code and realize you understand. Suddenly, that algorithm will be solvable. Suddenly you will begin to enjoy programming.
If you stick with it long enough, you will arrive at a foundational understanding of programming. That understanding will be yours forever and can never be forgotten or unlearned. You will be able to build on that foundation and use it to create and to advance your career.
Before I close out on a happy note, I have some bad news. Even after you understand the basics and feel like have some momentum, you will hit new walls. You will encounter new seemingly impossible challenges and find new wells of despair and frustration. The realization that you don’t know as much as you think and you still have a long way to go will dawn on you. You will wonder once again how programmers can be so smart and ask yourself if you are smart enough.
While software developers are not dummies; they aren’t really that smart, they just have been at this much longer. They persevered when others did not.
When things get hard or they get hard yet again, remember:
YOU ARE SMART ENOUGH…IT GETS EASIER… KEEP GOING.