Tuesday, September 15, 2020

Why people fail when learning programming languages ​​and how to avoid it

Computer engineering vs software engineering

It's no secret to anyone who knows me that I studied programming and failed. That is, I, of course, got to a certain level, but did not move further, since this activity had lost its practical meaning (there are enough programmers now and they are much more literate, and most importantly, much younger than me). This article contains a number of rather primitive but, perhaps for someone, relevant tips on how to get to a successful finish in learning programming. 

If you have ever tried to become a developer, then you have undoubtedly already discovered that this process is not easy and you are not the only one who has some difficulties. Learning to code is really not an easy process and many people fail, especially those who try to learn online on their own.

So what is the difference between those who fail and those who succeed? Many of us, having encountered the first difficulties, begin to think that this is not given to them and they are not created for programming. Others think about how to become the best at what they do and spend thousands of dollars on college tuition or training courses to find teachers or mentors to help them.

Many of us begin to think that they need to know the X, Y, and Z in order to succeed, and after a couple of weeks, they realize that they are not learning as they should and are switching to something new. This process can drag on for many days and years, and thus, we will never learn anything. But let me tell you the truth ... the quality of the code and the programming languages ​​you have chosen and counted on are hardly important, as almost all of us are smart enough to start writing good code.

Sounds crazy, doesn't it?

This is actually true, because the only thing that matters is much easier to understand and much more difficult to achieve ... Despite the fact that learning to code is a hell of a process, even if you choose one particular language or technology, even if you finally find your teacher and mentor, in return for many different resources and training programs - it practically does not matter. The only thing that really matters is your persistence.

Here's a direct corollary to this statement: almost every one of us who persistently teaches code for a long enough time ends up getting a job and building our own development career.

A reasonable question arises:

Schools, universities, various additional education courses, according to statistics, more students graduate than various online courses. People are more successful in completing their studies through these schools and universities, and the dropout rate is much lower than among those who study on their own. But why is this happening and what is the pattern here?

The main reason is that a person studying in any of the educational institutions receives support. He has his own leaders, in the person of teachers and professors, there is some kind of reporting in the form of grades and exams - all this helps him to continue his studies for a long time:

Teachers will tell you exactly what you should be teaching at a given time

The classroom or student audience you attend is disciplining you

Various deadlines for delivery, testing and exams force you to receive and consolidate your knowledge in a timely manner

Your classmates support you as they gain the same knowledge and experience the same difficulties as you.

Some are more fortunate and they can afford to study at universities and other educational institutions where they teach programming.

But what about everyone else?

That is why I launched my online developer school, where students write code for specific projects in groups for 8 hours a day. This allows them to learn how to work and write code for real projects in a team, each of them is accountable to each other within their group - this condition and creates some motivation for students. In addition, all participants within the groups are distributed in such a way that all students, if possible, are from different parts of the world - in this way we teach them to work, breaking down the geographical barriers between them.

On top of all this, we made the decision not to charge students until they finish their studies and start making money and building their careers as developers - thus we wanted to break down financial barriers.

However, what if you still decide not to attend various educational institutions and learn to code on your own? What will be your motivation and where do you look for support to study long enough?

In this case, I can give you 6 tips that I believe will help you with this:

Tip # 1: choose a language and learn it!

Today, some programming languages ​​are more popular than others. However, the "fashion" for them changes quite quickly, so choose the language that you really like and keep working hard on it.

Try to choose common programming languages ​​(eg Python, Java, Ruby) and find out the most popular framework for that language (eg Ruby on Rails). If you want to become a front-end developer, then HTML, CSS, and JavaScript are the languages ​​you should first look into. If you have the time and energy, then also start learning one of the JS frameworks (e.g. React, Angular, Vue.js).

You can always find the programming language you want - however, it doesn't matter if you can't learn them completely.

Tip # 2: Stick to your daily schedule

If you have the opportunity to study full time, do it. Otherwise, be realistic about how many hours a day you can devote to your studies. Create a daily and weekly schedule based on your capabilities and stick to it!

Tip # 3: Find the Right Workplace for You

A noisy and crowded place with hundreds of different distractions - not the best place to study. Find yourself a quiet and private place, turn on instrumental music in the headphones in the background and turn off all notifications on your computer and smartphone, etc.

Tip # 4: Decide on deadlines

Almost every training course or program is designed for a specific duration in hours, which is required to successfully assimilate the information. FreeCodeCamp, Odin, Udemy - they all limit their curriculum in time.

Use their curriculum as an example to create your own customized learning schedule. If a particular section should take you 20 hours to study, consider whether that section includes time for practical work (eg coding) or not. If so, just add 15% extra time. If it is not, multiply this time by a factor of 2-3, because you should spend much more time coding than theoretical code.

After that, divide the number of hours you have to complete this section by the number of hours you have to study per day. Now you know when you should finish this section. Create a calendar note for yourself as a reminder - this date will be your deadline.

Tip # 5: Find yourself a partner

You need a person who, like you, wants to learn a certain programming language, who has about the same level of knowledge and skills, who will be ready to devote about the same number of hours a day to study as you do.

Find someone with similar goals and work with him to think through your training plan and, if possible, try to study together daily. It's even better if you try to write code together. You will be surprised when your productivity rises to a level that you could never achieve alone.

Maybe this person is among your loved ones, or perhaps he is on the other side of the world - today, it is not so important. The main thing is that your goals and experience are similar and then together, you will reach unprecedented heights.

If you live in the same city, arrange with your partner to meet daily in the same place. The time you will spend on the road every day is worth it, believe me. If you do not have this opportunity, try to arrange a video chat with your partner every day during the training, as an alternative.

Tip # 6: find yourself a mentor

Easy to say! Finding a really good teacher is hard enough! However, you just have to be able to connect with different people over the Internet - after all, you will need this skill for further employment! And if you do find such a person, then ask him to sometimes look at your code, make comments to you and give you advice on how to improve it! Trust me - it's worth it!

Motivation, dedication, self-accountability and superhuman willpower are all the result of serious work on yourself and without a doubt, you yourself must create your own, individual training schedule in order to succeed in your goal of becoming a developer.

No comments:

Post a Comment

Run Your Applications Locally, Over Your Organization's Network, or Anywhere in the World

Applications are easy to use and with COMSOL Server™, they are easy to access, deploy, and share, too. You can install the COMSOL Server™ so...