As a Computer Science major, we never learned formal web development until you get a job somewhere where you’re tasked to build websites. But, the very act of building websites right out of college, did wonders for actually learning Django. There is too much to know about website building and Django in particular to “know” everything. Therefore, you really need to start out small and work your way up. Sometimes the best way to learn, is not to read and do tutorials, but to actually open a command prompt and:
$ django-admin startproject my_awesome_experimental_project
Then, you take what you learned in the tutorials and your try to build something that somebody you know would think is “SUPER COOL!!”. The problem is, you’re not sure where to start. Everybody enjoys tutorials because when you’re going through a tutorial, you’re making things happen. You don’t have to constantly worry, “am I doing this correct?”. Eventually, a project is finished and you can marvel at how awesome it is. Then, after a few minutes playing around with your creation, you think to yourself, “now what?”.
Here are few things to answer that question:
1. Add some functionality to the app that you just created.
If you want to learn more about Django ORM, intensify the underlying model system. Add the ability to upload pictures do the polls. Maybe for each poll response, you could have an image instead of text. Maybe you could create a blog and you can use the already existing Polls app to link a Poll to a blog post.
If you want to learn more about Django Views, you can add a new View. Create a profile page for yourself and add a link to that page on all the Polls that you create. (I don’t know, just a suggestion)
2. Start a project from scratch.
Remember that command above? Run it and start a new project. Would you like to create a chat room that ONLY you and your friends would be able to use? Create it! Maybe you want to create a better Facebook or your own Reddit-like app… Create those apps too!
Take an idea, then meticulously break it down into tinier and tinier components.
Check it out:
Some things that you might need
- Chatroom interface
- Authentication System
- Individual messages per user
Then, you can break this down into smaller components:
- Chat window
- Chat message input textbox
- User model with 1 to Many Model Relationship with Chat Message
- A login form
- Session to keep user logged in
Each of those can be broken down even further, for example:
A login form needs:
- Email Field
- Password Field
- Submit Button
- A couple views / urls
- Validation for correct logins
- Password reset forms
The point of all this isn’t to bombard you with a lot more “things”, but to break each task down small enough so that they will only take you (hopefully) a few minutes each. Also, these tasks can be small enough that you can compartmentalize each task to help you find what you’re looking for in the Django Docs, or on Google or on Reddit, etc. (e.g. #4 above, “Views and URLs”. If you forgot the syntax of your URLs, you can search for “Django URL syntax” and find a very specific link somewhere in Google. Easy peazy…
3. Start a project with another person.
Do you know people who are interested in learning Django with you? You can very well come up with a project that you can do together. Then, you can follow Step 2 above to break your project down to the simplest parts necessary to finish your project. Make sure to give both you and your friend different tasks. If either of you are stuck, you can help each other out and “pair program” to solve the problem together.
The other thing you can do, is that most major cities will have “Hackathons”. They are events where people will code all day long for a couple days, sometimes more sometimes less and just code a cool and useful app as quickly as possible. It’s also a really great way to get to know other programmers.
Try each of my suggestions above because the more you DO, the better you BECOME. I hope that at least gets you in the right direction. If you need anything else, let me know. Programming can be difficult, but it’s a TON of fun.
Struggle with the Django Documentation?
If this post helped you, sign up for my newsletter and you'll get a new post each week that will help you master Django ABSOLUTELY FREE!