Learning web development is like learning a new language

Learning web development is like learning a new language

Techniques to learn a programming language as you do with languages

Some background

Part of my story is that I was refrained to study English until I saw my friends earning more money than me in a cool environment.

I definitely changed my mindset, I learned English and I got the job and I felt good.

But you know, there's this specific time when the fun curve is starting to decrease while at work, you realize that you've got into the comfort zone again. You can feel me and you start looking for more job opportunities.

Technology is an interesting field in which you and I have the opportunity to participate in the job market with many benefits and several companies to apply for.

I started learning web development the last year due to the pandemic and I found that I can apply some techniques I used to learn English, and it seems to be working to learn to program (specifically in JavaScript).

- Master the basics

Would you like to develop the next Facebook? You won't get it if you don't know how to do some iteration or loops in the programming language you're studying. Knowledge has to be built from basic to advanced. Sounds logic? I know, but we as beginners fall into the trap of trying to learn a lot of things at the same time, and when we try to solve a simple coding challenge, we can't seem to find a solution.

When I learned English, I wanted to speak like those guys selling stocks over the phone, the ones you see in movies, being fluent and very confident in my words, but I didn't know how to express sentences in present perfect.

I realized that I wouldn't get too far if I wouldn't have learned the basics of the language first to work on my fluency. It was necessary to go step by step in my learning curve.

Applying that to programming, most of us want to learn how to use a library or framework instead of mastering the language. To be honest, I'm really tempted to learn React right now, but there are many basic things that I haven't mastered yet with vanilla JavaScript.

I don't mean to be just in a comfort zone of the basics, going too deep with the learning process, but what I really mean is to master the basics by doing little by little, in a logical way. Once you learn something, then add another topic to master. You won't notice how far will you go.

- Practice everyday (create a habit)

This is something that you listen to a lot, and this blog is not the exception.

Practice makes a master, so if you're just watching courses, YouTubers, gurus, etc, and you're not typing into VSCode (sorry, or the editor you prefer), then you won't go further.

I learned English by studying every day, I really wanted to overcome my financial situation, so it was a motivator (I suggest looking for one), and I was working in a full-time job.

I remember I used lunchtime to watch Friends, it's a series that helped me out with my English, it was fun, but besides that, I was writing down all of the words I didn't know, and that was some of my practice.

I made the habit of watching 'Friends' to have a new vocabulary, I also studied at nights by reading articles in English and thinking and talking to myself as a practice. Now, answer the question, what can you do every day to practice in programming?

- Practice with others

Most of the people I know that are studying programming (or they are programmers already) are less social, so they won't talk to anybody unless it's needed.

I am that type of guy too 🙋, even though I can express a lot of ideas and try to be very kind and friendly with others, I'm not too social to talk to somebody, I prefer to work by myself.

However, the power of team-working is enormous, because what you have to look is for feedback. Big companies grow because of feedback, so why don't you take that advantage? I'll give two reasons why you have to practice with others.

The main one is that you are being corrected by others. People more experienced than you will tell you what you have done wrong and how you can improve it. You need to be humble and accept what needs to be improved and do it.

Sometimes you feel you're doing things well but you don't have a full overview of the things you're doing, you need to have some external eyes to criticize your work.

The second reason is to provide feedback, I provided feedback when I learned to speak English to other people. I was good at English grammar in high school, the only problem is that I wouldn't speak at all (just reading and translating), but some other people were too bad at grammar too, so I had the opportunity to join English conversation clubs and practice with them.

I was able to provide feedback and I noticed that I learned even more when teaching others, so it was an interesting way to learn because I have to structure my explanation, even investigate a little more to back up my answer, and express my ideas.

Interesting fact, I've been doing the same on Stack Overflow, I'm not an expert nor a Senior developer, but I've been answering questions in which I have a slight of knowledge, and it has been good, I investigate before providing my answer and I think myself how to express an answer the clearest possible, so I can understand what I'm talking about. You should try to do it too.

- Make mistakes

Speaking fluently was my big area of opportunity back in the days, but I was able to overcome it by making mistakes.

Mistakes are part of the process for success, so I made mistakes but learned from them. I often mispronounced some words or I unordered the logic of sentences in English, that was a mistake.

Being afraid of making mistakes is not good at all, if you are, you won't achieve your goals. Mistakes are translated into experience.

Of course, mistakes won't help you out if you still make them, but definitely, they will help you out a lot if you learn from them, to do that, first, you need to be open to make mistakes and then overcome them. That's the only way.

I know you will write 100 lines of code that can be done just in 20, but that's the way you learn, senior developers are not born with all the JavaScript skills, they learn them, so you must do the same, they spent time as you're doing right now, stick to it and keep it up.

- Stay motivated

Motivation is the key, I was motivated because of a new salary that would help me out, and I got it. Now, it's time to focus on a new motivation and a way to do new things to achieve your goal.

In fact, if you don't have the motivation, likely, you won't get what you want, because you don't have an engine that moves you up to get what you're hoping.

Money is a good motivation, it was my motivation at the beginning, but then I realized that there are better reasons to achieve what you want, such as being comfortable at work, build innovative things, put your creativity to work, and be happy what you do ('cause it's a 9-5 job, the third part of your life is working based on that).

Pointing to a good goal will make you enjoy the learning process, so make sure that what you're pointing at is worthy.

- Challenge yourself

I already mentioned that being in the comfort zone is not good at all, so it's time to challenge yourself in three ways:

a) By mastering the basics, if you really master the basics, you're expected to solve any coding challenge, so test yourself and confirm that you're able to do it, otherwise, go to the piece of advice number one.

b) Adding topics to your knowledge, after mastering the basics, find something new to learn that challenges your mindset and keeps you on the PC for hours, make that time worthy, and overcome any problem you encounter.

c) By being brave and start applying for jobs, I remember I applied for jobs even I had a bad English level (companies in El Salvador require an 85% of English Level). I was rejected but I asked for feedback and that helped me out learning more about what I needed to improve.

It's time to master your skills, you can do it, it's just a matter of practicing by making a habit and discussing this with somebody else. Find a good motivation and overcome what you have set as a goal, you're in charge of your present and future, so let's do it.