You can learn programming all by yourself and get a coding job. Just you, your laptop, and the internet. It’s great! You don’t have to pay thousands of dollars for a degree and you can work at your own pace.
However, there’s a challenge with this approach: without a teacher or course to guide you, it’s not clear how much work you need to do every day. There are no professors giving weekly lectures or tutors setting homework.
You just do as much study as you’re motivated to do. Are you doing enough? Could you do more? These questions can create guilt and anxiety when you spend time on non-programming activities. There’s no clear line between work, study, and play. There’s no campus or workplace to go to and no-one is keeping you accountable.
In this post, I want to discuss the question: how much should you be working?
Pacing Yourself: Slow and Steady
In general, my advice is to pace yourself. Slow and steady—don’t burn out. A useful quote to keep in mind is:
“You overestimate what you can do in a day, and underestimate what you can do in a year.” – Bill Gate
Setting a Daily Study Goal
Let’s be specific. I think you should aim for four hours a day of total study. That’s what worked for me personally. It might not seem like much, but that’s four hours every day. You might think that 8 hours of work per day is the golden standard, but learning is much harder than working.
That four-hour figure is for people studying full-time. If you’re also working a job, aim for 2 hours a day at most.
Balancing Theory and Practice
Study Some Theory
Of those four hours, I recommend spending 1-2 hours doing coursework. This might be watching lectures, reading a textbook, or doing assigned coursework. Consider courses from Coursera, Udemy, MIT or even YouTube videos. Passively reading and watching videos is mentally draining, and most people can only absorb information and take notes for about 1-2 hours a day.
Do Some Practice
Spend the rest of your time on a coding project. I suggest coding after some theory because learning theory is harder. If you’ve found a project you’re interested in, it shouldn’t be hard to spend 2-3 hours writing code. Some days you’ll get stuck and give up early—that’s normal. Other days, you’ll be having fun and the next 10 hours will fly by. What’s important is not to force yourself to sit and code for 8 hours a day if you’re not enjoying it.
If you find yourself unable to spend 1-2 hours a day coding, take a step back and figure out what’s blocking you:
- Do you hate the language you’re using? Try a new language.
- Is the project too hard? Try something easier.
Take a meta perspective on your work. Don’t just slog through problems. Make it fun.
Immersing Yourself in Programming
You can accumulate a lot of passive programming knowledge without doing a lot of work per se. If you can find programming-related entertainment that you enjoy consuming, it won’t feel like studying. For example, I used to enjoy reading tech blogs and listening to podcasts like Programming Throwdown and Go Time. I’d listen to these podcasts while working out—casual consumption, not a study thing. There are also books and YouTube videos that are both entertaining and informative.
Consistency is Key
It’s hard to say how long it will take to get a software job from scratch. There’s a lot of variance, including your local job market and pure luck. In general, getting a job will probably take longer than you expect, so it’s important to work consistently. Be in it for the long haul: pace yourself.
0 Comments