/programming-resources

A collection of programming and computation resources.

Primary LanguageGo

Programming Resources

These are my personal notes on programming & computing things.

You will often find my notes and summaries alongside links to articles in the many Markdown files in this repo. This README.md also includes lists of resources that I have found useful.

I maintain similar collections on reinforcement learning and machine learning.

Teaching Materials

Hidden inside these notes are are the content for a few courses:

Other highlgihts are the memes.

Music For Programming

Listen to Wikipedia - real-time visualization and sonification of Wikipedia activity.

musicForProgramming

Liszt

Rain with Clair de Lune

Skyrim Exploration Suite

Offworld Trading Company Soundtrack

Tosca - Suzuki

Susumu Yokota - Acid Mt. Fuji

soma fm - Mission Control

lofi air traffic control

Random Cool Stuff

Stories of reaching Staff-plus engineering roles

The Grug Brained Developer

Content Tests @ The Open Buddhist University

cbonsai - a bonsai tree generator that intelligently creates, colors, and positions a bonsai tree.

dorking (how to find anything on the Internet)

practical-tutorials/project-based-learning - Curated list of project-based tutorials.

Writing a Simple Operating System from Scratch

The Compiler Writer Resource Page

The Tao of Programming

The Codeless Code - fables and Kōans for the software engineer.

Good enough practices in scientific computing

progsbase - Flow-Charts of Programming Language Constructs.

Vim Kōans

Rob Pike's 5 Rules of Programming

Generative Artistry - A range of interactive tutorials, exploring ideas and techniques used in generative art.

cheat.sh - Unified access to the best community driven documentation repositories of the world.

Refactoring.Guru - makes it easy for you to discover everything you need to know about refactoring, design patterns, SOLID principles, and other smart programming topics.

RosettaGit - solutions to the same task in as many different programming languages.

Screenshots from developers & Unix people (2002)

Screenshots from developers: 2002 vs. 2015

At what time of day do famous programmers work?

The challenges of teaching software engineering

Linus Torvalds on C++

Honeypot documentaries:

List of software development philosophies - Wikipedia, including Rubber duck debugging.

dwmkerr/hacker-laws - Laws, Theories, Principles and Patterns that developers will find useful.

Lehman's laws of software evolution

Richard Hamming - You and Your Research Lecture

The Architecture of Open Source Applications - Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes.

Software Development Waste - Hacker News discussion

Do call yourself a programmer, and other career advice

Don't Call Yourself A Programmer, And Other Career Advice

After being in a data science/ developer role for the better part of a decade, here is how companies REALLY develop software and AI/ML applications

What Every Programmer Should Know

Memory - HN discussion

What every computer science major should know

Articles

The Man Who Killed Google Search

The Tyranny of Spreadsheets | Tim Harford

DeepDream: How Alexander Mordvintsev Excavated the Computer’s Hidden Layers

The Secret Auction That Set Off the Race for AI Supremacy

How Discord Won

The messy, secretive reality behind OpenAI’s bid to save the world

The Yoda of Silicon Valley

Overlooked No More: Alan Turing, Condemned Code Breaker and Computer Visionary

[The Friendship That Made Google Huge - Jeff Dean and Sanjay Ghemawat](https://www.new yorker.com/magazine/2018/12/10/the-friendship-that-made-google-huge)

How Data (and Some Breathtaking Soccer) Brought Liverpool to the Cusp of Glory

A Unicorn Lost in the Valley, Evernote Blows Up the ‘Fail Fast’ Gospel

Why Google+ Failed

When Larry Met Sergey

Cities: Skylines is Turing Complete

How Notion pulled itself back from the brink of failure

Should You Learn to Code?

Don't Learn to Code - Learn to Automate - DaedTech

Please Don't Learn to Code

Falsehoods

Falsehoods CS Students (Still) Believe Upon Graduating

Falsehoods Programmers Believe About Falsehoods Lists

Blogs & Blog Posts

5 Computer Science Papers That Changed How I Write Code

5 Famous Programming Quotes, Explained

new codebase, who dis? (How to Join a Team and Learn a Codebase) - Samuel Taylor

Zach Alberico - How To Become A Hacker

Pain We Forgot

Writing for Engineers

Dev tools: The ex-Googler guide

danluu

Vadim Kravcenko

Seph

Brains to Bytes

jorzel

Erik Bernhardsson

Seth Goldin

RelyAbility

Structure and Interpretation of Computer Programmers

Cuddly, Octo-Palm Tree

Nabeel S. Qureshi

Adam Johnson

Baldur Bjarnason

Ian Henry

Marc Lelarge

aem1k

Nicolas Loizeau

Martin Heinz

benkuhn.net

Austin Z. Henley

Chip Huyen

danluu

Coding Horror

Casey's Tech Stuff

Visualize Today - Small Multiples

Haki Benita

nemil

localghost

rachelbythebay

https://www.netmeister.org

Matt Might

Hillel Wayne

Proper Fixation

Haki Benita

Cat on Mat

dwmkerr.com

The Clean Code Blog - Robert C. Martin (Uncle Bob)

Code by Kate Rose Morley

Justin Meiners

koaning.io - Vincent D. Warmerdam

The Digital Cat

History of Programming

The A-Z of Programming Languages

History of Infra as Code - talk about history of cloud services, Docker etc

History of Programming Language Conference

An opinionated history of programming languages

Is It Time to Rewrite the Operating System in Rust? - Bryan Cantrill - 2018

Why Isn't Functional Programming the Norm? – Richard Feldman - 2019

Why does "=" mean assignment? - Hillel Wayne

Courses

CSE 20289 - Systems Programming

codecrafters-io/build-your-own-x - master programming by recreating your favorite technologies from scratch.

Opinionated Guides on Engineering

The Debugging Guide

Open Source Society University - Computer Science

The Good Research Code Handbook

Developer Roadmaps - Python, React, backend, frontend.

6.005 Software Construction - course homepage - notes - introduces fundamental principles and techniques of software development - how to write software that is safe from bugs, easy to understand, and ready for change.

Systematic Program Design - video lectures.

calmcode.io - video tutorials for modern ideas and open source tools (mostly Python)

lines/course-starter-python - course framework for spaCy

./missing-semester - gain proficiency with computing systems (shell, editor, version control) - notes - lecture videos

Introduction to Computer Science and Programming in Python - lecture videos - course home page

Teach Yourself Computer Science

Computer Science from the Bottom Up

CS360 -- Systems Programming, and the module on Memory.

Code Challenges

codewars

coderbyte

HackerRank

Regex Crossword

hoanhan101/algo: 101+ coding interview problems in Go

Books

A Mind at Play: How Claude Shannon Invented the Information Age

Hello, Startup: A Programmer's Guide to Building Products, Technologies, and Teams - Yevgeniy Brikman

The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World (2015 book) - Pedro Domingos

Algorithms to Live By: The Computer Science of Human Decisions - Christian & Griffiths

Textbooks

How to be a Programmer

Crafting Interpreters

Command Line Interface Guidelines

Elements of Data Analytic Style

Composing Programs

Computer Science from the Bottom Up

Clean Architecture: A Craftsman's Guide to Software Structure and Design - Robert C. Martin

Introduction to High-Performance Scientific Computing - Victor Eijkhout

Podcasts

Lex Fridman Podcast

Talk Python To Me - Why is Python Slow?

Presentable - how we design and build the products that are shaping our digital future