From my childhood, I always wanted to be an engineer. The reason was the computer from my uncle’s house. The moment when I first see the computer instantly I fall in love with it. I started using a computer for games at first, my first game was Virtua Cop 2. I was very bad using the mouse at that time, so I never finished the first boss in my childhood. So this where everything started.

In my teenage time, I was crazy about technology. So I choose Computer Science & Engineering in my bachelor’s degree & tried to make myself better in programming. I was programming a lot when I started but one day I found that I didn’t progress much as I should be. So what I was doing wrong?

Of course, I was doing so many things in the wrong way! So I decided to write my story and tell the beginner programming mistakes. I listed down a total of 17 mistakes I made while I was programming. So this is going to be a long post. Stay with me please or just see the recap part(scroll to bottom).

## Stuck in Tutorial Hell

I think you can just imagine what happened from the heading. Yeah, I was sucked by the tutorials. Every day I was watching so many tutorials.

After sometimes it felt like all I know is when a question comes to my mind I’ll search in google and just watch a tutorial to do that. I was doing well at my university because at university you don’t need to build something amazing. But when I came for the job I understand that those beginner levels tutorials are not enough so it just broke my entire belief. But I was good at university, my grades are awesome, I thought that I knew to code but honestly recently I understand that I was so bad at that time. But I unconsciously I was saved by myself, how? Because my brain was creative, when I watched a tutorial, I also tried to do some new things that usually beginners never do. Like if I give you an example –

When I was working on finding the prime numbers 1 – 100, then everyone was just doing that exact thing and they didn’t take it any further, also the teachers never told us to do more. I was working something more than that because my brain wanted to do it. When everyone was busy to find prime numbers between 1-100, I tried a lot of things like

• Getting the limit from users
• Count the prime numbers
• Finding a large prime numbers
• Playing with the time of searching prime numbers

If you are stuck with the tutorials, then just stop watching those and try to build something. This is my advice to peoples who are just starting. But I am interested to know what anyone can do to get out of this tutorial hell? What advice you are going to give for the programming beginners?

## Not Giving Importance to Clean Codes

Oh no! I don’t want to talk much about it, because when I think about my old codes and I feel like I am a shitty person to write those. I never give attention to writing clean codes when I was a beginner.

## Trying to Memorize Everything

Honestly, when I was in university I felt like I can do great with just memorizing some things because teachers asked questions for some specific things. So I memorized some part of coding which I didn’t understand properly. But this is a really bad thing to do. Because the moment you are starting to memorize the coding, you are going to fall now or in the future for sure. Nobody can save you from it. It’s okay to learn slow but understanding it is the best thing. You can just write code by memorizing like HTML can be done with memorizing. But you don’t need that, because you can use cheat-sheet also you can understand the tag. Like

``````<ol>
<li></li>
<li></li>
</ol>``````

Do you even know what `ol`, `li` means? when I first memorized this I only knew that this is going to create an ordered list and I kept forgetting it because I tried to memorize it.

But after some time, I understand what `ol` and `li` means then I never forget this one. So never memorize coding because if you understand programming you can easily guess what to write. Sounds hard? Just try it, you’ll be amazed by your powers.

By the way `ol` means `ordered list` and `li` means `listed item`. Easy right?

## Trying to Learn All & Less Focus on Advance Topics

