#Favorites
Here I collect my favorite things: insightful talks, amazing books, great movies, awesome tv series and more.
#Talks
#Programming
- Ideology by Gary Bernhardt (21min)
- Simple Made Easy by Rich Hickey (1h)
- Preventing the Collapse of Civilization by Jonathan Blow (1h)
- The Art of Destroying Software by Greg Young (42min)
- The Future of Programming by Bret Victor (32min)
- Functional Programming for Pragmatists by Richard Feldman (40min)
- Unison: The joy of an always live, never broken codebase by Paul Chiusano (32min)
- Dark’s Philosophy by Paul Biggar (30min)
- High-performance GraphQL with databases by Tanmai Gopal (29min)
- Why isn’t Functional Programming the Norm? by Richard Feldman (46min)
- The Wet Codebase by Dan Abramov (25min)
- The Value of Values by Rich Hickey (31min)
- On Storytelling by Evan Czaplicki (20min)
show more talks about programming
- Design, Composition and Performance by Rich Hickey (51min)
- The Power of Abstraction by Barbara Liskov (44min)
- Finding a Way Out by Chris Granger (33min)
- Are we there yet? by Rich Hickey (1h 10min)
- Architecture the Lost Years by Robert C. Martin (1h 6min)
- Elixir should take over the world by Jessica Kerr (58min)
- Capability vs. Suitability by Gary Bernhardt (19min)
- What we actually know about software development by Greg Wilson (1h 6min)
- Evidence-Oriented Programming by Andreas Stefik (41min)
- Engineering You by Martin Thompson (45min)
- From Monolith to Microservices Architecture by Chad Fowler (56min)
- Transcript: End-User Programming Of Social Apps by Jonathan Edwards (38min)
#Culture
- Know The Game You Are In by Simon Sinek (35min)
- Why Leaders Eat Last by Simon Sinek (45min)
- How to make a cultural transformation by Simon Sinek (10min)
- Effective Confrontation by Simon Sinek (5min)
#Process
- Stop Over-Engineering by Greg Young (47min)
- The Land that Scrum Forgot by Robert C. Martin (45min)
- Demanding Professionalism in Software Development by Robert C. Martin (45min)
- Software Development in the 21st century by Martin Fowler (24min)
- Power of Simplicity by Alan Kay (51min)
#Elm
- Code is the Easy Part by Evan Czaplicki (38min)
- User focused design in Elm by Evan Czaplicki (58min)
- Making Impossible States Impossible by Richard Feldman (25min)
- Functional Principles in React by Jessica Kerr (27min)
- Make the backend team jealous by Richard Feldman (31min)
- Effects as Data by Richard Feldman (58min)
#Design
- Rethinking Software Design by Daniel Jackson (1h 17min)
- How Do We Design Designers? by Jared Spool (1h 6min)
- You have been lied to by Mike Monteiro (1h 5min)
- Inventing on Principle by Bret Victor (54min)
- Drawing Dynamic Data Visualizations by Bret Victor (35min)
- Media For Thinking The Unthinkable by Bret Victor (39min)
- The Humane Representation of Thought by Bret Victor (56min)
- Distracted? Let’s make technology that helps us spend our time well by Tristan Harris (15min)
- UX How-To Video Series by Luke Wroblewski (3-5min)
#JavaScript
- Minimal API Surface Area by Sebastian Markbage (24min)
- Programming Safely in an Uncertain World by David Chambers (30min)
- Performance and benchmarking by Vyacheslav Egorov (25min)
- ES7: The Evolution of JavaScript by Jafar Husain (1h 11min)
- What the heck is the event loop anyway? by Philipp Roberts (26min)
#Quotes
Programming
The art of programming is the art of organizing complexity.
— Edsger W. Dijkstra
Programmers know the benefits of everything and the trade-offs of nothing.
— Rich Hickey
There are only two hard things in Computer Science: cache invalidation and naming things.
— Phil Karlton
If you want everything to be familiar, you will never learn anything new.
— Rich Hickey
Simplicity is prerequisite for reliability.
— Edsger W. Dijkstra
People seem to misinterpret complexity as sophistication.
— Niklaus Wirth
Testing shows the presence, not the absence of bugs.
— Edsger W. Dijkstra
Legacy code is code without tests.
— Michael Feather
Make illegal states unrepresentable.
— Yaron Minsky
The way to shorten programs is using procedures, not to omit vital declarative information.
— Hoare
Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.
— Melvin Conway (Conway’s law)
A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system.
— John Gall
Quality is a collection of attributes. Various people define those attributes differently, but a commonly accepted collection is portability, reliability, efficiency, human engineering, testability, understandability, and modifiability
— Robert L. Glass
Our intellectual powers are rather geared to master static relations and that our powers to visualize processes evolving in time are relatively poorly developed.
— Edsger W. Dijkstra
I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.
— Antony Hoare
Process
Success is the feeling of contribution.
— Simon Sinek
One of the most important duties of your manager is to keep you out of meetings.
— Robert C. Martin
If you want more effective programmers, you will discover that they should not waste their time debugging, they should not introduce the bugs to start with.
— Edsger W. Dijkstra
The most important factor in attacking complexity is not the tools and techniques that programmers use but rather the quality of the programmers themselves.
— Robert L. Glass
Pragmatism is the belief that today’s deadline is more important than future deadlines, possibly all of them combined.
— Bryan Edds
The driving force of a career must come from the individual. Remember: Jobs are owned by the company, you own your career!
— Earl Nightingale
If you think it’s expensive to hire a professional, wait until you hire an amateur.
— Red Adair
Work expands so as to fill the time available for its completion.
— Parkinson’s law
80% of the effects come from 20% of the causes.
— Pareto principle
Whenever you find yourself on the side of the majority, it is time to pause and reflect.
— Mark Twain
Design
A designer solves problems within a set of contraints.
— Mike Monteiro
The first step to designing anything: ask Why are we doing this? If the answer isn’t clear to you, or just doesn’t exist, you can’t design anything.
— Mike Monteiro
Unless it is enjoyable or educational in and of itself, interaction is an essentially negative aspect of information software.
— Bret Victor
The most effective way of helping people remember is to make it unnecessary.
— Don Norman
#Books
- A Philosophy of Software Design by John Ousterhout
- Clean Coder by Robert C. Martin
- Clean Code by Robert C. Martin
- Rework by Jason Fried & David Heinemeier Hansson
- Effective JavaScript by David Herman
- You don’t know JS series by Kyle Simpson
- Secrets of the JavaScript Ninja by John Resig
- Design is a Job by Mike Monteiro
- Don’t make me think by Steve Krug
- Letting Go of The Words by Janice Redish