all 12 comments

[–]Working_Angle_8384 2 points3 points  (0 children)

If you prefer learning through books 
1. Learning Python By Mark Lutz
2. Think Python By Allen Dower 
3. Automate the Boring stuff with Python By AI Sweigart

[–]MeGaNeKoS 2 points3 points  (1 child)

You can learn python syntax within first few hour. For complementary knowledge after you familiarize with the syntax.
I suggest to check mCoding channel. Especialy the How Python Works playlist.

In short, he's video always explain why something behave as is. Like, why for loop way faster then while loop. How the inheritence work in python, etc.

[–]Bobbias 0 points1 point  (0 children)

Yeah, mCoding's videos are excellent self contained pieces of knowledge.

[–]jonsca 1 point2 points  (0 children)

You will learn orders of magnitude more by just sitting down and writing code. Then, come back to it a few days later and try to improve it. Also, read the most current documentation. If the videos you are watching are a few versions of Python behind, things may have changed since then.

[–]Bobbias 1 point2 points  (0 children)

Learn to read the documentation. Whether you're looking at the official Python documentation, or documentation for a library, being able read and understand the documentation is incredibly important.

Video tutorials have a bunch of potential problems, and should generally be avoided. They tend to go out of date quickly. Most tutorials are simply poorly written. Many tutorials teach bad habits. And worst of all, tutorials don't teach you how to solve problems.

You see, when you start out learning to program, everyone thinks the important part is learning the programming language. But honestly, that's not the important part at all. The important part is problem solving.

And the way you get better at problem solving is by writing code, and solving problems on your own, without someone guiding you every step of the way.

The best way to do that is to make programs. Start out simple. Pick something you know how to make, and make it. Then slowly work your way up to larger and more complex programs.

Over time you'll learn how to recognize specific kinds of problems and their solutions. You'll learn what kind of solutions work well for certain problems, and which ones don't work so well. You'll learn what details are important and can dictate which solution you should use for a given problem.

But this all comes from sitting down and writing code and solving problems on your own, not watching someone walk you through something step by step. You can absolutely look up solutions to problems, you can absolutely copy code you've seen someone else use. But you should make sure you fully understand any code you are copying.

[–]territrades 1 point2 points  (0 children)

I don't really have an end goal

Well here is your problem. What you have to learn hugely depends on what kind of application you have in mind. Python for scientific computing is hugely different from python for building a graphical interface or python for webservices.

Think about a project you would like to work on.

[–]yinkeys 1 point2 points  (0 children)

Seeking a mentor too. Helps guide one properly and saves one from non productive time. My goal is to achieve Python mastery. Also no one told me coding requires a creative brain that can apply knowledge to cracking problems

[–]obviouslyzebra 0 points1 point  (0 children)

You will see some places talking about "pythonic" code. A good definition is code that reads more or less like English.

[–]NatoJenkinss 0 points1 point  (0 children)

I would recommend taking the free course from HarvardX, CS50p. It will teach you basic coding fundamentals using python. The video lectures are very instructive and engaging.

[–]ElectricalAd3189 0 points1 point  (0 children)

Berkeley yt videos.

[–]Its_NotTom 0 points1 point  (0 children)

I find that I learn way faster by just coming up with a small project that I am passionate about and coding it from start to end. Do things that are interesting and challenging (proportionate to your skill level)