Take your career to the next level with these game-changing tips for new programmers
Many of us have toyed with the idea of learning or becoming a programmer at some point in our lives after watching a cool hacker segment in one of our favourite Hollywood action movies. A lot of us go beyond that and try. Then we see a white screen filled with text and immediately get overwhelmed and think, "Wow, you need to be smart to know all this!" Well, the reality is, not really. You need to know enough—and enough is a learned skill. With just a bit of patience and a lot of trial and error, you too can get to a level of employability.
You must be mindful of why you're learning to programme and what you intend to get out of it. Some people learn because they enjoy it—yes, those people exist. Others learn it because they want a well-paying job and feel compensated for their hard work. Others want to learn to build something. Everyone has their own reasons for learning, so you must cling to your goals in your journey, especially when you're not seeing any progress or lack discipline.
Everything works within a structured, logical system. If you find that something isn't working as you expected it to, go back to basics. I suggest writing things down on paper. Write down the process using pseudo code. What is the journey you plan to take when writing the code? Sometimes it's simply down to just forgetting a bracket or comma.
Just the basics. You don't have to know how everything works under the hood, just as long as it works as expected. So, for example, you don't need to know how the date works.
There's a vast community of people going through the same thing you're going through. Don't sit in silence. Join an online community and document your journey. Share your code. You'll be surprised at how many people out there are willing to offer help. Some are also willing to mentor. Find whatever you can do to make it easier on yourself.
Don't take too long learning or following a course. Some of the courses out there are so dense and cover far too many topics that you may not work on till much later in your career. The best thing you can do is just get started with a project. Do you have anything in mind? No? Rebuild something that already exists. If that's tedious, then you can always try to rebuild something from Frontendmentor.io. They offer all the resources and assets you need to get started.
How long it takes everyone to reach their goals is a lot different per person. Some people pick up things faster than others. For example, some people looking for employment get hired after 3 months, others after a year. It took me about 4 years of on and off learning before I was ready for employment. Sometimes I still don't feel as though I am ready.
Enjoy the process. Just keep learning. You'll never feel ready, but that doesn't mean you won't be good enough. So, after building a project or two, start applying for jobs. Test the waters. See what's hot in the market and get some job interview experience.
Learn some basic terminal commands for creating new folders, changing folders and finding the directories you're in. Knowing this, you'll be able to install packages and libraries without feeling overwhelmed.
This is an industry filled with buzzwords. If you sit in silence and nod your head, you'll look far more stupid later on. Ask questions no matter how stupid you think they sound. Ask questions even if someone sounds frustrated with answering them. They'll benefit you and the team.
Failure is perfectly fine. It's one of the greatest teachers you can have. So fail and fail a lot. With failure, you're able to refine your goals. You can manage your progress and see how far you've come once you reach your successes.
Some of the early difficulties you can face is trying to understand how everything ties in together. You'll write and learn about data types, variables, for loops, functions and a list of things before the questions start to come. You'll get a firm grasp of these concepts and still wonder how this powers some of your favourite software, apps and websites. Then this will be further reinforced by custom libraries, and you'll wonder why you learned what you did if your not creating everything from scratch? You must understand that the concepts are the things that'll stick with you. In that custom library, variables, functions, classes and methods are all being used to create them under the hood. This means you interact with them no differently than how you've already learned to use them.
However, the learning curve is quite steep. It's something that doesn't have an excellent early game reward system to it, but the payoff is, that things get easier the more it compounds down the line. It's easy to feel discouraged when constantly feeling like everything is way over your head, but that's natural with learning. If it were easy, everyone would do it, right?
Nowadays, there are so many resources to learn that it's more detrimental than helpful to beginners. I know, who would've thought that someone would find an abundance of education something to complain about, right? But it is. We all want the best course, and everyone who's done a course will swear it's the first one they did. Often, midway through a course, you'll see another one that looks all shiny and polished, and you'll decide to go with that one instead. Then you'll find an interactive site and you'll go with that. While it's great that you're still learning, it's more likely that you're slowing down your progress rather than improving. My advice would be to stick with one course and follow it religiously.
Motivation is a fad. I don't believe in it. It's the friend of procrastination and an enemy of progress. You only seem to get motivated when you're not doing what you're supposed to. The moment you begin your journey, you'll soon lose that motivation and blame everything on the difficulties you're facing. All the trials and tribulations that come with your learning journey. Learning is uncomfortable. It's even more painful when the progress isn't as fast as other things you've picked up in the past.
Discipline is your friend. Discipline is what you can rely on always. It's the one thing that rewards you when time has passed. Sometimes, just staying in the game is enough, even if you think you've stagnated. It's where you always get that lightbulb moment.
Perhaps when you started, you were motivated to create a website or an app you had the idea for, but suddenly realised it wasn't as straightforward as you thought. Every hurdle has a stumbling block, seemingly making it feel like the finish line is further and further away. You start to wonder where that motivation has gone. Suddenly, this experience is no longer enjoyable. You then begin to think, "Maybe I need to learn about UX/UI, " and suddenly, you become motivated again. Trust me, if you stick out a bit longer, discipline will reward you with a bit of comfort, or at the very least, not that feeling of demotivation again.
One of the things you can do is code every day, even if it's for 5-10 mins. It's not difficult to do and is a quick win. Sometimes when you're not mood to code, you'll stop after those 5 mins. On other days, you might not be bothered and spend 5 hours. It's all about getting into the habit of things.
The comfort zone is when you've learned something, applied it, and done it again and again. It's a terrible place you get to where all you want to do is top-up on dopamine. It's understandable. Programming isn't so simple, so you want to be excited about learning how to do something. However, this is often tied into what is known as "tutorial hell." People who are constantly choosing new courses to relearn what they already know, but with a nicer presentation/interface.
As I've mentioned, learning is uncomfortable, so if you're feeling comfortable, it's clear that it's time to move on to something new. But if you insist, I would suggest learning what you already know but in a more profound concept, which will be good enough to explain to someone who has no idea what's going on.
Learning to code isn't like a video game where you go up a level. It's more akin to life. Things don't go in a straight line. There are many trials and tribulations, stops and starts. You don't progress upwards but sideways, up and down, back to front, in all directions. In saying that, you don't need to know which is the best route to take, as I don't believe anyone does. Developers all say what they would've learned if they went back in time, but I don't think they would've understood things in the way they do now. You have to try everything, whether it's simple or not. Learning what you already know won't benefit you. Instead, focus on things you might need to know that can help your projects in the future.
However, this is only after you cover the very basics. Learn what data types, variables, objects, functions, etc. are before embarking on your journey to the unknown. Don't stay to learn these things for too long, though. You don't need to be an expert at them or know them well enough to be able to explain the machine code. Just enough is enough.
I struggled a lot initially when I began to learn how to code. For starters, I came from a design background, and so, with everything, my learning was more focused on the visual side of things. This meant, that teaching me how to code did not easily translate into something I could grasp. I would constantly wonder how this had any real-world application.
Things started to make sense when I worked on web development. I could see the changes I was making, and thus, this began to click for me.
Try to find the one thing that clicks for you when learning and use that as a starting point to expand from. Give yourself time and manage your expectations. If you find it too difficult for you and want to quit, I suggest holding out a bit longer. Maybe that one thing you were blocked on might get resolved if you just continued a little bit longer. Learning anything, let alone programming, isn't easy, but it's as rewarding as it can get.