How to become a developer -Part 3: Learning to code

João Henrique
8 min readApr 7, 2019

--

Photo by Helloquence on Unsplash

This is the third of a five-part article. Here you have links to the other parts:

Part 1 -Where to begin

Part 2 -It’s all about habits

Part 3 -Learning to code

Part 4 -Get Social

Part 5 -How to get your first job as a Web Developer

Intro

In this third part of the article, I will walk you through the learning phase and all the things I consider important when you are learning how to code.

This is it! You have been preparing yourself for this part. Now It’s time to start your journey. Coding is hard and it will require you to be aware of your weaknesses, to be patient and to endure. It is really easy to quit when you hit “the wall”. It’s normal to get stuck in some difficult challenge or project but, don’t despair. This happens to all of us. You just have to learn how to deal with it. It takes time but you can make it.

The obstacle is the way

I had to lend this title from Ryan Holiday’s book because when you are learning to code you will always be facing obstacles that will challenge you. Those obstacles will make you grow. You have to learn how to get comfortable facing those tough challenges because as a developer, you will be facing them all the time.

Even experienced developers face difficulties regularly. The difference is in the attitude. Now you look at the obstacle and you think you will never be able to solve it. Get help, ask someone to explain it to you but, always tackle it until you solve it. It’s very important to keep at it. You will improve your problem-solving technique and your resilience. Those are crucial skills for you to develop. Don’t quit. You will end up enjoying being challenged.

Dealing with frustration

We live in an Era where we don’t have to think much to do anything. All the information we consume is presented in a way that keeps us more engaged than informed.

In an age where our brain is used to “fast-food information”, we struggle when we have to “chew” through that hard and bitter layer of frustration so that we can understand the difficult stuff that makes our minds glow.

Your brain interprets hard challenges as if you had hit a wall, as a dead end and as a waste of time. Frustration is just your brain sending chemical signals to make you want to quit and stop wasting your time. This is how your brain is programmed since the beginning of our species. You will have to reprogram it to suit the new you.

In my case, it was no different. I had a hard time retraining my brain to have pleasure in solving hard problems. It’s hard and it will make you want to go back to your comfort zone. Just don’t. This is a process that everybody who is learning to program has to go through. You have to learn how to learn difficult things.

Photo by Tim Gouw on Unsplash

Endure the pain

I used to joke, that you realize that you are becoming a developer when you start enjoying the challenges only hard problems give you. For me, it was not unusual to take a couple of weeks to solve a single Javascript algorithm. This means I was defeated, daily, by that fucking algorithm! This brings a lot of pain, frustration and you start to doubt yourself.

Day after day, I would clear my code and try a different approach but, once again I would fail. I didn’t know at the moment, but even if my code was failing, I was making lots of progress. I was experimenting and researching for creative ways to make it work. As the days went by, I was able to focus more and more and understand better what I was doing. This in itself is a precious skill that you will have to develop.

The marshmallow experiment

In the late 1960s and early 1970s, a team of scientists led by psychologist Walter Mischel did a series of studies on delayed gratification. In these studies, a child was offered a choice between one small reward provided immediately or two small rewards if they waited for a short period, approximately 15 minutes, during which the tester left the room and then returned. In follow-up studies, the researchers found that children who were able to wait longer for the preferred rewards tended to have better life outcomes. Read more about it here.

When you are struggling to get something to work in your code, and you feel like quitting because you have reached the point when you're totally frustrated, remember the marshmallow experiment. “…children who were able to wait longer for the rewards tended to have better life outcomes”.

Don’t quit, sometimes the solution is just around the corner and when you finally make it work, you will explode in joy and everyone in a 10-mile radius will hear you screaming in hysteria. You will feel invincible. Yeah, my neighbors have suffered :)

Read Search Ask

This term is used a lot in freeCodeCamp and the order is extremely important. First, READ the problem and repeat this part until you understand it. It’s normal if you don’t know how to do it right away so you should SEARCH on google for something about the topic that can help you solve the problem in hand. Only when you have unsuccessfully done everything you can to solve it, you may go for the third option. The ASK part.

Learn to research

This, in itself, is one of the most important skills a good developer has to master. You will rely on this every day from now on so, the sooner you learn it the better. It’s impossible to get everything in your head. Google is your friend and will give you all the answers you need. You just have to learn how to ask the right questions.

I usually ask google what I would ask a normal person. For example: If I needed to know how to split a string in Javascript, I would ask: “How to split a string in javascript”. It’s as simple as that.

You should include what you want to do and the language you work with. The how-to part is because people often write very useful how-to articles about everything. Get good at research because it will make you a way better developer.

Photo by NEW DATA SERVICES on Unsplash

How to ask for help

I understand that when we find an obstacle, it’s really easy to go online and ask for help right away. And people are often very helpful. But if you ask questions that you would easily find with a google search, in time, people will start looking at you as a lazy person, and no one wants a lazy developer on their high-performance team.

Before asking for help online, make sure you have done the READ and SEARCH parts all the way, and follow these rules to ask for help:

  1. Ask specific questions.
  2. Be clear.
  3. Include all the information you possess about the problem.
  4. If you are referring to a specific part of your code, provide that code. Omit passwords and other sensitive information.

If you want to get good at asking questions I encourage you to read this article.

Don’t stick to the script

What I mean with this is that freeCodeCamp is great to show you what is important for you to learn but, some topics are difficult to understand in one sitting. I recommend that you search for other tutorials online to complement the knowledge or to have a different perspective so that you can really understand web development.

I can tell you that I have watched tons of videos about some Javascript concepts until it finally made sense on my head. When you are new to programming, a simple for loop can completely twist your brain. It takes time to get comfortable with some concepts but, don’t worry, you will get there.

Online tutorials

I’m a visual learner so I enjoyed lots of video tutorials on youtube. You will find series about a general topic like Javascript for beginners or, you can search for something more specific like the higher order functions. If you are just starting here's an even more specific one, how to make a for loop in Javascript. If you like to read, you will also find great articles on Medium about all topics.

For me, it helped a lot, watching different persons explaining the same topic. There are concepts that are difficult to grasp so don’t hesitate in watching the same tutorial several times until you finally get it, or find some youtuber that explains it in a way that you can understand.

In my case, I needed someone to explain it like I was dumb and I loved to watch the NetNinja, he has a quite large topic selection and I think I watch them all. But I still watch lots of other youtube channels as well.

What I recommend is for you to search for the topic you need, and see what teaching style suits you best. There’s no right or wrong. Diversity and quantity work great here.

MDN web docs

This is an awesome resource and you have it available for free. It's like the Wikipedia of web development. You will find lots of useful information about all sorts of topics. When you are new to web development there is a lot of jargon you will have to learn. To be able to research effectively, you will have to know most of the jargon. MDN is a great place to walk through all the jargon and learn what it means. Check it out here.

Photo by Mimi Thian on Unsplash

Practice, practice, practice

You know this, right? But let’s get into it one more time because it is that important. Good football players play football every day. Good guitar players play guitar every day. If you want to become a good developer, you will have to code every day.

Yes, I know, most of the time you can't solve the problem in hand but that doesn’t mean you aren’t making progress. The only way you will get better is by practicing as much as you can, every day.

This is the third of a five-part article. Here you have links to the other parts:

Part 1 -Where to begin

Part 2 -It’s all about habits

Part 3 -Learning to code

Part 4 -Get Social

Part 5 -How to get your first job as a Web Developer

--

--

João Henrique

Always learning | Always teaching | Always improving | Always positive