# My favorite blogs and articles - [Robert Nystrom's](https://journal.stuffwithstuff.com/) two (free to read online) books [Crafting Interpreters](https://craftinginterpreters.com/) and [Game Programming Patterns](https://gameprogrammingpatterns.com/) are a must-read for all programmers. It doesn't matter if you aren't interested in compilers or game development, these two books will completely level up the way you think about and build programs. IMO [Game Programming Patterns](https://gameprogrammingpatterns.com/) is a much better introduction to design patterns than the (in?)famous ["Gang of Four" Design Patterns](https://en.wikipedia.org/wiki/Design_Patterns) book - [Julia Evans](https://jvns.ca/) has some of the most approachable articles on systems programming, a topic that can be pretty intimidating. Her [wizard zines](https://wizardzines.com/) are great guides on how software engineering fundamentals (git, linux, etc.) work. Her zine/talk [So you want to be a Wizard](https://wizardzines.com/zines/wizard/) is awesome and embodies the learning spirit that I think is so awesome about software engineering. - [Amit's Game Programming Information](http://www-cs-students.stanford.edu/~amitp/gameprog.html) Was one of my first and favorite introductions to algorithms and a must read if you are interested in game development. Maybe the best [introduction to A*](https://www.redblobgames.com/pathfinding/a-star/introduction.html) on the internet. - [MIT OCW 6.00 Introduction to Computer Science and Programming ](https://dspace.mit.edu/bitstream/handle/1721.1/150580/6-00-fall-2008/contents/index.htm?sequence=8&isAllowed=y) This is where I started. It's a amazing course for learning fundamentals for computer science, and many thanks for Prof. Eric Grimson, Prof. John Guttag, and MIT OCW for making this course freely accessible online. Its an amazing course for anyone that's starting out in their CS/SWE journey. And I'd recommend it to anyone who has a more practical/bootcamp background in programming and wants to build a computer science foundation. MIT OCW continues to publish [newer versions of this course](https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/) which might be easier to follow. - [The Standup](https://www.youtube.com/playlist?list=PL2Fq-K0QdOQiJpufsnhEd1z3xOv2JMHuk) podcast is hilarious. - [Casey Muratori](https://caseymuratori.com/about)'s [Handmade Hero](handmadehero.org) is a must watch for anyone who wants a deep dive into the fascinating world of how game engines work. His articles at [Computer, Enhance!](https://www.computerenhance.com/) are also worth a read if you are interested in practical, high performance programming (or if you just want to write better C). - Corporate engineering blogs can be difficult to follow because of their poor signal-to-noise ratio (i.e. interesting engineering articles vs. "check out our new features" articles), but there's a few gems that show how the largest companies manage data at scale: - ["How Discord Stores Billions of Messages](https://discord.com/blog/how-discord-stores-billions-of-messages) - ["How Discord Stores Millions of Message](https://discord.com/blog/how-discord-stores-trillions-of-messages) - [# Amazon’s Exabyte-Scale Migration from Apache Spark to Ray on Amazon EC2](https://aws.amazon.com/blogs/opensource/amazons-exabyte-scale-migration-from-apache-spark-to-ray-on-amazon-ec2/) - [The Composable Codex](https://voltrondata.com/codex) from Voltron Data completely changed how I understand modern data systems. I highly recommend it for anyone who's interested in modern databases/data warehouses/data lakehouses - [How to be a -10x Engineer](https://taylor.town/-10x) You gotta not be awful before you're good. - Don't talk to me about AI unless you've taken a course in [Linear Algebra](https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/), [Artificial Intelligence](https://ocw.mit.edu/courses/6-034-artificial-intelligence-fall-2010/) , and [Machine Learning](https://ocw.mit.edu/courses/6-036-introduction-to-machine-learning-fall-2020/) - Before you reach for 50 different web frameworks, there's probably a simpler way to do it in [html](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) and [css](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference). Also, it's `current_year`, use [flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) and/or [grid](https://css-tricks.com/snippets/css/complete-guide-grid/) - If you write javascript, you have a responsibility to know what the [event loop](https://www.youtube.com/watch?v=8aGhZQkoFbQ) is. - You gotta check you [Chip Huyen](https://huyenchip.com/) if you're approaching machine learning from a software engineering background. If you already have a ML background, you've probably already read her books [Designing Machine Learning Systems](https://www.amazon.com/Designing-Machine-Learning-Systems-Production-Ready/dp/1098107969?&_encoding=UTF8&tag=chiphuyen-20&linkCode=ur2&linkId=0a1dbab0e76f5996e29e1a97d45f14a5&camp=1789&creative=9325), [AI Engineering](https://www.amazon.com/dp/1098166302?&linkCode=sl1&tag=chiphuyen-20&linkId=0a4e5ad4b14080d44c42640550a9291e&language=en_US&ref_=as_li_ss_tl), and [Introduction to Machine Learning Interviews](https://huyenchip.com/ml-interviews-book/)