When I started I started with the C programming. But I was so hungry that I wanted to learn more and more so I kept jumping from C, I learned C++ then tried C# a little bit. Then our university Object-Oriented Programming course forced us to work with JAVA. So I learned JAVA too. Then for some courses, I learned about Assembly programming, Matlab, Python, HTML, CSS, JavaScript, PHP, etc. But if at that time if you told me to choose one, I can’t because I wasn’t better at any one of them, I just knew them and did a little code on them. I liked python but I didn’t know how to do a string reverse on the python or how to do the algorithms with python. Because I wrote my all algorithms using C before, so I wasn’t good at using python my algorithms or data structures. The best-case scenario can happen in my life that I worked with python from zero and in 4 years I can be so good in python so that I know almost everything I need to know to have a great start in a career. This didn’t happen with me because nobody told me that sticks with one language and needs were different in the university so I needed to work with so many programming languages. Recently I found out how JavaScript works under the hood. I learned about the V8 engine and some other stuff going inside JavaScript. Most of the tutorials are not made for understanding the language, most of them are just a way so that you can build something without understanding the things. Yeah, you can build amazing things by watching tutorials, but this is not going to make a good programmer. You’ll just be going to rely on your bad codes, because when you whats going under hood then you can write better-optimized code. I wasn’t just focusing on the advance programming topics, I was just focusing on conquering programming languages, this was a bad decision. We should learn deeply about a topic, not just know everything! So my suggestion will be to choose a language and stick with it. Also

• learn how it works
• learn how you can make better codes on this language
• how you can be more efficient when writing codes on the language

If you do these stuff then you can say you are an expert, if your knowledge is not deep enough then you are not an expert and I know the people who currently reading this want to be expert (most of them, some are already expert and I know they are checking out this post).

## Rushing to Frameworks

In my last semester at my university, I understand that I need to find a job, so I looked into our local job and find out that LARAVEL has a good salary in my area and it’s easy for me because I knew PHP Back then. But I wasn’t that good in the PHP but I created around 3 projects on PHP with some of my knowledge, so I rushed into the LARAVEL. The moment when I jumped into the LARAVEL, I feel like I don’t know a lot of things about LARAVEL, but all code was written by PHP and I was like “What language I am Looking at?”

LARAVEL was easy, but getting the grasp of it properly was hard for me because I didn’t know about a lot of things that I can do this with PHP. I was early to get into LARAVEL, if I just learned about PHP well then moved into LARAVEL then I am sure that I would do much better at that time. I took more time to understand LARAVEL. But when I learned it they realized another version and I need to look at the new features and spend time with it because I don’t even know some basics of it. I thought LARAVEL is hard but now I know my approach was wrong, All I did jumping into a framework. But I should’ve to spend more time to sharpen my skills. Now I think before learning a framework anyone should learn

• The programming language well
• Find out the strengths of that programming language
• OOP with that programming language
• Learn the ways to connect databases with it
• Make some good projects where you can gain a lot of experience
• Clean, re-factor & scale code with that language

If you rushed into a framework, share your experience in the comment.

## Not Building Good Projects

Because there are many things you never touch. Like did you ever code with sockets? Did you ever make a website where you integrated multiple payment methods or did you ever make a website where you give the user to drag and drop and make something creative? Also, I can say most of the web developers never made a full web app. I made my first API after 1 year of my professional life. In the meantime, I was working for a company and all they made was PHP websites. I also did the same while I was a full-stack web developer. When I changed the job and search the job details of other full stacks, I learned about API, mobile apps, and some different things. So my opinion will be building some really good projects and add them to the portfolio, this will increase the chances of getting a job into higher than you can think. Also, this will help you to talk about your project in front of the interviewer, most people can’t talk about anything they build in front of the interviewer.

## Not Doing Any Algorithm Coding

I understand this was a mistake after giving some interviews in good companies. Actually, In my country, anyone can get a job without knowing much about algorithms. I gave a lot of interviews for getting experience in interviews and companies, most of the people hire someone who asks for a low salary this is why most companies can’t survive in my region. In my first job, I was the only developer there(it was a Digital Agency). They asked me to make a 3 step Form in HTML work for their current website and I did that and then they selected me. In my second local job, they asked me for writing e-commerce in PHP using pen and paper. After doing the 2nd job for 4months I decided that it is not a good choice for me to work as a PHP developer so I switch myself into JavaScript and start working online and tried some remote jobs. This is where I learned that I should have practiced algorithms all the way! Because algorithms are needed for the interviews. In good companies, there will have an algorithm test for sure.

So to pass that test solving programming problem is needed. There is a lot of programming sites where you can work on your algorithm knowledge, do it for at least 3-4 months when you are actively applying for the job interviews! This is the one beginner mistake that every programmer does! If you are working on your algorithm knowledge then eventually you can’t pass the test and it will be really hard to get a decent job in programming.

