Every Programmer Should Know
A collection of (mostly) technical things every software developer should k...
README
Join our community for professional Software Developers and get more control over your life and career!
Every Programmer Should Know :thinking:
A collection of (mostly) technical things every software developer should know.
:point_up: These are resources I can recommend to every programmer regardless of their skill level or tech stack
Highly opinionated :bomb:. Not backed by science.
Comes in no particular order :recycle:
U like it? :star: it and share with a friendly developer!
U don't like it? Watch the doggo :dog:
*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! :muscle:*
P.P.S. Contributions are welcome!
Introduction
- :movie_camera: Map of Computer Science
- :movie_camera: 40 Key Computer Science Concepts Explained In Layman’s Terms
- :page_facing_up: Computer Science Roadmap
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
- :book: Computer Science Distilled
- :book: Grokking Algorithms
- :book: Introduction to Algorithms
Data Structures
- :movie_camera: UC Berkeley, Data Structures Course
Numbers
- :book: How to Count
- :page_facing_up: Floating Point Guide
- :page_facing_up: What Every Computer Scientist Should Know About Floating-Point Arithmetic
- :page_facing_up: Basic Number Theory Every Programmer Should Know...
Strings
- :page_facing_up: Unicode and Character Sets
- :movie_camera: ASCII
- :movie_camera: UTF-8
Latency
- :page_facing_up: Latency Numbers Every Programmer Should Know
Time
- :page_facing_up: Some notes about time
- :movie_camera: The Problem with Timezones
Memory
- :page_facing_up: What every Programmer should know about memory
Distributed Systems
- :book: Understanding Distributed Systems
- :page_facing_up: There is No Now
- :page_facing_up: Jepsen: how different databases behave under partition
- :scroll: Fallacies of Distributed Computing Explained
RegExp
- RegexHQ
Security
- :book: Security Programming
- :page_facing_up: Rolling Your Own Crypto
- :page_facing_up: Cryptographic Right Answers
- :page_facing_up: An Open Letter to Developers Everywhere (About Cryptography)
- :page_facing_up: Hashing, Encryption and Encoding
UX/Usability
- :movie_camera: Inventing on Principle
SEO
- :page_facing_up: What Every Programmer Should Know About SEO
Architecture
- :scroll: A Field Guide to Boxology
- :scroll: Out of the Tar Pit
- :movie_camera: Growing a Language
- :movie_camera: CQRS and Event Sourcing
- :movie_camera: Evolutionary Software Architectures
- :movie_camera: Entity-Component-System Architecture with Unity by example
Code Design
- :page_facing_up: Programming Principles Wiki
Engineering Philosophy
- :movie_camera: Category Theory in Life
- :movie_camera: Simple Made Easy
- :page_facing_up: Speed In Software Development
- :movie_camera: #NoEstimates
- :movie_camera: The Myth of the Genius Programmer
- :movie_camera: Making Badass Developers
- :page_facing_up: The Ten Rules of a Zen Programmer
- :page_facing_up: The mythical 10x programmer
- :page_facing_up: The Debugging Mindset
- :movie_camera: The Future of Programming
- :page_facing_up: The Good Software Development Manifesto
- :movie_camera: All the Little Things
- :page_facing_up: Teach Yourself Programming in Ten Years
Practices
- :book: Working Effectively with Legacy Code
- :book: Code Complete
- :book: Test Driven Development: By Example
- :white_check_mark: Going To Production Checklist
- :book: Release It!
- :page_facing_up: Thirteen Ways of Looking at a Turtle
Learn the basics of a language in a highly condensed way.
Compare commonly used features of more or less similar languages side-by-side. Helps you to jump Python<->Ruby, Ocaml<->Haskell, etc.- :page_facing_up: Pomodoro for Programmers
- :book: Site Reliability Engineering
Career
- :moneybag: Levels FYI
Salary stats for various tech companies. Better than Glassdoor.
- :page_facing_up: 10 Things Every Programmer Should Know For Their First Job
- :page_facing_up: How Much Do Software Engineers Really Make in Each City?
- :page_facing_up: Software Engineers Tenure in San Francisco
- :book: The Passionate Programmer
- :page_facing_up: Ten Rules for Negotiating a Job Offer
- :page_facing_up: How To Interview As a Developer Candidate
- :page_facing_up: How To Get a Tech Job Abroad Faster
- :book: How To Be A STAR Engineer
- :page_facing_up: TL;DR; Stock Options
- :page_facing_up: Equity 101 for Startup Employees
- :book: Tech Interview Handbook
- :page_facing_up: Teach Yourself Programming in Ten Years
- :page_facing_up: What you should know as a founder of a software company
- :movie_camera: Code Interview Prep & Programming Questions | Pramp
- :movie_camera: A Philosophy of Software Design | John Ousterhout | Talks at Google
Fine-tune Your Resume
- :hammer: CV Compiler
Open Source
- :globe_with_meridians: Learn how to use Git and GitHub
Remote Work
- :globe_with_meridians: Remotive.io: Startups hiring remotely
- :globe_with_meridians: Remote Work List for Developers
- :zap: NomadList
- :book: The Ultimate Guide to Remote Work
- :house: Awesome Remote Job
Problem Solving
- :book: The Art and Craft of Problem Solving
Soft Skills
- :book: Difficult Conversations
- :book: Crucial Conversations
Mental Health
A curated list of awesome articles, websites and resources about mental health in the software industry.
Papers on Programming
- :heart: Papers We Love
- :newspaper: The Morning Paper
- :newspaper: Arxiv
- :newspaper: Sci-hub
Free Books on Programming
- :books: Free Programming Books
Services :zap:
- 🤖 Abstract API's
- repl.it
Licenses
Where To Look For Further Info
- Dev.To
- Dzone
Coding Practice Sites :zap:
- :link: CodeForces
- :link: CodeChef
- :link: Coderbyte
- :link: CodinGame
- :link: Cs Academy
- :link: HackerRank
- :link: Spoj
- :link: HackerEarth
- :link: TopCoder
- :link: Codewars
- :link: Exercism
- :link: CodeSignal
- :link: Project Euler
- :link: LeetCode
- :link: Firecode.io
- :link: InterviewBit
- :link: uCoder
- :link: LintCode
- :link: CodeCombat
- :link: InterviewCake
- :link: At Coder
- :link: Codility
- :link: ICPC Problem Archive