#computing #programming #vicarious-learning # [[Epistemic status]] #shower-thought # [[Vicarious learning]] - Software engineering > Hatchlings do not have the direct experience of flight but learn through observation of their parents’ behavior and techniques, mimicking them until they develop the ability to fly on their own. Similarly, humans can learn and acquire new skills through observing and modeling the behaviors and techniques of others. [[Paul Graham]] adds: >Hackers, likewise, can learn to program by looking at good programs—not just at what they do, but at the source code. One of the less publicized benefits of the open source movement is that it has made it easier to learn to program. Vicarious learning is the process of learning through observation of others. This type of learning does not require direct experience, but rather involves observing and modeling the behavior, thoughts, and emotions of others. It can occur through direct observation of others or through media such as books, movies, or television. Vicarious learning is a powerful tool for learning new skills, acquiring knowledge, and shaping behavior. Vicarious learning can be applies to software engineering, by looking at the best [[Programming|code]] publicly available on [[The Internet]]. ## Stripe https://github.com/stripe The OpenAPI based docs & co is just ♥️ ## Google https://github.com/googleapis https://github.com/googleapis/googleapis/tree/master/google ### Shared types It's common that [[Programming|code]] [[Eco-system]] need to share types, solution: protobuf, example: https://github.com/googleapis/nodejs-billing. Python eq https://github.com/googleapis/python-billing but fake typed Python is a fucking pain in the ass, worse than Typescript. Nothing worth a good old Rust 🥰 I don't see any other company that use protos for all kind of types like Google do though? #### TLDR stop implementing types in code, just write protos (ok not 100% true, for clean public API, it seems a good practice to add public types on top of protos generated code) ### Firebase https://github.com/firebase/firebase-admin-node/tree/master/.github/actions Interesting GH actions to automatically notify everywhere ## Algolia https://github.com/algolia https://github.com/algolia/algoliasearch-client-javascript Good documentation ### Excalidraw https://github.com/excalidraw/excalidraw ## Sentry ### Experiment APIs ![[Pasted image 20221201111920.png]] `_experiments` I like this way of trying out experiments without breaking everything. Also the fact that it lies in a dictionary which is a data structure with a lot of degree of freedom makes it really easy to run experiments and stop experiments. ## Nice clis ### gcloud ping update when using cli (prob some api call version check semver thingy) ![[Pasted image 20230131100950.png]] cool changelog in cli gcloud + size etc ![[Pasted image 20230131101010.png]] ## Dockers https://github.com/docker-library/postgres/blob/master/docker-entrypoint.sh ## Fastapi https://github.com/zhanymkanov/fastapi-best-practices ## Supabase https://github.com/supabase/supabase-js interesting way of doing isomorphism ## Open source https://www.moritzplassnig.com/5-tricks-to-bootstrap-your-open-source-community/