When I was driving into new and new programming language I forgot to ask myself why! Why I am doing this? Why I am using python instead of MatLab or why I am working with java instead of another programming language. I think this is a huge mistake a beginner does. Like, ask some beginners why they code in python/javascript/java/c# or anything else. Most of them will be silent, some of them are good and they know about a little bit what they are doing and why. I didn’t understand this for a while and suffer a lot for this. Learning PHP was a bad choice when I started, I could’ve chosen JavaScript instead of that. But learned it 2018 that node js is way faster than LARAVEL when it comes to API request of backend.  Click here for find out more.

Also sometimes people choose frameworks and they didn’t even know why they choose it. Like there are three popular frameworks in js now – React, Vue & Angular. Do I need to use any of these? I can just choose Svelte instead of all 3. Now it depends on many things but one thing is common everywhere. That is why! A beginner must ask why! Why I am using this framework or why I should use this framework. Knowing why is important instead of just choosing and work blindly!

## Not Sharing Journey

“If you can’t explain it to a six-year-old, you don’t understand it yourself.”

― Albert Einstein

I think this is a problem with beginners. At first, it was with me too. I just learned to code myself, but when it times to teach someone I was like- “oh shit! How I can make understand the programming to them?”

But with time I learned how to explain it to others. For me, I start thinking programming is like a game. There are so many levels and to pass one level to another you need to earn some skills. Like if I make a game for javaScript language then levels will be

• What is JavaScript?
•  JavaScript Types?
• Javascript Comparisons
•  Javascript Variables
• Conditional Statement
• Loops
• Functions
• Array
• Object, etc.

You need to learn about all to go to the next level. This is how you can make easier your thoughts and designed for others. I’ll never forget about this post because I’m writing it. I am planning it. So sharing will help to remember things better, understand things better. This is the mistake most beginners do and I also did this before.

Planning has a lot of impact on coding, especially when you are doing a medium or big project. You can start from any feature, but you can plan it for better efficiency. Then sometimes beginners never pay any attention to scaling codes. They just write code for some sample cases, but they can’t extend the codes. I think this part I was also missing when I started, I was like I open a new file and working new feature by coping other file codes. Also, I was missing the folder structures too.

When I started to React I didn’t give much thought about folder structure, I just make a components folder and put everything on that. But honestly, is it a good way to do things? Nope. I didn’t notice because when I started I had around 10 files so I don’t bother, but think if the component folder has 300 files then? This is a bad practice, so I think beginners should know how to structure the project, plan before writing codes also think about the scaling from the beginning at the code. If you don’t plan your code then it can happen that you are re-writing your codes. Nobody wants that, so better plan your codes from first.

## Don’t Know How to Use the Debugger

I see this mistake with a lot of developers. I’ve seen some senior developer who doesn’t use the debugger. But debugger helps a lot. You can set up a debugger easily with vscode now. Especially when I am debugging someone else code then the debugger helps a lot. It’s way easier to find the details about the code without using console.log(I am giving JavaScript examples because I code JavaScript now most). As a freelancer, I need to work with multiple projects and different types of code bases. Debugger helps to find the details of the values fast and I work faster than before. For now, I think I should’ve learned the debugger before in my beginner level of coding.

## Use A Journal & Time Tracking

Recently I start to maintain a journal but I’m too lazy to do it every day, but I try to keep up with my journal every day. Sometimes I just keep tracking things after 2/3 days. But I keep a journal, write about my progress, goals & backlogs. I found that beginners don’t keep a journal most of the time when they started. I also did the same, I didn’t keep a journal, I didn’t track my progress but honestly, this helps. The moment you start tracking your time also measuring what you are doing, you can improve much better within a short time. Because it will be clear for you what you are doing. Also, I’ll suggest everyone use a time tracker software to track the time because then we can easily track our time what we are doing.

We can understand how much time we need to build a feature or how much time we waste. Setting realistic goals and accomplished that will be much easier if we start keeping a journal and time tracking.

