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
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📖 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
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
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 🤖 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
⚡
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