The Secret Sauce for Learning to Code Full-Time
Learning to code by yourself is hard, here are some tips to make it easier
Learning to code full-time is a dream for many. Only a few of us can afford to dedicate many months to a long boot camp or studying alone.
I was one of the lucky ones. When I quit my job, I had nothing else to do but learn to code. I became a full-time learner.
It was thrilling. But I quickly realized what seemed like ideal circumstances presented many challenges and setbacks I didn’t expect. Luckily, I managed to overcome them. Now I’ll help you avoid the same mistakes I made.
Here’s my secret sauce to learning to code full-time.
Set up a routine
You’ll be amazed how quickly time passes when you don’t have to do anything. When I started to learn, I often found that between 8 am and 2 pm, I learned just for an hour or two. So many things were fighting for my attention, so I couldn’t focus.
Another obstacle was I procrastinated a lot. I thought I could catch up the next day or weekend. After all, it shouldn’t make a difference if I spend four days learning for five hours or two days learning for ten hours. But it does. Progress doesn’t care about the averages. It depends on regularity.
Think of learning to code as you think about mastering a sport. You can’t train hard once a week and become a professional athlete. And you can’t learn once a week and become a professional software developer.
The most effective way to fight procrastination and use your time wisely is to set up a routine and build a programming habit. Create a precise learning plan. Decide how much time you’ll spend learning and when you’ll learn. Prepare your setup, so you’re free of distractions — turn off your phone and have a clean working space. Do everything you can to focus on learning only.
Be reasonable with your plans. Not everyone can learn 6–8 hours a day. When I tried to learn this much, burnout hit me. For me learning for 4–5 hours was a sweet spot — I could progress quite rapidly and have some time to rest and relax.
You should do this same — tailor your plan to your preferences and remember learning to code is a marathon, not a sprint.
Have realistic expectations
When I started, I expected to find a job in 6 months. My worst-case scenario was 12 months. After this time, I’d run out of money and have to get back to my previous job.
Finally, I found q job after 11 months, when I was already giving up and considering job offers from my previous industry.
In hindsight, changing an entire career in eleven months sounds reasonable, even fast. But when I was learning, it seemed like an eternity. I’ve seen so many success stories on Twitter and LinkedIn, stories of people who managed to change their life in 3 months. After a year, they have already been promoted once or twice.
Now I know my expectations were silly. The problem is people are different. We learn differently and have various skills, habits, and circumstances. Someone could find their first job in 3 months, but that doesn’t mean you’ll do it. And the fact someone learned for two years and failed to switch careers doesn’t mean you will share their fate. The web is full of great success stories. But the real learning experience is much more complex and unpredictable.
Realistic learning expectations have one another aspect. When you start learning, you expect to be gradually improving. It seems reasonable that you begin knowing nothing and, step by step, build your knowledge. Unfortunately, it’s not true. Our learning process is not linear; you’ll often discover that something was easy just a week ago, but you are struggling with it now.
Image by Magda Waksberg
You have to be ready for minor (and sometimes major) setbacks to avoid discouragement. What’s important is not your current skill level but the upwards trajectory over the long run.
Take baby steps
One of the worst things you can do when learning to code is to be overly ambitious. You have a great idea for an application, and you want to implement it now. After a few weeks, the complexity overwhelms you, and you begin doubting if you’re smart enough to become a programmer.
You are, you just tried to bite more than you can chew.
To progress, you need to understand that programming is hard. Don’t expect to build great things overnight. You need to take baby steps in your learning, and only when you take many of these steps tackle the more challenging problems.
For example, if you want to learn web front-end development, start as simple as possible. Create a website using only HTML elements — no CSS at all. A simple page with one image or a page with a few inputs. See how the page looks in different browsers and what’s the semantic meaning of the HTML elements.
When you feel comfortable with HTML, start experimenting with CSS. Re-create some simple websites, a Google main page is a great example. Later you can move to more complex but still manageable things. Blogs are great to practice, as they have a relatively simple layout.
After a few weeks with CSS, you’ll probably get bored and look for some challenges. That’s the moment to add interactivity to your websites with JavaScript.
Always take just one step at a time. Ignore everything besides the step you’re about to take. Over time, try building more and more complex websites.
Do one thing at a time
If I were to find one difference between successful learners and people who fail to learn, I’d pick a focus. Each time I was focused and knew what path to take, my productivity boosted, and my mood improved. When I lost focus, the progress stopped, and anxiety struck.
Programming is a vast field. You can send rockets to space, build neural networks, creates websites, or write software to run a fridge. Possibilities are endless. But your time is not, and you have to pick something interesting to you with the highest chance of finding a job.
When I started to code, I tried to learn C++, Python, Django, and Flask. I spent almost half a year on these because I didn’t know what I wanted to learn; I just wanted to get a job as a software developer.
That’s not a good approach; you need to think about it another way around — decide what you want to do and learn it.
I picked the front end and never looked back. I focused on HTML, CSS, and jQuery (that was a big thing then). Four months later, I received two job offers.
Being focused on one thing saved my programming career.