Compare commits

...

10 Commits

Author SHA1 Message Date
Charles-Axel Dein 1595daf141
Add open source 2024-02-17 10:28:24 -05:00
Charles-Axel Dein 95c5f209a4
Add how to study 2024-02-12 22:28:06 -05:00
Charles-Axel Dein b29d1a4ed6
Add CI and public speaking 2024-02-04 22:20:22 -05:00
Charles-Axel Dein b5be046aa0
Add Marketing and Product Management 2024-01-29 13:22:11 -05:00
Charles-Axel Dein 27e2a6f19f
Add postgres cheats 2024-01-22 08:40:30 -05:00
Charles-Axel Dein bf33b379b3
Split out Postgres section 2024-01-16 08:43:37 -05:00
Charles-Axel Dein a0644338ba
Add optimization 2023-12-17 23:06:19 -05:00
Charles-Axel Dein 66e5258c69
Add career map 2023-12-03 14:36:10 -05:00
Charles-Axel Dein 6c7ec10260
Add browser debugging tips 2023-11-20 08:45:12 -05:00
Charles-Axel Dein 3f7c2b97d3
Add unicode in 2023 2023-10-29 22:31:53 -04:00
1 changed files with 74 additions and 6 deletions

View File

@ -8,6 +8,7 @@
- [Must-read books](#must-read-books)
- [Must-read articles](#must-read-articles)
- [Other general material and list of resources](#other-general-material-and-list-of-resources)
- [Other lists](#other-lists)
- [Books](#books)
- [Articles](#articles)
- [Axioms](#axioms)
@ -24,6 +25,7 @@
- [Business](#business)
- [Cache](#cache)
- [Career growth](#career-growth)
- [Choosing your next/first opportunity](#choosing-your-nextfirst-opportunity)
- [Getting to Staff Eng](#getting-to-staff-eng)
- [Characters sets](#characters-sets)
- [Clouds](#clouds)
@ -32,7 +34,10 @@
- [Communication](#communication)
- [Compilers](#compilers)
- [Configuration](#configuration)
- [Continuous Integration (CI)](#continuous-integration-ci)
- [Databases](#databases)
- [NoSQL](#nosql)
- [Postgres](#postgres)
- [Data formats](#data-formats)
- [Data science/data engineering](#data-sciencedata-engineering)
- [Debugging](#debugging)
@ -52,6 +57,7 @@
- [Exercises](#exercises)
- [Experimentation](#experimentation)
- [Functional programming (FP)](#functional-programming-fp)
- [Games development](#games-development)
- [Graphics](#graphics)
- [Hardware](#hardware)
- [HTTP](#http)
@ -68,11 +74,13 @@
- [Low-level, assembly](#low-level-assembly)
- [Machine learning/AI](#machine-learningai)
- [Math](#math)
- [Marketing](#marketing)
- [Network](#network)
- [Observability (monitoring, logging, exception handling)](#observability-monitoring-logging-exception-handling)
- [Logging](#logging)
- [Error/exception handling](#errorexception-handling)
- [Monitoring](#monitoring)
- [Open source](#open-source)
- [Operating system (OS)](#operating-system-os)
- [Over-engineering](#over-engineering)
- [Performance](#performance)
@ -81,12 +89,14 @@
- [Perspective](#perspective)
- [Privacy](#privacy)
- [Problem solving](#problem-solving)
- [Product management for software engineers](#product-management-for-software-engineers)
- [Project management](#project-management)
- [Programming languages](#programming-languages)
- [Python](#python)
- [JavaScript](#javascript)
- [Garbage collection](#garbage-collection)
- [Programming paradigm](#programming-paradigm)
- [Public speaking (presenting)](#public-speaking-presenting)
- [Reading](#reading)
- [Refactoring](#refactoring)
- [Regex](#regex)
@ -238,6 +248,10 @@ There are some free books available, including:
## Other general material and list of resources
### Other lists
- [liuchong/awesome-roadmaps: A curated list of roadmaps.](https://github.com/liuchong/awesome-roadmaps)
### Books
- [The Imposter's Handbook](https://bigmachine.io/products/the-imposters-handbook) - \$30. From the author: "Don't have a CS Degree? Neither do I - That's why I wrote this book."
@ -267,6 +281,7 @@ There are some free books available, including:
- Cross-functional understanding is critical in modern tech companies
- Helps to avoid underestimating the importance and difficulty other roles
- Helps you to be strategic in your interaction with people in that role
- [Teach Yourself Programming in Ten Years](https://norvig.com/21-days.html)
### Axioms
@ -527,6 +542,11 @@ Biases don't only apply to hiring. For instance, the fundamental attribution bia
- Look to Other Fields, Learn From Other Fields
- Be Careful About Productivity Tips
- [Senior Engineers are Living in the Future](https://www.zerobanana.com/essays/living-in-the-future/)
- [What would a map of your career look like?](https://tomcritchlow.com/2023/04/26/career-maps/)
#### Choosing your next/first opportunity
- [Career Decisions - by Elad Gil - Elad Blog](https://blog.eladgil.com/p/career-decisions)
#### Getting to Staff Eng
@ -548,6 +568,7 @@ Biases don't only apply to hiring. For instance, the fundamental attribution bia
### Characters sets
- [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)](http://www.joelonsoftware.com/articles/Unicode.html)
- [The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!)](https://tonsky.me/blog/unicode/)
### Clouds
@ -618,13 +639,16 @@ See also the Writing section
- Most modern config formats suck
- Use a real programming language
### Continuous Integration (CI)
- [Continuous Integration](https://martinfowler.com/articles/continuousIntegration.html), MartinFowler.com
### Databases
See also the SQL section.
- [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
- [PACELC theorem](https://en.wikipedia.org/wiki/PACELC_theorem): "in case of network partitioning (P) in a distributed computer system, one has to choose between availability (A) and consistency (C) (as per the CAP theorem), but else (E), even when the system is running normally in the absence of partitions, one has to choose between latency (L) and consistency (C)."
- [Safe Operations For High Volume PostgreSQL](https://www.braintreepayments.com/blog/safe-operations-for-high-volume-postgresql/) (this is for PostgreSQL but works great for other DBs as well).
- [Zero downtime database migrations](https://blog.rainforestqa.com/2014-06-27-zero-downtime-database-migrations/) (code examples are using Rails but this works great for any programming language)
- [Algorithms Behind Modern Storage Systems](https://queue.acm.org/detail.cfm?id=3220266), ACM Queue
- [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/)
@ -635,11 +659,7 @@ See also the SQL section.
- [Course introduction — MySQL for Developers](https://planetscale.com/learn/courses/mysql-for-developers/introduction/course-introduction), PlanetScale
- [How Query Engines Work](https://howqueryengineswork.com/00-introduction.html)
Exercises:
- [PostgreSQL exercises](https://pgexercises.com/)
NoSQL:
#### NoSQL
- [NOSQL Patterns](http://horicky.blogspot.nl/2009/11/nosql-patterns.html)
- [NoSQL Databases: a Survey and Decision Guidance](https://medium.baqend.com/nosql-databases-a-survey-and-decision-guidance-ea7823a822d#.9fe79qr90)
@ -649,6 +669,15 @@ NoSQL:
- [NoSQL Design for DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-general-nosql-design.html)
- [Redis Explained](https://architecturenotes.co/redis/)
#### Postgres
- [Safe Operations For High Volume PostgreSQL](https://www.braintreepayments.com/blog/safe-operations-for-high-volume-postgresql/) (this is for PostgreSQL but works great for other DBs as well).
- [Transaction Isolation in Postgres, explained](https://www.thenile.dev/blog/transaction-isolation-postgres)
- [PostgreSQL exercises](https://pgexercises.com/)
- [Operations cheat sheet](https://wiki.postgresql.org/wiki/Operations_cheat_sheet)
- [Postgres is Enough](https://gist.github.com/cpursley/c8fb81fe8a7e5df038158bdfe0f06dbb)
- [Don't Do This](https://wiki.postgresql.org/wiki/Don't_Do_This)
### Data formats
- [Falsehoods Programmers Believe About Phone Numbers](https://github.com/googlei18n/libphonenumber/blob/master/FALSEHOODS.md), Google's `libphonenumber`.
@ -657,6 +686,7 @@ NoSQL:
- [Falsehoods Programmers Believe About Names](https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/)
- [kdeldycke/awesome-falsehood](https://github.com/kdeldycke/awesome-falsehood): falsehoods programmers believe in
- [Understanding UUIDs, ULIDs and String Representations](https://sudhir.io/uuids-ulids)
- [Falsehoods Programmers Believe About Falsehoods Lists](https://kevin.deldycke.com/2016/12/falsehoods-programmers-believe-about-falsehoods-lists/)
### Data science/data engineering
@ -916,6 +946,7 @@ The best way to learn is to learn by doing.
- [build-your-own-x](https://github.com/codecrafters-io/build-your-own-x): compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch
- Richard Feynman: "what I cannot create, I do not understand"
- [The elevator programming game](http://play.elevatorsaga.com/)
- [Challenging projects every programmer should try](https://austinhenley.com/blog/challengingprojects.html), Austin Z. Henley
- [Challenging projects every programmer should try](http://web.eecs.utk.edu/~azh/blog/challengingprojects.html): text editor, space invaders, compiler (Tiny Basic), mini OS, spreadsheet, video game console emulator.
- [More challenging projects every programmer should try](https://web.eecs.utk.edu/~azh/blog/morechallengingprojects.html): ray tracer, key-value store web API, web browser, stock trading bot.
- [Lets Build a Regex Engine](https://kean.blog/post/lets-build-regex)
@ -957,6 +988,10 @@ Practice:
- [hemanth/functional-programming-jargon](https://github.com/hemanth/functional-programming-jargon): jargon from the functional programming world in simple terms
- [The definitive guide to learning functional programming](https://forum.exercism.org/t/the-definitive-guide-to-learning-functional-programming/3254), Exercism
### Games development
- [Introduction · Joys of Small Game Development](https://abagames.github.io/joys-of-small-game-development-en/)
### Graphics
- [Text Rendering Hates You](https://faultlore.com/blah/text-hates-you/)
@ -1148,6 +1183,17 @@ Learn how to learn!
- Fixing a bug can be milestone
- [Why writing by hand is still the best way to retain information](https://stackoverflow.blog/2022/11/23/why-writing-by-hand-is-still-the-best-way-to-retain-information/), StackOverflow
- 🎞 [Making Badass Developers - Kathy Sierra (Serious Pony) keynote](https://www.youtube.com/watch?v=FKTxC9pl-WM&t=2s&ab_channel=O%27Reilly)
- [How to study](https://cse.buffalo.edu/~rapaport/howtostudy.html) (with lots of cartoons from Calvin & Hobbes!)
- Manage your time
- Take notes in class & rewrite them at home
- Study hard subjects first & study in a quiet place
- Read actively & slowly, before & after class
- Do your homework
- Study for exams
- Take Exams
- Do research & write essays
- Do I really have to do all this?
- Are there other websites that give study hints?
About flashcards:
@ -1228,6 +1274,10 @@ Richard Feynman's Learning Strategy:
- 🏙 [Statistics for Hackers](https://speakerdeck.com/jakevdp/statistics-for-hackers)
### Marketing
- [goabstract/Marketing-for-Engineers](https://github.com/goabstract/Marketing-for-Engineers)
### Network
- [The Great Confusion About URIs](https://benbernardblog.com/the-great-confusion-about-uris/)
@ -1275,6 +1325,10 @@ Richard Feynman's Learning Strategy:
- [Simple Anomaly Detection Using Plain SQL](https://hakibenita.com/sql-anomaly-detection)
- [How percentile approximation works (and why it's more useful than averages)](https://www.timescale.com/blog/how-percentile-approximation-works-and-why-its-more-useful-than-averages/)
### Open source
- [Non-code contributions are the secret to open source success](https://github.com/readme/featured/open-source-non-code-contributions)
### Operating system (OS)
- 📖 [The Linux Programming Interface: A Linux and UNIX System Programming Handbook](http://www.amazon.com/The-Linux-Programming-Interface-Handbook/dp/1593272200): already mentioned above.
@ -1325,6 +1379,7 @@ Richard Feynman's Learning Strategy:
- Data dominates.
- [Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust](https://benhoyt.com/writings/count-words/): a great way to learn about measuring performance.
- [The Mathematical Hacker](https://www.evanmiller.org/mathematical-hacker.html)
- [Four Kinds of Optimisation](https://tratt.net/laurie/blog/2023/four_kinds_of_optimisation.html)
### Personal knowledge management (PKM)
@ -1366,6 +1421,13 @@ Check out this section on my [list of management resources, "Personal productivi
- 🎞 [Hammock Driven Development](https://www.youtube.com/watch?v=f84n5oFoZBc&ab_channel=ClojureTV), Rick Hickey
- A classic talk on problem solving.
### Product management for software engineers
See the [Product management section on my entrepreneurship-resources list of resources](https://github.com/charlax/entrepreneurship-resources#product-management).
- Checkout this newsletter produced by Posthog: [Product for Engineers](https://newsletter.posthog.com/)
### Project management
See the [Project management section on my engineering-management list of resources](https://github.com/charlax/engineering-management#project-management).
@ -1425,6 +1487,10 @@ JavaScript is such a pervasive language that it's almost required learning.
- I draw the line between declarative and non-declarative at whether you can trace the code as it runs. Regex is 100% declarative, as its untraceable while the pattern is being executed.
- 🎞 [Imperative vs Declarative Programming](https://www.youtube.com/watch?v=E7Fbf7R3x6I&ab_channel=uidotdev)
### Public speaking (presenting)
- [Speaking for hackers](https://sfhbook.netlify.app/)
### Reading
- [Papers we love](https://github.com/papers-we-love/papers-we-love): papers from the computer science community to read and discuss. Can be a good source of inspiration of solving your design problems.
@ -1597,6 +1663,7 @@ List of resources:
- [Lost at SQL](https://lost-at-sql.therobinlord.com/), an SQL learning game
- [Joins 13 Ways](https://justinjaffray.com/joins-13-ways/?a=b)
- [spandanb/learndb-py](https://github.com/spandanb/learndb-py): learn database internals by implementing it from scratch.
- [SQL for the Weary](https://gvwilson.github.io/sql-tutorial/)
### System administration
@ -1843,6 +1910,7 @@ Check out this section on my [list of management resources, "Personal productivi
- [136 facts every web dev should know](https://www.baldurbjarnason.com/2021/100-things-every-web-developer-should-know/)
- [Checklist - The A11Y Project](https://www.a11yproject.com/checklist/) for accessibility
- [DevTools Tips](https://devtoolstips.org/)
- [67 Weird Debugging Tricks Your Browser Doesn't Want You to Know](https://alan.norbauer.com/articles/browser-debugging-tricks)
### Writing (communication, blogging)