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