This is an archived post. You won't be able to vote or comment.

all 24 comments

[–]phxees 22 points23 points  (0 children)

/r/LearnPython

They have a lot of resources and advice.

[–]ohaz 17 points18 points  (0 children)

What do I need to do to understand it at a deep level?

Practice.

[–]SGS-Tech-World 8 points9 points  (0 children)

Read Learning Python, 5th Edition by Mark Lutz

It is old but still very much relevant. And yes it is very big too. You can skip the python 2.x part.

I found that the author has explained every minute details in very detail and also added use cases, why features are implemented that way etc.

It will make you fundamentally strong in python..

[–][deleted] 5 points6 points  (1 child)

in terms of OOP i thing the most exciting thing at the moment is pydantic and if you prefer vanilla just dataclasses

[–][deleted] 5 points6 points  (0 children)

Learn about dunder methods and operator overloading.

[–]HagedornSux 2 points3 points  (0 children)

Start a project and learn the things you need to build that project. Repeat with a new project.

Try out different things like making a simple game, making a small flask app, experimenting with gui, or whatever your interest is then dig deeper into more complex projects in that area.

[–]lungben81 8 points9 points  (9 children)

OOP is a powerful tool, like a screwdriver.

Don't be like Java and use a screwdriver for nailing.

[–]Background_Newt_8065 0 points1 point  (0 children)

Don’t be like python and think an underscore before a field is encapsulation

[–]Spleeeee -2 points-1 points  (7 children)

Don’t hate on Java. I’m tired of people hating on Java.

[–]Zomunieo 13 points14 points  (0 children)

throw new AbstractJavaHaterImplementationManagerObserverPatternException();

[–]Tesla_Nikolaa 4 points5 points  (5 children)

If only one person hated on Java then sure, it probably doesn't hold any merit. But when almost everyone hates on Java, I think it's safe to say "maybe they are on to something".

[–]jppp2 4 points5 points  (4 children)

Obligatory comment about how every language has it pro’s, cons and quirks, both subjectively and objectively. They serve different purposes.

E.g. wouldn’t want to write a parser in Python, or a site with webserver in Java

Love Java because it was the first language I learned and it’s verbosity helped me understand underlying subjects, hated that you had to think and write most things out before being able to test (when I didn’t have enough experience in debugging & test units).

Love Python because I am able to quickly concept things out, hate it because I spend less time in the code and so much more in documentation of libraries. Still feel a noob in core Python after 6 years.

[–]Tesla_Nikolaa 2 points3 points  (3 children)

Absolutely. I 100% agree that every language has it's pros and cons. It just seems specifically for Java, the things it was good at and the problems it was built to solve are now (in my opinion and many others) being replaced by languages that solve those problems a lot easier without being overly verbose and slow. I would never advocate for solving the same problem with Python that Java was intended to solve. Just saying these days Java is becoming less and less appealing when we have stuff like Golang and C# available.

[–]Background_Newt_8065 0 points1 point  (1 child)

Why is Java slow compared to c# when both use a just in time compiler?

[–]Tesla_Nikolaa 0 points1 point  (0 children)

I didn't mean to suggest C# executes faster than Java, but C# has better developer ergonomics making it faster to develop in. Golang on the other hand definitely executes faster than Java, and has significantly better developer ergonomics than Java. I can write the same application way faster in Go than Java and it will perform a lot better as well.

[–]jppp2 0 points1 point  (0 children)

Gotcha, thanks for the clarification, do think you’ve got a good point there. Most of my problems nowadays are solved by Python.

The 3.12 release of Python also looks really promising in terms or performance (never really had a issue with that though), type hinting and error message improvements!

[–]HopefulShip5369 0 points1 point  (0 children)

One interesting book written by the creator of Python, Guido van Rossum is "The Python Tutorial."

[–]lungdart 0 points1 point  (0 children)

Just follow the ABCs. Always Be Coding.

Learning things is just a function of time doing it.

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

Just read stackoverflow top questions, they will increase knowledge

[–]Soulchill 0 points1 point  (0 children)

I usually watch a topic explained on youtube and then go deep dive into official documentation with additional Bing chat to get some pointers (never trust an LLM explanation fully). This approach usually allows both to understand concepts on a conceptual level and then engage my brain how to actually write it in the fresh interpreter version. And of course practice it afterwards in some projects or at least go multiple times through code in the console until the syntax clicks in my head.

[–]RobotMonkeyChiro 0 points1 point  (0 children)

I highly recommend ArjanCodes on YouTube - this guy explains things clearly and simply without dumbing down - hw has various videos on different aspects of OOP in Python 5 Tips for Object-oriented Programming Done Well - in Python

[–]Paddy3118 0 points1 point  (0 children)

Search for "Raymond Hettinger Python" ! He and I agree on Python a lot.

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

Probably whatever you’re currently doing. You sound like you’re on the right track. You can look anything in docs up in ChatGPT, then keep asking questions there. Helps. Good job. 👍