├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 alexcancode 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [2024] Resources To Be A Better Software Engineer 2 | 3 | **Why does this exist?** 4 | 5 | Learning how to be a software engineer is already hard. Take a short-cut by following some of these great online resources. 6 | Definitely don't overwhelm yourself, just pick out what's interesting and check it out! 7 | 8 | Also be sure to [join the discord server](https://discord.com/invite/kZQVjnJcW9) to stay updated on any new software engineering resources! 9 | 10 | # Mastering System Design 11 | 12 | ### 📖 Books to read 13 | 14 | 1. [Designing Data-Intensive Applications by Martin Kleppmann](https://amzn.to/42w5SGf) 15 | 2. [System Design Interview by Alex Xu](https://bytebytego.com?fpr=alexcancode) 16 | 3. [Clean Architecture by Robert C. Martin](https://amzn.to/3STeoe7) 17 | 4. [Building Microservices: Designing Fine-Grained Systems by Sam Newman](https://amzn.to/3uk8A55) 18 | 5. [Software Architecture: The Hard Parts by Neal Ford, Mark Richards, Pramod Sadalage and Zhamak Dehghani](https://amzn.to/3uiXSfb) 19 | 20 | ### 📄 Newsletters to stay updated 21 | 22 | 1. [Byte-Sized Design](https://bytesizeddesign.substack.com/) by Alex Nguyen 23 | 1. [System Design Newsletter](https://newsletter.systemdesign.one/) by Neo Kim 24 | 1. [ByteByteGo](https://blog.bytebytego.com/) by Alex Xu 25 | 1. [System Design Codex](https://newsletter.systemdesigncodex.com/) by Saurabh Dashora 26 | 27 | ### 💻 49 Company engineering blogs 28 | 29 | You can find 30+ more at [Byte-sized Design](https://bytesizeddesign.substack.com/) 30 | 31 | 1. [Microsoft Engineering Blog](https://devblogs.microsoft.com/) 32 | 1. [MongoDB Blog](https://www.mongodb.com/blog) 33 | 1. [Mozilla Hacks Blog](https://hacks.mozilla.org/) 34 | 1. [MuleSoft Blog](https://blogs.mulesoft.com/) 35 | 1. [Netflix Tech Blog](https://netflixtechblog.com/) 36 | 1. [Nordstrom Technology Blog](https://technology.nordstrom.com/) 37 | 1. [Nutanix Blog](https://www.nutanix.com/blog) 38 | 1. [Nvidia Blog](https://blogs.nvidia.com/blog/) 39 | 1. [NVIDIA Developer Blog](https://developer.nvidia.com/blog) 40 | 1. [Oculus Blog](https://www.oculus.com/blog/) 41 | 1. [OVHcloud Blog](https://www.ovh.com/world/blog/) 42 | 1. [PagerDuty Blog](https://www.pagerduty.com/blog/) 43 | 1. [Palantir Blog](https://www.palantir.com/blog/) 44 | 1. [PayPal Engineering Blog](https://www.paypal-engineering.com/) 45 | 1. [Pinterest Engineering Blog](https://medium.com/@Pinterest_Engineering) 46 | 1. [Quora Engineering Blog](https://www.quora.com/q/quoraengineering) 47 | 1. [Rackspace Technology Blog](https://blog.rackspace.com/) 48 | 1. [Red Hat Blog](https://www.redhat.com/en/blog) 49 | 1. [Red Hat Developer Blog](https://developers.redhat.com/blog/) 50 | 1. [Reddit Engineering Blog](https://redditblog.com/) 51 | 1. [Riot Games Engineering](https://engineering.riotgames.com/) 52 | 1. [Salesforce Developer Blog](https://developer.salesforce.com/blogs/) 53 | 1. [Salesforce Engineering Blog](https://engineering.salesforce.com/) 54 | 1. [SAP Blogs](https://blogs.sap.com/) 55 | 1. [SAP Community Blogs](https://community.sap.com/topics/blogs) 56 | 1. [Shopify Engineering Blog](https://engineering.shopify.com/) 57 | 1. [Slack Engineering Blog](https://slack.engineering/) 58 | 1. [Snap Engineering Blog](https://eng.snap.com/) 59 | 1. [Splice Engineering Blog](https://splice.com/blog/) 60 | 1. [Spotify Engineering Blog](https://engineering.atspotify.com/) 61 | 1. [Square Engineering Blog](https://developer.squareup.com/blog) 62 | 1. [SquareSpace Engineering Blog](https://engineering.squarespace.com/) 63 | 1. [Stripe Engineering Blog](https://stripe.com/blog/engineering) 64 | 1. [Symantec Blogs](https://symantec-enterprise-blogs.security.com/) 65 | 1. [Target Tech Blog](https://tech.target.com/) 66 | 1. [The New York Times Engineering Blog](https://open.nytimes.com/tagged/engineering) 67 | 1. [ThoughtWorks Insights](https://www.thoughtworks.com/insights) 68 | 1. [Trello Blog](https://blog.trello.com/) 69 | 1. [Twilio Engineering Blog](https://www.twilio.com/blog) 70 | 1. [Twitch Engineering Blog](https://blog.twitch.tv/tagged/engineering) 71 | 1. [Twitter Engineering Blog](https://blog.twitter.com/engineering) 72 | 1. [Uber Engineering Blog](https://eng.uber.com/) 73 | 1. [VMware Blogs](https://blogs.vmware.com/) 74 | 1. [VMware Radius Blog](https://blogs.vmware.com/radius/) 75 | 1. [VMware Tanzu Blog](https://tanzu.vmware.com/content/blog) 76 | 1. [Walmart Labs Blog](https://medium.com/walmartlabs) 77 | 1. [Yelp Engineering Blog](https://engineeringblog.yelp.com/) 78 | 1. [Zendesk Engineering Blog](https://engineering.zendesk.com/) 79 | 1. [Zillow Engineering Blog](https://www.zillowgroup.com/tech/) 80 | 81 | 82 | ## 🏀 Newsletters senior engineers read to lead 83 | 84 | - 🔧 [Craft Better Software](https://craftbettersoftware.com/) by Daniel Moka 85 | - 💻 [Coding Challenges](https://codingchallenges.substack.com/) by John Crickett 86 | - 🔍 [Dev Details](https://blog.devdetails.com/) by Mike Thornton 87 | - 📘 [Engineer’s Codex](https://read.engineerscodex.com/) by Leonardo Creed 88 | - 🖥️ [Front-End Focus](https://frontendfocus.substack.com/) by Mads Brodt 89 | - 📈 [High Growth Engineer](https://careercutler.substack.com/) by Jordan Cutler 90 | - 🍔🧠 [Hungry Minds](https://hungryminds.dev) by Alexandre Zajac 91 | - 🚀 [Level up software engineering](https://levelupsoftwareengineering.substack.com/) by Caleb Mellas 92 | - 🛠️ [Maximiliano Contieri - Software Design](https://maximilianocontieri.com/newsletter) by Maximiliano Contieri 93 | - 👨‍💻 [The Developing Dev](https://www.developing.dev/) by Ryan Peterman 94 | - 💡 [The Modern Software Developer](https://tmsd.substack.com/) by Richard Donovan 95 | - 🛠️ [The Pragmatic Engineer](https://newsletter.pragmaticengineer.com/) by Gergely Orosz 96 | - 🔷 [The T-Shaped Dev](https://thetshaped.dev/) by Petar Ivanov 97 | - 📈 [Saiyan Growth Letter](https://www.saiyangrowthletter.com/) by Tiger Abrodi 98 | - 🧹 [Software Design: Tidy First?](https://tidyfirst.substack.com/) by Kent Beck 99 | 100 | 101 | # Algorithm Learning 102 | 103 | ### [Introduction to Algorithms (4th Edition)](https://amzn.to/3S4FlN2) 104 | This is the most common and best textbook anyone could use to learn algorithms. It’s also the textbook my university used personally to learn the core and essential algorithms to most coding problems. 105 | 106 | The 4th edition was recently released and is still relevant to MIT students. If you need structure and a traditional classroom setting to study, follow MIT’s algorithm course here. 107 | 108 | ### [William Fiset — Graph Theory](https://www.youtube.com/watch?v=DgXR2OWQnLc&list=PLDV1Zeh2NRsDGO4--qE8yH72HFL1Km93P) 109 | Graph theory does come up in interviews (and was a question I had at both Bloomberg and Google). Stay prepared and follow William Fiset’s graph theory explanation. 110 | 111 | The diagrams are comprehensive and the step-by-step explanations are the best I’ve ever seen on the topic. 112 | 113 | ### [CSES.fi Handbook](https://cses.fi/book/book.pdf) 114 | This handbook is for people who are strongly proficient with most Leetcode algorithms. It’s a free resource that strongly complements the CSES.fi curriculum. 115 | 116 | ### [Competitive Programming 4th Ed.](https://amzn.to/3s3eOVx) 117 | For the most experienced algorithm enthusiasts, this book will cover every niche data structure and algorithm that could possibly be asked in any coding interview. This level of preparation is not generally needed for FAANG type companies but can show up if you’re considering hedge fund type companies. 118 | 119 | ## Interviewing Resources 120 | 121 | ### [Cracking the Coding Interview (CTCI)](https://amzn.to/45AH7sf) 122 | This is the simplest book to get anyone started in studying for coding interviews. 123 | 124 | If you’re an absolute beginner, I recommend you to start here. The questions have very details explanations that are easy to understand with basic knowledge of algorithms and data structures. 125 | 126 | ### [Elements of Programming Interviews](https://amzn.to/46XaGoS) 127 | If you’re a little more experienced, every question in this book is at the interviewing level of all large technology companies. 128 | 129 | If you’ve mastered the questions in this book, then you are more than ready for the average technology interview. The book is not as beginner friendly as CTCI but it does include a study plan depending on how much you need to prepare for your interviews. This is my personal favorite book I carried everywhere in university. 130 | 131 | ### [NeetCode blind 75](https://www.youtube.com/watch?v=KLlXCFG5TnA&list=PLot-Xpze53ldVwtstag2TL4HQhAnC8ATf) 132 | Blind has a list of 75 questions that is generally enough to solve most coding interviews. It’s a very curated and focused list for the most essential algorithms to leverage your time. 133 | 134 | The playlist above is one of the clearest explanations I’ve ever seen and highly recommend if you need an explanation on any of the problems. 135 | 136 | ### [CSES Problem Set](https://cses.fi/problemset/) 137 | These problems are hard. Really hard for anyone who hasn’t practiced algorithms and is not beginner friendly. But if you are able to complete the sorting and searching section, you will be more capable than the average LeetCode user and be more than ready for your coding interview. 138 | 139 | Consider this if you’re comfortable with LeetCode medium questions and find the questions in CTCI too easy. 140 | 141 | 142 | 143 | 144 | # Closing Thoughts 145 | Want to suggest your own resource? Feel free to make a pull request anytime! 146 | --------------------------------------------------------------------------------