There is a LOT of good information out there. Tutorials, videos, paid courses, free courses… so much good stuff.
When I decided I wanted to learn to code, I just started doing whatever looked interesting to me. It’s easy to fall into the trap of trying to pick the “optimal” syllabus for your personal learning journey. I wanted to start coding now.
I actually started years ago — overnight in an airport in Bergen, Norway — doing the Django polls tutorial. This is a good one, but my goodness it was a hard time.
Yes, we can attribute that partially to pulling an all-nighter. I definitely get dumber without sleep. But the real problem was that I just didn’t understand much of anything about web development. Plus, my Python was meh at best.
The Django polls tutorial is good, but probably not where you want to start.
First, learn Python
I found that whole experience kind of frustrating. I made it through the whole app, but I didn’t know any programming and didn’t really understand how this web development framework even works. I didn’t understand any of the anatomy — the structure — of the code, so it was all too mysterious.
And when you don’t know how it works, you can’t learn.
The best thing I did when learning to code was treating myself like more of a newbie than I originally felt.
I bought Zedd Shaw’s Learn Python 3 the Hard Way and started toiling away. I think it took me about a week to make it through nearly everything. I attempted to go slowly, making sure I researched anything that was unclear. I even filled up a few dozen pages of a notebook, taking actual handwritten notes.
Second, learn Django
That’s why I picked Django.
Django is proven. It’s not terribly flashy or hyped up, but it gets the job done while handling a lot of best practices for you. I like code that doesn’t change because I didn’t even know how ANY frameworks work, much less the specifics on Django.
It’s easy to pick up a random tutorial on someone’s blog or on YouTube, but when you’re at this early stage, you cannot afford to be random.
If you jump around from tutorial to tutorial, you miss the basics. You want to build skills like a pyramid: foundation first, then layer by layer bring the rest together. What we end up doing in this Age of (Free) Information is building our skills more like a puzzle. We piece together sections as we see them, and then eventually try to tie the whole thing together.
If you lay the foundation first, you learn the bits that teach you the most. It gives you a broad view which you can then deepen as you need to learn new skills.
The most comprehensive piece I’ve found on learning Django is Django for Beginners by Will Vincent.
Third, Go Further
Once you’ve laid your Django foundation, you have to start building depth.
The recommended next step is either:
- Try to build your own thing that fits the structure of a project you’ve already built
- Go through another book that’s more advanced
If you feel comfortable, you can try to build your own stuff. I did that because I didn’t have a book in mind. And it worked for a little while, but I was unsuccessful. I just didn’t have the mental model of web development ingrained in my brain. You might have more success than me.
What saved me was a follow-up to Django for Beginners: Django for Professionals.
This book wasn’t published when I was ready for it, but it came out only a few short weeks later. When I snatched it up, I felt really hopeful about my future as a coder.
So hopeful, in fact, that I actually developed an app I could use with some of my fitness mentoring clients.
Django for Professionals teaches you Docker right away, gets you a ton more practice with Django in general, and brings you through the whole process of deploying an app professionally (i.e. keeping private things private).
After that, start building your own project! Now that you have your foundation set, you can deepen your skills.
Come up with a project idea that is super duper simple. It’s okay if someone has already done it before. You can steal their structure and try to recreate it.
Write out your plans on a napkin or Post-It note. Start building and search for help when you need it.
There’s no reason to re-create the wheel when we already have steps that work. Use these affordable resources to level up your programming skills right away.
Start now. Put in the work and you will be rewarded.
Have you tried out any of these resources? Are there other ones you found helpful? Leave a comment below or submit your own version of this article.