DEV Community

Cover image for I Struggled Without a Mentor, These Tips Helped Me Learn to Code
Nabil Tharwat
Nabil Tharwat

Posted on • Edited on

I Struggled Without a Mentor, These Tips Helped Me Learn to Code

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 on Unsplash.

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

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

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

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
  • Stay up to date with everything by visiting HackerNews
  • Follow industry/community leaders on Twitter
  • Join developer communities online! Valarium 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, or read more of my content here or on my blog!

Top comments (11)

Collapse
 
vincenthavinh profile image
Vincent Ha Vinh • Edited

In the part ”Start interacting with community” I would add ”Answer and write questions on StackOverflow” !

It s a good starting point to follow tags of technos you’re working with and check from time to time unanswered questions. For some not widespread technos, you can help new people lost just with the knowledge you currently got while working (so no homework !). And it is a first step in communicating with tech communities.

Answering questions improves your faculty to explain and communicate your knowledge.
Writing questions improves your faculty to seek help in a professional way or dig further in a subject that interests you, and get guidance from peers.

Collapse
 
kl13nt profile image
Nabil Tharwat

That's a very solid point! Contributing to Stackoverflow will allow new developers a great deal of experience, even if their answers are downvoted or their comments disliked. It's a beautiful learning experience as well. I wish a "Pin this comment" button existed on DEV.

Collapse
 
markzaky3 profile image
Mark Zaky

Can't agree more, the best self help article out there for Developers ?!

Collapse
 
kl13nt profile image
Nabil Tharwat

Thanks for your kind comment. It makes me happy knowing I helped someone! 👀

Collapse
 
ahmednr_dev profile image
Nino

Thanks Nabil , very helpful <3

Collapse
 
kl13nt profile image
Nabil Tharwat

You're welcome! 😅

Collapse
 
stradivario profile image
Kristiqn Tachev • Edited

Cheers ! Very well written and correct :)

Check this out if want maybe it will help you to expand knowledge :)
github.com/Stradivario

Collapse
 
kl13nt profile image
Nabil Tharwat

Thanks!

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
kl13nt profile image
Nabil Tharwat

Thanks! Your comment really means a lot. 😅

Collapse
 
minaadibe profile image
mina bessada

Can't agree more, i already learned that by the hard way