Published on Jan. 14, 2018, 8:47 a.m.
This article is a bit outdated. As soon as I can, I'll update it. It's ok to read but take anything that looks related to time (versions, technologies, etc.) with a grain of salt. Thanks for reading!
I get asked quite often something along the lines of:
I am new to programming. I would like to learn Python and/or Django. What is the best way for me to go about learning it and mastering it? or Can you recommend any good learning resources?
The answer may seem as an oversimplification but I've never seen it not work. Here's what you do:
Have a look at the Django tutorial (Google "Django docs tutorial") and read through it. Decide if this is something you understand and feel like you can follow along as you go, and if so, then get started.
On the other hand, if you look at the Django tutorial and believe that the Python code doesn't make sense, then Google "Python tutorial." Believe me, any one of these is just as good as the other. Don't ask for the best one. There is no such thing.
If you find a Python tutorial that you think you can understand, then go through it all the way until you understand it well enough to take on the Django tutorial. If after going through this Python tutorial and the Django tutorial still doesn't make much sense, then find another Python tutorial and keep working on them until the Django tutorial does make sense.
At this point, you've either given up or decided to take on the Django tutorial. If you're taking on the Django tutorial, make sure you go through it and complete it to finish. Then, go through it again. The 3rd time, start going through it with less and less access to the material working through it from memory. Once you can build the app in the Django tutorial completely from memory, you are ready to start your own Django project.
Now, how do you decide on a Django project to work with? Simple. Come up with a web application that scratches an itch for you. A word of admonition here:
DO NOT ASK ANYONE FOR PROJECT IDEAS!!!
It is crucial that you come up with your first one yourself so that you understand how to do it. If you ask someone else for a project idea, you will be working on their idea and not be nearly as motivated to finish it to completion as you would if it was your own.
As you work on your project, make use of Github to store your source code. It will be good to not only show your work off but you can also go back to your code if needed.
If you have questions as you go (and you WILL else you're not doing it right), you can use Stackoverflow, IRC or other forums to get help. Do not approach anyone on a social networking platform like Twitter or Facebook to ask for individual help (unless you know them well and they are a personal friend of yours or you are prepared to pay consulting fees -- mine is $100/hour at least).
Also, make sure you ask your questions the correct way (see my other article on asking good questions) as you go. This way you do not waste others' time and your time.
At this phase (working on projects), you will learn far more doing this than you will ever learn from a book or following tutorials online. The best way in life to learn is to do. It doesn't matter what the subject is.
Get started today.