1. Beyond PEP 8 https://www.youtube.com/watch?v=wf-BqAjZb8M
2. Transforming Code into Beautiful, Idiomatic Python https://www.youtube.com/watch?v=OSGv2VnC0go
Your code is gonna be full of standard library and framework code, your code might as well blend in and be roughly intuitive to people who already know them.
It had "Java" in the name.... right??? right!!??
https://www.cs.virginia.edu/~evans/cs655/readings/ewd498.htm...
> It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
> The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.
---
Long ago, I learned C in college. My AI class was taught in LISP and I had one of the emacs hackers in the lab look over my assignment before I handed it in - "You've written some beautiful C in LISP."
It took me many years to get back to a LISP (Clojure in this case) before I wrapped my head around functional programming and the idea of passing functions around to operate on data rather than data around that has been operated on (I recently blew the mind of one of my coworkers who's only written Java when I had a Map<String, Function>).
It takes a bit to go from "how do I do X in {language}?" and think of that as a series of steps in Java or Python or whatever to thinking "how do I solve the problem of Y in {language}?" without being constrained by the language.
I've personally found that writing the same program in multiple languages is the best way to learn how to move out of "how do I do X in {language}?"
Write the Leibniz formula for π or e in Java, in Python, in Clojure (or Lisp), and in Forth. Don't try to write it the same way - use the expressiveness (or lack of) of the language to solve the problem. Does it have rational numbers? How are sequences defined and built? How does it handle recursion if you use that?
---
Epigrams on Programming - Alan Perlis, September 1982
http://pu.inf.uni-tuebingen.de/users/klaeren/epigrams.html
> #19 A language that doesn't affect the way you think about programming, is not worth knowing.
Learning the fundamentals of interpreters, compilers, etc. can also give understanding transferable between almost all languages.
But to be fair, there is some pushback to the complexity - libs like Alpinejs and Svelte are a joy to work with because they try to keep it as simple and magicless as possible. So there is hope.
At least until I see someone build a landing page with npx create-reac-app