A collection of various awesome resources for future reference. Inspired by awesome
Table of Contents
##Introduction ##Programming ###General
-
Articles
-
FizzBuzz in too much detail, Tom Dalling
Industrial quality engineered software.... YAGNI! -
Revenge of the Nerds, Paul Graham
An opinionated comparison of programming languages. Picking the right tools for the task, and why your boss will always pick the "Industry Standard". -
The Magestic Monolith, David Heinemeier Hansson
Sometimes, microservices are not the answer. IMO, that's most times. -
A Bad Citizen in Javaland, Darren Hobbs
OOP is not inherently bad, bad OO programmers are. -
The Economics of Software Correctness, David R. MacIver
The reason behind your buggy software boils down to economic incentives. -
The Wrong Abstraction, Sandi Metz
Old code is subject to the sunk cost fallacy, and a bad abstraction that gets dragged along becomes spaghetti. Avoid it. -
Falsehoods Programmers Believe About Names, Patrick McKenzie
Handling names is hard. Stop making assumptions. -
Naming Things in Code, Bob Nystrom
Naming things is also hard. Think about how others (including future you!) will understand the connections in your code via its nomenclature. Make your code more maintainable by picking the right names. -
Long Names are Long, Bob Nystrom
And long names are generally an antipattern. If you doubt that, ask Douglas Hofstadter. -
Dizzying but invisible depth, Jean-Baptiste Quéru
You just went to the Google home page. Simple, isn't it? What just actually happened? (There is also a crowdsourced version of this worth checking out) -
Why I Hate Frameworks, Benji Smith
You needed a hammer, but ended up with a Hammer Factory Factory Factory™. -
The Law of Leaky Abstractions, Joel Spolsky
All non-trivial abstractions, to some degree, are leaky. They fail. Sometimes a little, sometimes a lot. -
The Duct Tape Programmer, Joel Spolsky
Stop overengineering things. -
The 12 Factor App, Adam Wiggins
Methodology for building SaaS web apps with declarative setup, clean contracts and continuous deployment on the cloud for maximum portability, agility and scalability.
-
-
Videos
-
Wat, Gary Bernhardt
Unexpected behavior that makes you think: "WAT!?" -
The Future of Programming, Bret Victor
1973 meets 2013 (Slides)
-
###Project Management
- Articles
- Heisenberg Developers, Mike Hadlow
Measuring how much is getting done affects the development process: "You can not observe a developer without altering their behavior."
- Heisenberg Developers, Mike Hadlow
###Python
-
Articles
-
Breaking out of two loops, Ned Batchelder
-
Pragmatic Unicode, Ned Batchelder
-
Lists vs. Tuples, Ned Batchelder
-
A polyglot's guide to multiple dispatch, Eli Bendersky
Part two in a series of several languages. Shows how to use mutlimethod mapping to easily dispatch objects to different functions based on the types of the arguments passed in. -
How the heck does async/await work in Python 3.5?, Brett Cannon
An explanation of concurrent programming, and how it works. Still need to wrap my head around this. -
Why
print
became a function in Python 3, Brett Cannon
Functions are composable. The old print? It wasn't. -
Why Python 3 Exists, Brett Cannon
And more importantly, why is it backwards incompatible? -
Iterables vs. Iterators vs. Generators, Vincent Driessen
A little pocket reference on iterables, iterators and generators. -
Python is not Java, Phillip Eby
different strokes for different folks -
Advanced use of Python decorators and metaclasses, Leonardo Giordiani
Making use of python's more advanced features to solve a toy problem. Override a few dunder methods and get magic in return. -
10 Myths of Enterprise Python Mahmoud Hashemi
Python is old, compiles to bytecode, is secure, isn't just for scripting, is strongly typed, is fast, scales, supports concurrency, developers like it, and it works for big projects. And that's all 10. -
Python with context managers, Jeff Knupp
Context managers are one of python's most interesting pieces of syntactic sugar. Knupp explains a few ways to use and define them. -
Counting Things in Python: A History, Trey Hunner
"Counting Things" as a case study of python's evolution. -
Five Easy Pieces: Simple Python Non-Patterns, Alex Martelli
Singletons vs. Borgs -
The Bottom-Line Single Main Difference Between Python 2 and 3, Aaron Maxwell
Python 3 makes it easier to develop high quality software. -
Pythonic means idiomatic and tasteful, Andrew Montalenti
Readability counts -
Iterate with a sentinel value, Amir Rachum
You can use the iter function in a for loop to loop until a known value is returned. -
Start Writing More Classes, Armin Ronacher
Stop hiding complexity. Decouple, and expose IO. (see also: Jack Diederich's Stop Writing Classes and Brandon Rhodes' Clean Architecture).
-
-
Videos
-
Python Concurrency From the Ground Up, David Beazley, PyCon US 2015
Threads, event loops, and coroutines: deconstructed and explained -
Stop Writing Classes, Jack Diederich, PyCon 2012
Get rid of cruft, YAGNI, and thoughtful refactoring with the end user in mind (see also, Armin Ronacher's Start Writing More Classes). -
Beyond PEP 8, Raymond Hettinger, PyCon 2015
Best practices for beautiful intelligible code. -
Transforming Code into Beautiful, Idiomatic Python, Raymond Hettinger, PyCon US 2013
Improve existing code through a series of code transformations -
A Python Æsthetic: Beauty and Why I Python, Brandon Rhodes
The python community makes an effort to write beautiful, readable code. Be a part of it. -
All Your Ducks In A Row: Data Structures in the Std Lib and Beyond, Brandon Rhodes
Learn the inner workings of data structures in Python, which work in a different way than the classics. -
Python Design Patterns 1, Brandon Rhodes
Gang of Four patterns in modern Python programming (Slides). -
The Clean Architecture in Python, Brandon Rhodes
Improve your tests and actually decouple your code by isolating I/O instead of hiding it. (Slides).
-
###Ruby
- Articles
- The Ruby on Rails Doctrine, David Heinemeier Hansson
The pillars of Ruby on Rails, and a manifesto to sustain its success into the future.
- The Ruby on Rails Doctrine, David Heinemeier Hansson
###Machine Learning
-
Books
- Neural Networks and Deep Learning, Michael Nielsen
-
Articles
-
Understanding Convolution in Deep Learning, Tim Dettmers
-
The state of Computer Vision and AI: we are really, really far away, Andrej Karpathy
-
A Word is Worth a Thousand Vectors, Chris Moody
-
Neural Networks, Manifolds, and Topology, Christopher Olah
-
Visualizing MNIST: An Exploration of Dimensionality Reduction, Christopher Olah
-
A Neural Network in 11 lines of Python (Part 1, Part 2), Andrew Trask
-
###Experiments, and other fun stuff
- Other
-
Measuring Pi with Lentils and Python, Michelangelo D'Agostino (Python)
-
Switching Eds: Face swapping with Python, dlib, and OpenCV, Mathew Earl (Python)
-
What a Deep Neural Network thinks about your #selfie, Andrej Karpathy
-
Let's Code About Bike Locks, Peter Norvig (Python)
-
Solving Every Sudoku Puzzle, Peter Norvig (Python)
-
How to Write a Spelling Corrector, Peter Norvig (Python)
-
Probability, Paradox, and the Reasonable Person Principle, Peter Norvig (Python)
-
The Traveling Salesman with Simulated Annealing, R, and Shiny, Todd W. Schneider (R)
-
A Tale of Twenty-Two Million Citi Bike Rides: Analyzing the NYC Bike Share System, Todd W. Schneider (R)
-
A Statistical Analysis of All Hacker News Submissions, Max Woolf (Python)
-