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.
Highly opinionated
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
-
π Hashing, Encryption and Encoding
UX/Usability
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 -
π 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
Remote Work
-
π Remotive.io: Startups hiring remotely -
π Remote Work List for Developers -
β‘ NomadList -
π The Ultimate Guide to Remote Work -
π Awesome Remote Job
Problem Solving
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
β‘
Services
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
β‘
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