π€
Every Programmer Should Know A collection of (mostly) technical things every software developer should know.
Highly opinionated
Comes in no particular order
U like it?
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
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
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
Time
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
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
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
Practices
π Working Effectively with Legacy Codeπ 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
Career
π 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 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
UX/Usability
Remote Work
π Remote Work List for Developersβ‘ NomadListπ The Ultimate Guide to Remote Workπ Awesome Remote Job
Engineering Philosophy
π₯ Simple Made Easyπ Speed In Software Developmentπ₯ 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
Problem Solving
Soft Skills
π Difficult Conversationsπ Crucial Conversationsπ How to Win Friends and Influence People
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
β‘
Services
Licenses
Where To Look For Further Info
β‘
Coding Practice Sites π CodeForcesπ CodeChefπ CodinGameπ Cs Academyπ HackerRankπ Spojπ HackerEarthπ TopCoderπ Codewarsπ Exercismπ CodeFightsπ Project Eulerπ LeetCodeπ InterviewBit