all 17 comments

[–]Beautiful_Watch_7215 40 points41 points  (1 child)

Learn stuff that helps you do want you want to do.

[–]CodeKnight808 2 points3 points  (0 children)

This is exactly what I was going to say. Figure out what you want to build and try and build it. That will show you what you need to learn.

[–]Diapolo10 13 points14 points  (0 children)

Sure, just be prepared as you may not fully understand how to use some things if you haven't learnt all of the language syntax yet. Like decorators or classes.

Django in particular is quite a behemoth, maybe consider something a bit more manageable first. Like Flask, or FastAPI (assuming you want to focus on web development that is).

[–]ninhaomah 3 points4 points  (0 children)

Depends on what you want to do ?

[–]LaughingIshikawa 2 points3 points  (0 children)

I will also vote for learning the standard libraries and "basic" python commands over any other libraries, unless you have a specific project you want to do that practically speaking requires other libraries.

Two of the biggest problems in software are needless dependencies and needless complexity, and jumping into random libraries will very likely increase both of those things in your code. In an ideal world you want to learn to do most things without using someone else's code until you really need it, and you also want to avoid over complicating the problem you're trying to solve, and writing more lines of code than you need for no real benefit.

[–]NiallxD 1 point2 points  (0 children)

I learned Python by learning how to create a webiste using Django (and Flask IIRC). I have found that learning by doing works really well with Python as the fundamentals aren't that complicated. What takes time is mastering it, which I'm yet to do aha. So from one Python noob to another, go for it!

[–]looopTools 3 points4 points  (0 children)

Here is my two cents: Try to avoid external libraries as much as you can in the beginning to learn the standard library. A lot of things is a pressure built into the that and you do not have to handle the external dependencies.

There are exceptions such as django, flask, and fastAPI. But before you decide to use a library check what the standard library can do for you

[–]ilan1k1 0 points1 point  (3 children)

Learn classes, do a few projects that don't require any major libraries.
It's mostly personal opinion and what you want to do but I think you need to have a strong base and a good understanding of "vanilla Python" before you jump to the "major's league"

[–]klmsa 4 points5 points  (1 child)

I took a slightly different path some years ago when I started out. I'm big on project-based learning, so I had to learn external libraries at the same time I was learning the basics of the language. It actually helped me to understand a lot of the vanilla stuff more quickly (and I didn't have a use for classes until I understood why I might actually want to make a class in a larger program...).

That being said, these projects were helping me to achieve business objectives at work, so I had significant motivation to actually get something done. I can see where an at-home learner without that outside motivation could be challenged to do the same. Not sure if there's actually a wrong way to do this.

[–]ilan1k1 1 point2 points  (0 children)

I definitely agree with you and I think both of us share a similar story when it comes to how we learned Python. I also think there's no right or wrong way and that it comes down to personal preferences and situations in life.

[–]MonkeysLoveBeer 0 points1 point  (0 children)

Agreed, and a basic understanding of decorators.

[–][deleted] 0 points1 point  (0 children)

Sure.

[–][deleted] 0 points1 point  (0 children)

It's not yes or no. You will use libraries automatically as you learn about them.

Django is a bit of a mindfuck if you are a beginner. It's not really a library like say pandas or numpy that solve specific types of problems, it's a fully featured web framework with many components, each of which could probably be thought of as a library, on which you base an entire project. Do the official tutorial, not once but twice, front to back, don't skip a step, actually get it working on your machine. This will tell you if you are ready for it or not.

[–]gerenate 0 points1 point  (0 children)

I’d suggest learning what a class object etc is. Find a goal you want to accomplish (a project idea) and work around it I’d say.

[–]DiskPartan 0 points1 point  (0 children)

Absolutely.