Programming

Algorithms

I’m very aware that the word “algorithm” makes about 85% of people want to gouge their own eyes, right? But I mentioned this at a tech conference that I was at to someone, and they agreed with me. But they added that it makes the remaining 15% of people mildly aroused.

– Hannah Fry (source)

Become Managers

Programmers who refuse to keep exploring will stagnate, forget their joy and lose the will to program (and become managers).

– M Haverbeke (source)

Code Addict

When a code addict needs a fix, they just do a few extra lines.

Creator of Universes

The computer programmer is a creator of universes for which he alone is responsible.

– Joseph Weizenbaum (source)

Debugging Detective

Debugging is like being the detective in a crime movie where you are also the murderer.

– Filipe Fortes (source)

Give Someone A Program

Give someone a program, you frustrate them for a day; teach them how to program, you frustrate them for a lifetime.

– David Leinweber (source)

Id Software Principles

  1. No prototypes. Just make the game. Polish as you go. Don’t depend on polish happening later. Always maintain constantly shippable code.
  2. It’s incredibly important that your game can always be run by your team. Bulletproof your engine by providing defaults upon load failure.
  3. Keep your code absolutely simple. Keep looking at your functions and figure out how you can simplify further.
  4. Great tools help make great games. Spend as much time on tools as possible.
  5. We are our own best testing team and should never allow anyone else to experience bugs or see the game crash. Don’t waste others’ time. Test thoroughly before checking in your code.
  6. As soon as you see a bug, you fix it. Do not continue on. If you don’t fix your bugs your new code will be built on a buggy codebase and ensure an unstable foundation.
  7. Use a development system that is superior to your target.
  8. Write your code for this game only - not for a future game. You’re going to be writing new code later because you’ll be smarter.
  9. Encapsulate functionality to ensure design consistency. This minimizes mistakes and saves design time.
  10. Try to code transparently. Tell your lead and peers exactly how you are going to solve your current task and get feedback and advice. Do not treat game programming like each coder is a black box. The project could go off the rails and cause delays.

– John Romero (source)

Programming In IRL

Programming IRL:

“ETA for an apple pie?”

“2h”

8h later:

“Where is it?”

“You didn’t tell me the dishes were dirty and you lacked an oven.”

– Rick Fillion (source)

Python - "import *"

Put “True, False = False, True” into your python libraries. People will soon learn to not “import *” from them…

– The Rev Johnny Healey (source)

Solving Problems

In programming, the hard part isn’t solving problems, but deciding what problems to solve.

– Paul Graham (source)

Someone Else's Responsibility

Algorithmic complexity for structured programmers: All algorithms are O(f(n)), where f is someone else’s responsibility.

– Peter Cooper (source)

Specs

Writing specs is like flossing: everybody agrees that it’s a good thing, but nobody does it.

– Joel Spolsky (source)

The Quality Of Programmers

The quality of programmers is a decreasing function of the density of go to statements in the programs they produce.

– Dijkstra