I've recently started to learn Django to build my own web app. Total newb.
My main questions are:
Should I go through all of the tutorials and readings I find about Django to have a good base understanding of Django before working on my website?
Or should I simply work on building out my website one step at a time and learning just what I need to build it out?
Any feedback is much appreciated.
Cheers
Build out your site one step at a time learning on the fly. I use to do the whole tutorial thing and it's helpful if you are using a specific feature for your site. Once I started building and learning on the fly I was able to close out projects.
Got it. Thanks!
I think building something while you learn is the best way to learn. At least that's how I learned to code around 18 years ago
Agree totally.
+1 to everyone here. Learning by irrelevant tutorials is boring and will set you back. Having a project you're passionate about will keep you motivated to slug through the more challenging stuff.
Elon Musk created his own school because he said school is backwards. Instead of first learning what a hammer is and all of its uses which is what traditional school does, you should instead be working on a project and during that project you figure out that you need a hammer and how it solves your problem.
I like that approach much better. Some people can read an entire python book and just get it but I feel I can only learn by doing. And what better way to learn it than a project you are interested in.
Here's what I did when I was in your position – learning Django while trying to build my own app.
I did go through the polls tutorial, but always keeping in mind how it would be relevant to my own app. I actually added a few things I knew I would need – bootstrap frontend, hosting on Heroku, ability to upload to MEDIA_ROOT. And I went faster through the stuff I knew wasn't going to be as relevant – "related objects" the admin, all the scolding about how you're writing enough tests.
It seemed to help me figure out how to do things and what was possible when I actually built the app.
This is literally what I'm doing right now but I'm focusing only on the web application with the tools I need to make the site do what I want it to do. I don't want to be a programmer, I just want to build shit that's useful to people.
I find it so hard to follow tutorials, especially when the outcome isn't the thing that I want to build and learning theory never really worked for me.
I think it's highly indicative of this community and makers in general to learn as you go along instead of following tutorials. It's that independent attitude that helps us to create the things we want to make. Would love to hear which path you decide to take and how you're getting on.
I've decided to follow the advice here and build the app whilst learning, BUT I'm skimming through the book "Two Scoops of Django" and I'll probably go through the tutorials since I am really a newb at coding and need a tad bit of guidance to get started. But I won't waste too much time studying everything.
Absolutely!
The whole reason you are learning to python/Django is to build this app.
Nothing will give you more context and drive to finish both the coding course and your app than seeing someone pick it up.
And yes, most likely v1 of your app is going to be full of learner code but it will be something someone else can pick up and use, that means you can get feedback on what’s important and what to fix first.
Hope this helps :)
Mathew
Yes thats a great way to learn, head first. You have a pain point, try to solve it step by step while learning to code at the same time.
Following tuts online will only teach you how to do nothing. Follow them while making your app, make it yours.
Remember everything is a todo list, facebook is a todo list , instagram is a todo list.. by that I mean its create, read, update and delete, all web apps do the same thing, its the UX thats the difference.
I see. I'll have to keep that in mind. Thanks
You will likely learn more if you build something that solves a real world problem, or scratches your own itch.
I would learn the "fundamentals", like enough to build a "todo" app. Then start building and learning as you go.
Having a good cycle of building, to learning, back to building is important to becoming a better developer. Just don't expect to be too happy with the code a few months later ;).
Build and learn on the fly. It's gonna be your best teacher, and you'll also learn how to plan out and limit the scope of your project correctly.
I learned to develop front-end when I was a teen simply because I had ideas that I wanted to develop, I didn't have the money to hire anyone and online tutorials back then weren't really a thing, so I just kinda dived in. Read forums, took snippets of code, tried to do a lot of stuff, broke a lot of stuff. Ultimately it's lead to a very good career for me without any formal education in this field.
Now, I find myself frustrated at having a lack of server-side knowledge and being reliant on others to actually ship products. So instead, I'm diving right in and learning whatever I need as and when I need it. It's perhaps the fastest and most rewarding way of learning.
Though I do want to throw my MacBook out of the window on many occasions!
You’ll retain information better if it is particularly relevant to you. So using what you’re learning to build something you care about is a great way to do it. When you’re starting, building the thing is more important than how you’re building the thing, you can always fix stuff later.
@helloeddy This 😉 The rest is just theory. While, here you are applying it in a real custom (important that it's not 1:1 like a tutorial, you learn more) scenario.
Plus, you would have a ready to use website at the end.
Ok, I figured as much. I was just afraid of shooting myself in the foot somehow by not going over the theories. Thanks :D
You'll go over the same knowledge, but in a practical way :)
Have fun!
Exciting stuff.
Do you know Python well? If so then yeah just read about the general ways things are done in Django then get started and learn as you go. If no then I'd go learn Python first and do all the examples in that book/course then go back to the start of this comment.
Good luck with your learning and app.
I know python at a beginner level. I just completed a Coursera course that took me about 2 months, so I guess you can say I do have a base level understanding.
Thanks for the advice
This comment was deleted 9 years ago
This comment was deleted 6 years ago
Music to my ears. Thanks!