https://github.com/mtdvio/every-programmer-should-know Skip to content Sign up * Why GitHub? + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} mtdvio / every-programmer-should-know Public * Notifications * Fork 4.8k * Star 49.3k * A collection of (mostly) technical things every software developer should know about CC-BY-4.0 License 49.3k stars 4.8k forks Star Notifications * Code * Issues 15 * Pull requests 16 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 2 branches 0 tags Code Latest commit @mr-mig mr-mig Merge pull request #164 from Goutham-AR/master ... a8d7c35 Apr 19, 2021 Merge pull request #164 from Goutham-AR/master Added the book 'Code Complete' under Practices category a8d7c35 Git stats * 249 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time CONTRIBUTING.md Update wording in CONTRIBUTING.md, closes #93 Dec 6, 2017 LICENSE Added CC-BY-4.0 License Oct 25, 2017 README.md Merge pull request #164 from Goutham-AR/master Apr 19, 2021 View code [ ] Every Programmer Should Know Introduction Falsehoods Algorithms Data Structures Numbers Strings Latency Time Memory Distributed Systems RegExp Security UX/Usability SEO Architecture Engineering Philosophy Practices Career Fine-tune Your Resume Open Source Remote Work Problem Solving Soft Skills Mental Health Papers on Programming Free Books on Programming Services [?] Licenses Where To Look For Further Info Coding Practice Sites [?] README.md Join our community for professional Software Developers and get more control over your life and career! --------------------------------------------------------------------- Every Programmer Should Know A collection of (mostly) technical things every software developer should know. [?] These are resources I can recommend to every programmer regardless of their skill level or tech stack Highly opinionated . Not backed by science. Comes in no particular order [?][?] U like it? it and share with a friendly developer! U don't like it? Watch the doggo P.S. You don't need to know all of that by heart to be a programmer. But knowing the stuff will help you become better! P.P.S. Contributions are welcome! --------------------------------------------------------------------- Introduction * Map of Computer Science * 40 Key Computer Science Concepts Explained In Layman's Terms Falsehoods * Awesome Falsehoods Curated list of falsehoods programmers believe in. Check for things you do not know about Strings, Addresses, Names, Numbers, Emails, Timezones and Dates and more. Algorithms * Big O Cheatsheet * Grokking Algorithms * Algorithms Visualization Data Structures * UC Berkeley, Data Structures Course * Foundations of Data Structures - EDX * Data Structures - Coursera * Mathematics for Computer Science - Eric Lehman Numbers * How to Count * Floating Point Guide * What Every Computer Scientist Should Know About Floating-Point Arithmetic * Basic Number Theory Every Programmer Should Know... Strings * Unicode and Character Sets * Homoglyphs * Unicode Common Locale Data Repository * ASCII * UTF-8 Latency * Interactive Latency Infographics * Latency Numbers Every Programmer Should Know Time * Some notes about time * The Problem with Timezones Memory * What every Programmer should know about memory Distributed Systems * Designing Data-Intensive Applications * Designs, Lessons and Advice from Building Large Distributed Systems * Time, Clocks and the Ordering of Events in a Distributed System * There is No Now * Jepsen: how different databases behave under partition * Fallacies of Distributed Computing Explained RegExp * RegexHQ * Learn regex the easy way Security * Security Programming * Rolling Your Own Crypto * Cryptographic Right Answers * An Open Letter to Developers Everywhere (About Cryptography) * Foundations of Security: What Every Programmer Needs to Know * OWASP Top 10 * Web Application Exploits and Defenses * Hashing, Encryption and Encoding UX/Usability * Don't Make Me Think: A Common Sense Approach to Web Usability * Inventing on Principle SEO * What Every Programmer Should Know About SEO Architecture * A Field Guide to Boxology * Out of the Tar Pit * No Silver Bullet -- Essence and Accidents of Software Engineering * Growing a Language * CQRS and Event Sourcing * Practical Object Oriented Design in Ruby * Evolutionary Software Architectures * System Design: A Primer * How JavaScript works: part-1, 2, 3, 4 * Entity-Component-System Architecture with Unity by example Engineering Philosophy * Category Theory in Life * Simple Made Easy * Speed In Software Development * #NoEstimates * The Myth of the Genius Programmer * Making Badass Developers * The Ten Rules of a Zen Programmer * The mythical 10x programmer * The Debugging Mindset * The Future of Programming * The Good Software Development Manifesto * All the Little Things Practices * Working Effectively with Legacy Code * Code Complete * Clean Code: A Handbook of Agile Software Craftsmanship * Test Driven Development: By Example * Going To Production Checklist * Release It! * Professor Frisby's Mostly Adequate Guide to Functional Programming * SICP: Structure and Interpretation of Computer Programs * Thirteen Ways of Looking at a Turtle * Programming Paradigms for Dummies: What Every Programmer Should Know * Learn X in Y Minutes Learn the basics of a language in a highly condensed way. * Hyperpolyglot Compare commonly used features of more or less similar languages side-by-side. Helps you to jump Python<->Ruby, Ocaml<->Haskell, etc. * Pomodoro for Programmers * Site Reliability Engineering Career * Levels FYI Salary stats for various tech companies. Better than Glassdoor. * 10 Things Every Programmer Should Know For Their First Job * How Much Do Software Engineers Really Make in Each City? * Software Engineers Tenure in San Francisco * Software Engineering 101 * The Passionate Programmer * Soft Skills: The software developer's life manual * The Complete Software Developer's Career Guide * Programming Beyond Practices: Be More Than Just a Code Monkey * A list of European Investors * Ten Rules for Negotiating a Job Offer * How To Interview As a Developer Candidate * How To Get a Tech Job Abroad Faster * How To Be A STAR Engineer * TL;DR; Stock Options * Equity 101 for Startup Employees * Cracking the Coding Interview: 189 Programming Questions and Solutions * Everything you need to know to get the job * Tech Interview Handbook * Teach Yourself Programming in Ten Years * What you should know as a founder of a software company * Code Interview Prep & Programming Questions | Pramp Fine-tune Your Resume * CV Compiler Open Source * Learn how to use Git and GitHub Remote Work * Remotive.io: Startups hiring remotely * Remote Work List for Developers * [?] NomadList * The Ultimate Guide to Remote Work * Awesome Remote Job Problem Solving * The Art and Craft of Problem Solving * How to Solve It: A New Aspect of Mathematical Method Soft Skills * Difficult Conversations * Crucial Conversations * How to Win Friends and Influence People Mental Health * Awesome Mental Health A curated list of awesome articles, websites and resources about mental health in the software industry. Papers on Programming * [?] Papers We Love * The Morning Paper * What Every Programmer Should Know About Memory * Go To Statement Considered Harmful Free Books on Programming * Free Programming Books Services [?] * Abstract API's * Free For Dev * Public APIs * The Noun Project * Without Coding * Simpleicons * Learn Anything * repl.it Licenses * Choose An Open Source License * Well-explained Software licenses in TLDR version * How open source licenses work and how to add them to your projects Where To Look For Further Info * freeCodeCamp Guide * GeeksForGeeks * Dev.To * Stack Overflow * Dzone Coding Practice Sites [?] * CodeForces * CodeChef * Coderbyte * CodinGame * Cs Academy * HackerRank * Spoj * HackerEarth * TopCoder * Codewars * Exercism * CodeSignal * Project Euler * LeetCode * Firecode.io * InterviewBit * uCoder * LintCode * CodeCombat * InterviewCake * At Coder * Codility About A collection of (mostly) technical things every software developer should know about Topics computer-science collection educational novice cc-by Resources Readme License CC-BY-4.0 License Stars 49.3k stars Watchers 1.8k watching Forks 4.8k forks Contributors 71 * @mr-mig * @YellowFoxH4XOR * @espozbob * @diendang271 * @rkukharuk-modus * @Guilhermeslucas * @ismagilov * @siriniok * @aalhour * @adindotdev * @panrein-dev + 60 contributors * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.