• 0 Posts
  • 50 Comments
Joined 1 year ago
cake
Cake day: August 14th, 2023

help-circle


  • If you used good objects, you’ll only have to make the change in one place

    IMO that’s generally a retroactive statement because in practice have to be lucky for that to be true. An abstraction along one dimension – even a good one, will limit flexibility in some other dimension.

    Occasionally, everything comes into alignment and an opportunity appears to reliably-ish predict the correct abstraction the future will need.

    Most every other time, you’re better off avoiding the possibility of the really costly bad abstraction by resisting the urge to abstract preemptively.




  • IMO mathematical/logical/abstract thinking is critical for programming well, but IMO that’s different from “math degree” math.

    Software as a means to an end can be used in almost every domain, so proficiency within that applicable domain is often either useful or necessary. That is to say, “math degree” math is likely needed for 3d rendering (certain games), scientific computation (incl machine learning), etc, but maybe not, otherwise. It depends on what software you’re trying to build.

    To be more specific, general programming is definitely and specifically different from trig and calc. However, because math is also broad, “mathy” concepts like type theory, relational algebra, set theory are considered important for programming, even if only informally or indirectly so.






  • IMO factory functions are totally fine – I hesitate to even give them a special name b/c functions that can return an object are not special.

    However I think good use cases for Factory classes (and long-lived stateful instances of) are scarce, often being better served using other constructs.









  • wanted to add something to the end of a for-loop, but had too little indentation

    To address this, I prefer reducing length & depth of nested code, so the for/while is rarely ever not visible along with everything inside it. Others have success with editors that draw indentation lines.

    opening up new/anonymous scopes

    I occasionally use Python nested functions for this purpose


  • I find it’s possible to operate Python as a statically typed language if you wanted, though it takes some setup with external tooling. It wasn’t hard, but had to set up pyright, editor integration, configuration to type check strictly and along with tests, and CI.

    I even find the type system to be far more powerful than how I remembered Java’s to be (though I’m not familiar with the newest Java versions).