by Ayoub NEJJARI

Please don’t quit — every expert was once a beginner


If you’re like me, you have at some point in your efforts to learn programming, thrown up your hands and said: “I need to quit, this crap isn’t for me!

It’s easy to get discouraged when you’re trying to learn something as complicated as programming. The fact that everywhere you turn, someone is telling you “you’re doing it wrong” makes this process even tougher.

Knowing that there are more than 18 million professional software developers out there, and that it’s one of the most common careers in the world, can trick you into thinking that coding is a simple task, and we can be learned in a short amount of time and BOOM! You are able of building fascinating things.

Marketers perpetuate the myth that programming is easy by pitching it as just another way to make money online, as though it were as easy as affiliate marketing, building a mailing list, or getting subscribers on YouTube. If you’re new to programming, you might get the impression that these achievements require the same amount of effort. These marketing campaigns paint a distorted picture of the real world of software development.


So you decide to go for it, supposing that it will be a walk in the park. You pick up the material and start the journey. The next tricky thing you encounter is the enthusiastic introduction. Now I really love that. It’s good to be encouraging.

But most people — products of our a relatively hand-holding education system — will get the impression that programming is just about reading the material, and that if you do so, you’ll become skilled in that language or technology.

But as soon as you’ve put down the tutorial and start walking on projects on your own, you hit the first wall. Problems start to appear. You begin to feel clueless. When a concept seems hard to understand, a little voice tells you that other people are able to get past whatever it is you’re stuck on — why can’t you? And the more you go on, the more lost you feel. You start to get really frustrated, and maybe you start to think about quitting.


Great developments never come from within your comfort zone

Let’s talk about getting past this first wall.

It’s common for new developers to experience this. It’s normal to feel frustrated, sick, and have headaches. You know what all means? It means that you are working, putting effort, and doing your best. It means you’re using your brain and you’re trying to understand.

It’s always hard to push yourself to the next level, because it requires greater effort than the usual. It requires more energy, which may tire you physically and mentally. But don’t think about that. Think about the result. The achievement. Reaching the next level in your quest toward mastery. Every time you take a step toward expertise, no matter how small, it is still a step.

Learn in diffuse mode

Here’s a mind trick to help you get past this first wall. Since it may be hard to get a concept the first time you read about it, you can do something that will make it better for you and help you get it quickly.

Read the full text with total focus (first time,even if you don’t understand), okay? Now, read it again. I am pretty sure a lot of things will make sense this time around. After the second time, google the concept and try to read about it in different articles. That will help you see it from different angles, which will help you better understand it.

The next step is to read the text a third time. What do you think? I’m sure your understanding of the concept is much better now than it was the first time you read it, even though in all likelihood you’re still early on in your quest to truly understand that concept.

We’ve just described a learning process known as Diffuse mode. You can apply this type of learning toward applies to videos and tutorials, as well.


The second wall is once you’ve complete the materials, and you feel like it’s time to build things up. You set up your development environment and start coding. After a while you discover that you have no idea how to create what you want to create. You can’t make the things exactly as you are imagining them in your head. Errors start showing up, and either your code has a lot of bugs, doesn’t seem to work at all.

A common mistake here is to start blaming yourself for this situation, thinking that you’re not smart enough to become a developer, and that you should quit. You start to think of all the famous programmers you hear about in the news, and you can’t imagine how you would ever be able to catch up with them.

And you forget! You forget that every expert was once a beginner! That the expert you’re thinking of now was just like you at one point, that they also blamed themselves, and that they thought many of these same thoughts you’re thinking — but they didn’t quit!

This is what you — we — should all bear in mind: successful men and women don’t quit!

“You never fail until you stop trying.” ― Albert Einstein

Because software development requires a lot of critical thinking, it can be exhausting, even for the seasoned practitioners. It can also be frustrating because as you’re programming, the computer is constantly giving you negative feedback in the form of errors and failing tests. You should work to increase your tolerance for frustration and exhaustion.

Also, you should know that reaching a high level takes time. You can’t be the next Steve Jobs overnight. So, if you are doing this as way to earn money quickly, you’ll be disappointed.


I have learned many things since I started, from both experience and from other developers — and I’m still learning. Here are some things I’ve learned that I think will be helpful to you:

  • Don’t work alone. Always work with other developers if you can.
  • Don’t wait for inspiration. Inspiration isn’t something you can control, and if you depend on it, you won’t be able to work all the time. Build discipline by forcing yourself to work. Discipline is reliable.
  • Real work usually isn’t fun. It is tough and exhausting, Don’t run from that!
  • Practice, practice, and practice. Practice makes perfect.
  • Tutorials fish on your behalf, so you don’t need to learn how to fish yourself. You need to read books.
  • Always try to understand a new concept using different resources. This will help you see it from different perspectives, which will improve your comprehension.
  • Don’t just read. Build. Try, try, and keep trying. Programming is like swimming. You can’t compare someone who spends all their time swimming with someone who spends all their time reading about swimming and how the body works when swimming.
  • Frustration, boredom, tiredness, exhaustion — these are all normal. They don’t indicate wither you are not the right person for a given profession.All they say is that you are putting in effort and doing your best.
  • Ask. Whether it is a technical question or not, just ask. If you can’t find the right person to ask, there is two great alternatives, you can’t imagine how many times they saved me. Quora and Stack Overflow.

Don’t quit! Always Remember that every expert was once a beginner.


I hope this post was useful for you! If you enjoyed it, please hit the heart button below and share it. Thanks! ^^