This should be much more wide-spread. The hardest part of programming is reading someone else’s code.
More people should learn to do git rebase -i
, it’s a simple way to re-organise your commits to make sure that they tell a story to someone going through the PR commit by commit. It only takes a minute and can save your colleagues so much time and increase the quality of the review process.
https://learngitbranching.js.org Is a very accessible browser game that I found useful on my Git journey to start to grasp the underlying structures and operations such as rebase.
Larger projects in Python (like homeassistant) tend to use type-hints and enforce them through linters. Essentially, these linters (with a well-setup IDE) turn programming in large Python projects into a very similar experience to programming a statically typed language, except that Python does not need to be compiled (and type-checked) to run it. So you can still run it before you have satisfied the linters, you just can’t commit or push or whatever (depending on project setup).
And yes, these linters and the Python type system are obviously not as good as something like a Go or Rust compiler. But then again, Python is a generalist language: it can do everything, but excels at nothing.
Still, for those very hard bugs that everyone just hovers around and procrastinates, this is perfect advice!