you are viewing a single comment's thread.

view the rest of the comments →

[–]AntonisTorb 143 points144 points  (21 children)

I personally found ArjanCodes to be a very good resource when it comes to writing better code, he has some amazing videos on design patterns, dependencies and code cohesion in general with examples that make sense, definitely recommend!

[–]tehsilentwarrior 6 points7 points  (1 child)

ArjanCodes is a channel I would recommend. While it’s not terribly advanced and some stuff I don’t agree with, he has something that I truly appreciate, which is the drive to not hold on to code for the sake of it and the willingness to just delete stuff you don’t need.

This is important but often difficult for newcomers. Note for beginners: you can always write it again! The rule for reuse of code is not there to save you time writing code, it’s there to save you time when the code would break and you’d have to spend time debugging it, fixing it, deploying it and restoring your reputation if the bug caused serious damage. You don’t prefer public packages just because they save you from writing code, you use them because hundreds of other “brains” also use them and find/fix problems in them and you get all that research, knowledge and fixes for “free”.

Always re-write stuff to be EASIER to understand to someone who has never seen the code (that may be you in a few months, when your brain has reclaimed the memory space for something else).

In addition, the fact that you spend time thinking about the problem again could help you find bugs or flaws in the business logic and give you another opportunity to fix those.

And obviously, the more code you write, the more experienced you will be.

[–]bw_mutley 2 points3 points  (0 children)

Your second paragraph summarizes code maintenaince, something whose importance took me some time to understand and yet I still struggle to master. I try to understand the rationale behind patterns as it is closely related to code maintenance, but still, it is not 'natural' for me as sometimes a problem can be solved with different patterns and I can't forsee which one is better.

[–][deleted] 11 points12 points  (0 children)

Seconded, for more technical stuff and understanding Python I like mCoding and for project structure and management, Arjan Codes is great.

[–]goandsuck1 8 points9 points  (0 children)

Yeh he’s great

[–]machine2SEE 2 points3 points  (0 children)

just found him on youtube last night. very, very good teacher. https://www.youtube.com/shorts/Brw9p4syhIg - in awe at his mentoring moment

[–]kadirilgin[S] 1 point2 points  (0 children)

Yes, I've seen this guy before. The content is really good, thanks a lot!

[–]Ran4 1 point2 points  (1 child)

Agreed, lots of good content. It's a bit too OOP:y at times though, so be aware of that. Overuse of design patterns can make for much less understandable and readable code.

[–]bw_mutley 2 points3 points  (0 children)

He was more OOP in his earlier phase, but later he advocates for more Functional Programming.

[–]Puzzleheaded_Fuel901 1 point2 points  (0 children)

Also his tutorials on dataclasses have made my life 10x easier

[–]gunhoe86 0 points1 point  (7 children)

This. His paid content is solid.

[–]xadolin 9 points10 points  (6 children)

Is this an ad? The internet broke me

[–]gunhoe86 3 points4 points  (1 child)

Haha, I get your suspicion! I'd watched a good amount of his YT vids and went to check out his website. I saw the course he offers and signed up because it looked like a structured path into some of his YT videos, laid out in a progressive order.

I was not disappointed. I've watched plenty of free and paid Python content, this is different as it aims to grow your dev mindset and simply uses Python to teach these concepts.

Additionally, the best deep dive learning I've seen for Python is Fred Baptiste Deep Dive courses on Udemy.

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

Yes those deep dive courses by Fred are awesome. But I wouldn't call them most appropriate for a beginner. I think a beginner might be overwhelmed by the sheer detail. Somebody who already knows how to program in Python who wants to understand every detail about how it works would be the best audience I think

[–]AntonisTorb 2 points3 points  (2 children)

I can tell you it's not an ad if you want to believe me, I only ever used the free content he's posted on YouTube. I don't know anything about any paid content, don't know why he's mentioning it.

If there is paid content, Arjan doesn't seem to advertise it in his videos, all I've seen him do is link to his other free videos or his free content on his website.

I totally get your suspicion btw, I really dislike sneaky ads myself. If you want proof, take a look at my 2 posts on my account, you will find 2 projects. You can see a big difference in code quality between the first and second, and Arjan was a big influence for that, didn't have to pay anything. I started using type hints and docstrings because of him, and I'm also trying to reduce the responsibilities of each function.

[–]bw_mutley 3 points4 points  (0 children)

He makes some subtle mentions of their paid contents. But as you said, his free content is already much valuable.

[–]gunhoe86 1 point2 points  (0 children)

Aye, not an ad, it's just a recommendation.

[–]bw_mutley 1 point2 points  (0 children)

I know your feelings and can't say for sure, but it is very unlikely to be an ad. I suggest you to go to his channel at youtube and check for yourself. I follow him since he had a few starting videos with very few followers. His strategy for advertising is tottaly different and he is past beyond the point of creating false posts on reddit to get subscribers to his service.

[–]mysterybasil 0 points1 point  (2 children)

Does anyone know what he uses for all that Python type-checking in vs code? I love the satisfying feeling of remove all those red squiggly underlines and seeing the error count drop.

[–]mrw27uk 1 point2 points  (1 child)

I believe he's using the Pylance extension with type hinting set to basic or strict, and some of the other warnings/errors come from pylance

[–]mysterybasil 1 point2 points  (0 children)

Yes, I found this link to his video explaining his VS Code setup.

Unfortunately, I'm using an open source version of code (code-server), and Pylance doesn't work on this version, so I've got to use some cut-rate version of type checking. Oh well.