Every Programmer Should Know 
A collection of (mostly) technical things every software developer should know.
Highly opinionated 
. Not backed by science.
Comes in no particular order
Comes in no particular order
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!
But knowing the stuff will help you become better!
P.P.S. Contributions are welcomed!
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
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] (https://www.goodreads.com/book/show/3735293-clean-code)
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
Remote Work
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
No comments:
Post a Comment