## Not Active in A Programming Community

I am an introvert, so it is hard for me to communicate with people. I try to communicate with people through blogs, Instagram posts and by following great programmers on twitter. I know for some people communicating and being active in a community hard. But honestly this mistake most beginners do! Because they don’t know the importance of being active or following a community. Every day new things are coming, some are a blessing and some are worst. But a programmer should know what going on his tech stack. Because things can change two first, before node js nobody ever thought about we’ll get this much of npm packages with 10 years(npm initial release: 12 January 2010). It is really hard to track everything by ourselves. Like we can’t try everything in the programming world, we can try the best things from the programming world. So how can we pick the best things? From a community, we can see what packages are doing good, what people are using. It is a good way to get the data from them and use it. Also, it’s a way to share a new thing with everyone. I think communication and active in a community are needed for a programmer and beginners don’t do it that much!

“If you don’t go after what you want, you’ll never have it. If you don’t ask, the answer is always no. If you don’t step forward, you’re always in the same place.” ― Nora Roberts

I saw this fear with so many people. They fear to ask a question, I can say this is a problem for any beginners, not just for the programming beginners. But sometimes beginners just ask so some questions which are no brainer. Now we have Google so I’ll suggest everyone for asking Google before asking anyone else. Because now we have a lot of data online, there is a huge chance that the same problem you are facing, someone already faced that and somewhere you can find the right answer before going to anybody. You can Google anything, really anything you like!

## Missing Productivity & Efficiency

Some beginners rush into tutorials and building things. They forgot to take enough breaks. Breaks are important for the brain. A programmer should focus on the efficiency and best use of the time.

I think like a programmer we should focus on hacking the time and get the best from it. If anyone is not taking enough break then he/she will not productive like the people who take breaks. So I’ll say to get enough break while working on something. Also, you can follow POMODORO TECHNIQUE to be more productive. The last thing is about sleep, I think everyone should sleep as much for their body. Staying on a healthy diet will also increase anyone’s productivity. I think this is the part most beginners ignore because they don’t work on their productivity. If you work on your productivity perfectly then it will be very easy for you to get more things done in a short amount of time. Now it’s your choice to do it or not.

Oh finally you read the whole thing, but some people don’t want to read the whole thing so I’ll make a little recap for them.

## Recap

I’ve listed a total of 17 mistakes that beginner programmers do! They are –

1. Stuck in Tutorial Hell
2. Not Giving Importance to Clean Codes
3. Trying to Memorize Everything
4. Trying to Learn All & Less Focus on Advance Topics
5. Rushing to Frameworks
6. Not Building Good Projects
7. Not Doing Any Algorithm Coding
11. Not Sharing Journey
13. Don’t Know How to Use the Debugger
14. Use A Journal & Time Tracking
15. Not Active in A Programming Community
17. Missing Productivity & Efficiency

Everyone does mistakes, so there is nothing to ashamed about it. But learning from mistakes is important. Every senior programmer was once a beginner. Everything starts from zero, so if you don’t give exact time on a skill you can’t build it. Don’t rush on things, take is slow & smoothly because “slow and steady always wins the race”. But try to be efficient, don’t waste your time on learning something which has no value on your path. Time is limited in our world so try to get the best from it.

From this tutorial I want all beginners who are doing this mistake, they will try to find their way to not do it again. Everyone has a different journey in this world so the problems and solutions will be different. But there are some same problems we face. There are some same mistakes we do. I tried to list down some mistakes that I did when I was starting in the programming world. I try my best to avoid mistakes now but I also do a lot of mistakes. But I try to learn more every day and share more with the community so that if I can’t find my mistakes in myself then someone else can help me to find out.

Thanks for your time in reading this long mistake journey! Let me know what topics you want to learn from me next?

I’ve started a programming community on discord. Click to join.

I’ve two free PDF tutorials for you

I also provide paid one-to-one mentor-ship about programming. Knock me up for classes if you need any.

Don’t afraid to ask me anything, message me anytime on social media.