Starting your journey in coding can be really daunting. With so many courses, books, articles, professors, tech YouTubers, and tips for passing technical interviews, it’s easy to feel overwhelmed. They all claim to teach you how to code in 30 days or quickly land a software engineering job, which, to be honest, is pretty much impossible. Sorry to burst your bubble. But with all these resources out there, how do you know which one to choose? How do you determine which courses are legit and which ones are just a waste of time?
It doesn’t have to be that hard. There are a few habits you can develop that will help you become a better programmer. It’s all about your ability to focus on what you can and challenge yourself to learn more than you knew yesterday. That’s pretty much it. So, let’s dive in.
1. Focus on One Thing at a Time
I know this is easier said than done. When I first decided to start coding, I got really excited but quickly became overwhelmed every time I tried to begin. I would search for courses on Pluralsight, Udemy, and Coursera. Between just these three platforms, there are hundreds of courses. How the heck do you know which one to choose?
I would tell my old self to just choose one. Choose anything. At that stage in your programming journey, it’s better to pick a mediocre class and just get started. Get comfortable with hearing words like classes, objects, variables, and functions. It’s like listening to Mozart when you’re a child. You’re not actively learning anything, but if you hear things enough times, they start to sink in.
If you’re not one for taking courses, do some Googling. Literally type in “how to start coding.” Skip any YouTube channels that come up because you’re already watching this one, obviously. Skim through articles—they’ll most likely pick a language and framework, tell you to download an IDE (Integrated Development Environment), Java, some libraries, and then get started with the coding process.
You can do that, but I’d recommend searching for an online IDE or “IDE in browser,” which allows you to start writing print statements and basic arithmetic online. The point is to pick something—anything—and stick to that one thing. If that one thing is not a course, create a goal for yourself based on the articles you see online. For example, today you’ll learn about data types, and only focus on that. Don’t let yourself get sidetracked. It’s good to follow your curiosity organically, but you should also be disciplined about learning things in depth.
2. Finish What You Start
That’s it. That’s your next piece of great advice. What I mean is, don’t leave things halfway done. Try to finish everything you start, regardless of how long it takes. It doesn’t really matter what it is, but being relentless in software engineering is an extremely desired trait. When half your pipelines are failing and you’re getting tons of on-call incidents, you need to stay calm in a high-pressure environment and do a bit of detective work to figure out the root cause of the problem.
Don’t be like the old me and panic under pressure. This leads to unfinished findings and forgotten projects. If you want to show employers that you’re good at what you do, prove to them that you can uphold your end of the bargain by finishing what you start. Build that habit now. It may be pretty annoying at first. You may spend an entire day fixing an import statement or a whole week trying to figure out why your code isn’t working. Those pesky syntax errors are everywhere. But it’s worth it.
3. Embrace Failure
There will be days when you mess up. You might watch a tutorial on binary search trees and then try to traverse one the next day, only to have your code not work. You’ll keep getting index out of bound errors, and your patience will run thin. The worst thing you can do is give up. It’s okay to fail. Most people do. To be honest, it builds character.
This will help you be a better coder because there will be times when you’ll spend hours on a LeetCode problem, pour your heart and soul into trying to find all the islands in a 2D matrix, and then your code runs with the scenarios you’re provided but doesn’t pass all the test cases when you submit it. On top of that, you have no idea why. You try debugging, adding print statements, and still can’t figure it out.
This doesn’t mean you shouldn’t finish the problem, as I mentioned in the previous tip. But it’s also okay to accept defeat and ask for help or search for the correct answer. It’s okay to use other resources to figure out the problem. Failure isn’t an adjective; it’s a verb. Failure doesn’t define you; it’s an experience that happened to you. It’s an action, and all actions can be iterated on and changed over time. Don’t ruminate on your mistakes; learn from them and try to get better.
4. Learn the Theory
I know, I know. Theory is so boring. You’d rather just start coding. But if we’ve learned anything from Doctor Strange, when you’re a world-class neurosurgeon who breaks your hand and stumbles across an ancient realm that can heal people with their mind, you need to learn the theory before you practice.
If you don’t have the fundamentals down, you won’t understand what you’re doing. You won’t understand that reassigning strings doesn’t delete the old string in memory—it just adds another variable to the stack. You won’t understand that recursing a sorted list is faster than iterating over it. And you won’t know why we use load balancers to even out the number of requests that go to each instance cluster.
Coding is powerful. It manipulates the literal hardware in your computer, so you need to be able to wield that power by arming yourself with some knowledge.
5. Actually Code
You don’t need to understand everything perfectly before starting to code. But you do need to understand things well before moving on to the next topic. This goes hand in hand with all the previous tips: choose one thing to focus on, finish it, embrace micro-failures, and learn the theory behind it. But while you’re doing all those things, you need to actually be coding.
Take the time to sit down and write a for loop. Give yourself a pat on the back. Create a non-primitive type and populate it with data. Create a class and add methods, local variables, and instances of this object. Run your code, test your functions, create an interface, create an abstract class, import a test library, break things, and start all over again. You can’t really learn how to code without actually doing it.
Conclusion
Coding is a skill that requires consistent practice. It’s like a muscle that needs to be trained. On day one, you may do a few reps with a 5-pound weight. The next day, you might do even fewer reps because you’re sore from the previous day. Regardless of feeling sore, you still show up and try to be better than you were yesterday. Eventually, you’ll end up doing 25 reps with 50-pound weights.
Likewise, if you show up every day, are consistent and relentless, and truly want to learn, you’ll learn to code faster than everyone else. You’ll prove to yourself how capable you are. So go ahead, start coding.