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
Soft Skills
Papers on Programming
Free Books on Programming

Licenses
Where To Look For Further Info

No comments:
Post a Comment