I Struggled Without a Mentor, These Tips Helped Me Learn to Code
Tags: codenewbie, discuss, computerscience
Published: 2021-05-09 22:45:06

Learning to code is not a straight path, these tips helped me get better at it. Hopefully by the end of this article you'd have enough of a foundation to require minimal _bounce_. 

_Photo by [Mathew Schwartz](https://unsplash.com/@cadop?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/speed?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)._

_Thanks to my friend Omar Abdelaziz for helping out with this article. It means a lot._ 
  
## Stick to a single road

You may be tempted to learn every single tool out there, and while it may be possible, is it really worth it? You usually need a single tool and nothing more to get a job done. Learn what you need. Look at the market and stay up to date with its trends. Stick to a roadmap until you need another one. 

## Watch less, build more

Tutorials are fun and dandy until you stop watching them. They give you a feeling of confidence because you're following and succeeding in that. But is following all you need? Will you use tutorials when you're assigned tasks in a real world scenario?

A serious lot of developers have contacted me about this issue. They follow a lot of tutorials, but fail to even get started on their own. Don't get me wrong, tutorials are good, but too much of anything is bad.

Focus on building projects on your own. If you're going through a tutorial, build the same project on your own after finishing the tutorial. This time though, don't even look at the tutorial.

 ![Cat slamming on keyboard](https://media.giphy.com/media/aNqEFrYVnsS52/giphy.gif) 

## You need less than you think. (AKA Avoid over-engineering)

Most of the time, you'll most likely think you need a hundred tools to get a job done. This is often a mislead view and is amplified by your lack of knowledge and confidence. 

For example, you may be tempted to use the most complicated tools you know, when instead you could build the same thing with much simpler tools. Over-engineering is bad, avoid it. 

## Build problem solving & debugging skills

Solving problems is the core of computer science and so it's an essential tool to have up your sleeve. It helps you break down complex problems into tiny easy tasks and solve them efficiently bit by bit. Debugging skills help developers pinpoint various types of errors and bugs around an application. They'd make your life much easier. Trust me.



## Don't be afraid to make mistakes, and ask questions

Mistakes help us learn, and if you're starting out you'll need to make lots of them. Making mistakes means you're pushing your knowledge boundaries. Pushing your boundaries is a sign of growth. Questions are essential to your growth. Don't be afraid to ask "dumb" questions. They're probably beneficial to you, even if they're "dumb" to more experienced others. 

## Take notes, blog, and teach others

Writing is essential. Whether you're writing notes for yourself, blogging online for others, or teaching  those who seek your help, writing is essential and beneficial. When you're publishing these notes and blog posts you not only help others, but help yourself by deepening your knowledge and receiving feedback.   

## Avoid FOMO

Fear of missing out (FOMO) is a social anxiety stemming from the belief that others might be having fun while the person experiencing the anxiety is not present. It is characterized by a desire to stay continually connected with what others are doing. 

Learn to deal with it, live with it, and control it. Avoid chasing every shiny new tech. Doing so will save you a ton of time and headache. Chances are very few companies are going to adopt this new tech. And if many do, their systems that already use other tools will be too much of a cost to replace just to use this new tech. Have the confidence to choose what to learn. 

![Let Me In Conan Obrien GIF](https://media.giphy.com/media/3o6gb3kkXfLvdKEZs4/giphy.gif)
 
## Don't leave the basics behind

If you've been going through courses/tutorials back-to-back, chances are you've missed a bunch of basics on the way. Go back and learn them thoroughly. You'll thank me later. 

## Be kind to yourself

We're not born with knowledge. You were not born knowing how to code, and neither were your peers. Building foundations takes time and effort. Don't give up, don't push yourself too much, and enjoy the journey. Burnout is real.

## Don't let coding take over other aspects of your life

Coding can be fun and tempting, but sitting all day doing nothing but that is a complete waste of time and energy. Go out, keep in touch with friends, play music, learn to do other things aside from coding. You may as well create content around coding, just don't sink in too deep into coding. 

## Stop waiting for perfect opportunities

If you've built projects, gone through courses, and prepared yourself for the job, you're probably "ready". Stop waiting for the "perfect opportunity". If you are, you're already missing out. Start going out of your comfort zone. Start applying to companies. Do your best, and show it off. It's a good learning experience as well.

## Start interacting with the community


![Monsters Purple and Brown chewing gum](https://media.giphy.com/media/6G1BhuIWyVEhG/giphy.gif)
 

Coding is not a singular act nor a one-man effort. It's a community, and you're part of it, like it or not. You may refrain from contributing to it, but why do that when you can instead contribute back to the community that helped you get started? Start interacting with the community already! Here are ways you can do that:

- Follow developers blogging about all sorts of things on [DEVCommunity](https://dev.to)
- Stay up to date with everything by visiting [HackerNews](https://news.ycombinator.com/news)
- Follow industry/community leaders on [Twitter](http://twitter.com/)
- Join developer communities online! [Valarium](https://valarium.netlify.app/) is a discord community I started a couple years back. It's mostly in Arabic but everyone's welcome!
- Join Reddit developer communities! They're rich of content and joy!

---

These tips helped me personally, and I had to bounce around perhaps too much because I didn't know them at the time. Now you don't have to! 

Thanks for reading! You can follow me on [Twitter](https://twitter.com/kl13nt), or read more of my content here or on my [blog](https://iamnabil.netlify.app/blog)!