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๐ 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
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 ๐ค 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