So You Want to Learn How to Code
Tags: beginners, programming, productivity
Published: 2022-08-21 02:42:14

## 9 Tips to Help You on the Way

There are plenty of reasons why people are choosing to acquire a job in tech. Whether it’s the high paying jobs, the opportunity to get paid to learn, the myriad of sub-fields to go into, whathaveyou. 

No matter the reason behind your decision to join the industry, it’s wise to take off on the right foot. It may be harder, but you’ll be better off doing the hard work from the beginning (or in the beginning), such that by the end, it’ll feel like a cakewalk. 

In this article, I aim to give you 9 pieces of advice to fast-track you on your dev journey. Without further ado, let’s move on to the list!

1. Learn HOW to Learn 

    This step is fundamental to your success. I mean it. It may sound childish, but many people – myself included – do not learn how to learn in school. I learned how to learn when I decided to take my web development track seriously. I was teaching myself and I thought “if I’m going to do this, I need to do it the right way.” 

    ![Top-level view of a person's head looking at a brain. There are lines going from the brain to the person and vice versa, with question marks on each](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2lbogj7e9lmix2zm01n1.png)

    I took Barbara Oakley’s [Learning How to Learn](https://www.coursera.org/learn/learning-how-to-learn) Coursera course and learned how the brain works, how to set yourself up for success and how to study effectively. I cannot recommend it enough, and the best part? The knowledge you will gain from it can be applied to anything else you’d like to learn. If you take nothing else from this article, please trust me on this.

2. Pick a track and/or tech stack

    As mentioned in the beginning, there are a lot of fields that you can go into if you choose to study software engineering. Anything you can think of, there's a side of it that needs a software engineer. 

    ![Picture of a person standing before a road that diverges three different ways. There's a big question mark in the middle](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/39rcm381cd4jerv844cu.jpg)

    Knowing which track you’d like to pursue will inform your decision of which tech stack to learn. There’s merit to learning the basics of programming in one language, and then moving on to your target language to hone in your craft. However, the earlier you pick your tech stack, the sooner you can start creating projects that are relevant for your future job.  

3. Find the Resources That Work for YOU

    Learning something difficult can become a smooth process if you have the right tools, and/or teacher. The good thing about self-teaching is that you can pick and choose who and what to learn from. This, coupled with knowing your learning style, and your why (why are you going down this road of learning software engineering?) will do wonders for your motivation to keep going. 


    ![Pile of black pencils, with a lone red pencil in the middle, sticking out more than the rest](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/elee52mew1fe1xuyjfnk.jpg)

    There are plenty of free courses that are even better than paid ones. Though, it's worth it to buy a course if the instruction seems like a good fit. For example, I learned JavaScript by taking Jad Joubran’s [Learn JavaScript](https://learnjavascript.online/) course because the trial helped me determine that the teaching style was great for my learning style. Sometimes, good things cost money.

4. Make Friends Early

    🎼 Once I was seven years old, my mama told me / Go make yourself some friends or you'll be lonely 🎶 Ahem. This one is a two-in-one. First, learning how to code is not a solo endeavor. Having someone to bounce ideas off of, someone to ask questions when you’re stuck, or just someone who can understand the struggle can be Huge in your journey. 

    When you’re learning alone, it can feel like you’re a failure and like you’re not smart enough. But when you have a coding-buddy, you know that you’re not alone, and you have an extra brain to help in the problem solving. 

    ![View from behind of five people with their arms around each other](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93bmtb2k27aai6sjre0k.jpg)

    Now, be aware of leaning into them too much, you want to use them as a bouncing board, or support, but do not rely on them to give you all of the answers and to always work through things together. You have to be able to stand on your own, so make sure that you understand everything just as much as they do.

    The second part of this advice is: making friends also means creating connections. Join forums, discord servers, email lists; all the things! It’s better to have a network and not need it than to need it and not have it. Especially when it comes time to apply to jobs. You don’t wanna have to do this retroactively, when the pressure’s at an all time high and you’re in a dire position to land a job. 

    Your connections can also provide sound advice and guidance that a more junior/inexperienced person does not possess the knowledge for. Make friends, always.

5. ¡Practice!

    I used the Spanish-language inverted exclamation point to emphasize how important this is. There is such a thing called tutorial hell, which is where you get stuck in this loop of just watching and following along with tutorials. However, when you try and create a project yourself, you haven’t the faintest idea of how to start without anyone holding your metaphorical hand. 

    ![Top-level view of a desk. There's a small plant on the far left, a monitor in the middle towards the back. In front of it is a keyboard, with text bubbles showing various code keywords/symbols. To the immediate right of the keyboard is a mousde pad with a mouse on top. And on top of that, to the bottom right of the monitor is a cup of steaming hot coffee on a plate](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u1hfmnap53b7wywkbt48.jpg)

    Along with the point #4, I will reiterate:  you have to be able to stand on your own. Tutorials are great! And you don’t always need to practice what you learned in them in a proper project (though you should still practice; a simple, quick exercise, is great to get the muscle memory) but your focus should be more on understanding concepts and making connections between topics. 

    Once you have those down, move on to either incorporating what you learned into your current project – or next project. Again, it’s all about starting on the right foot.

6. _Rest_

    ![Person laying on sofa relaxing, with slight smile on their face. They have earphones in their ears and a phone in their hands. There's also a cat resting on top of the couch.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ibubrtfo9zvorh3qq0p.jpg)

    It’s very easy to get into a coding flow and forget about everything else. Especially if you’ve come across a bug and can’t seem to find the bug spray (😂🙃). If you followed step 1, you'll know more about this. But in short, taking a 10, 15 fifteen minute break helps your brain to recompose itself, and not be so overstimulated. It’s not a magic fix, so it doesn’t always solve the issue. But breaks are the best thing you can do when you’ve reached a stall in your code/learning.

7. Don’t Take the Easy Way Out (It’ll Cost You)

    According to urban legend – or research, you choose – it takes 21 days to form a habit. But how long does it take to break it? Some sources say as long as 254 days. You want to make sure that you’re actively pursuing best practices, good techniques, following standards and good organization. 

    ![Purple background with a bunch of sparkles emojis everywhere. In the foreground, it reads "do things well"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fy4jotln3w5p3q88fho5.png)
    
    If you start off with doing things the easy way (like not using proper spacing in your code), it’s going to be very hard for you to suddenly start implementing it when/if you don’t have access to a code formatter. 

    Or, it’s easy to name your variables whatever random names (or string of syllables) work for you in that moment. But it’ll just make it that much harder when you need to name them meaningfully and you haven’t ever done that before. 

    _If you put in the work in the beginning, by the end it will be second nature_.

8. Bite-Sized Pieces (&& Pseudocode)

    Breaking things down into smaller pieces makes a “big” problem not seem so imposing. Along with that, if you pseudocode your steps first it’ll give you an advantage because you have now: broken down the problem, and also explained your process. 


    ![Pseudocode for a median filter function](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pbqu0sc50p1brglouthf.png)

    If you don’t know how to do a specific step, but you know what you’re aiming to do, it’s very easy to use a search engine and look up your pseudocode (e.g. “how to add a key/value pair to an object in JavaScript?”). To reiterate tip #7: forming good habits will pay off in the long run.

9. Make Mistakes!!!!!

    As a perfectionist, this one really goes against my core self, but it’s something I'm still working on. Making mistakes is a great way to learn. When you make a mistake, it means that there’s something that you have not mastered and you need more practice or information about it. It could also mean that you need to rest, but I digress. 

    The way to learn from them is to understand what caused the mistake/what went wrong and how to fix the mistake. If you can’t figure it out in one sitting, take a break. And make sure to take proper breaks in-between sessions (i.e. sleep well). 


    ![Multiple lines of console error messages that read "Failed to load resource: net:: ERR_BLOCKED_BY_AD"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wmkj7i3yshjtdbwi3673.jpg)

    If you’re never making mistakes, that means that there’s nothing for you to improve on. On the other hand, if you are constantly making mistakes and don’t take the needed time to cement what you just learned from that mistake into your noggin’, then you’re wont to make the same mistake again. 

    You want to keep improving, not become stagnant and or decline in your progress. For more info, check out [Jad Joubran’s video](https://www.youtube.com/watch?v=wmKnPFEhzwM) on this topic.

---

Becoming a Software Engineer is not an easy task, especially when you’re teaching yourself. Take it at your pace; don’t focus on what other people are doing. Follow your journey, find what works for you, and keep at it. One day at a time. The world of tech is so big, there’s a niche for most everybody. If you can find yours, you’ll never look back. Up and at ‘em, and happy coding!

###### Image/Illustration Credits:
1. Kite photo by [Rasam Rostami](https://unsplash.com/@rasamr?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/up?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
2. [Brain/person illustration](https://www.explainthatstuff.com)
3. Pick a road illustration by [storyset](https://www.freepik.com/vectors/alternative)
4. Pencils picture by [pvproductions](https://www.freepik.com/photos/standout)
5. People standing together by [freepik](https://www.freepik.com/vectors/people-hugging)
6. Person typing on keyboard by [storyset](https://www.freepik.com/vectors/development)
7. Person resting by [freepik](https://www.freepik.com/vectors/listening-music)
8. Pseudocode by [Angela0130 on Wikimedia](https://commons.wikimedia.org/wiki/File:Median_filter_pseudocode.png)
9. Error Image by [David Pupaza](https://unsplash.com/@dav420?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/syntax-error?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)