Comment beforehand: this is just a dump of some quotes hurriedly typed down while Martijn rattled on. Pick some nice ones out of the list and be happy.
This talk is about creativity in programming. Especially creating open source software. Some of his comments will contradict each other, which is fine. Both are valid, then, and just need to be weighed against each other. Sleep on it, pick one and change it later on if you’re wrong.
To create you need to pick a goal. You might not reach it, but you at least created something.
If you are inexperienced with the tools of creation, find a mentor. (He was helped by his father for his first project).
Inexperienced programmers often look for a trick or code snippet if they encounter a problem without understanding it. They lack the knowledge to really apply the basic idea in other situations. Knowledge helps to generalize and generalization helps creativity.
In creation, embrace your limitations.
Make the goal fit what you created. After the fact if needed.
Access to knowledge is greatly improved. Even early-80’s MSX assembly codes are easy to google now.
If all goals look infeasible, you might not create anything at all. Writing a computer game in the 1980’s seemed feasible. Writing a full 3D game now? Seems hard.
Creations unseen by others can still be valuable if you learn something from it.
Lack of knowledge means you cannot be discouraged by knowledge.
Recreating something is a great way to learn about it.
Networks stimulate creation. Networks bring creations in front of people.
Build on other peoples’ work.
Social software encourages creation by its users.
A creation is a project and a process as much as it is a product.
“Publish early” is a good idea. Not publishing in any case means no success.
Creation is not done in isolation. And it is often a group effort.
Martijn re-discovered the joy of quick creation in 1998 with python like he had with basic (in contrast to C++).
Feedback stimulates creativity. (For instance on the python prompt).
Good tools stimulate creativity.
Creation can be just a matter of speaking up. What works for God (God said “let there be light” and there was light) sometimes also works for people. Speak up, announce something, start something.
A community around software forms more easily if the software aims at developers instead of end-users as developers are more easily converted to contributors.
Software is a human endeavour.
If your approach doesn’t work, go with the flow of your strengths.
To create a business together with someone else is one of the most educational things you can ever do with your life.
A creation is successful if it continues to evolve after you’re no longer involved.
It is easier to make a creation evolve without you if you are not alone in its creation.
Creation if often started by communication.
Creation by a team is a lot easier if you are in the same room physically.
Getting an idea is often overvalued. Implementation is most-times what counts.
If you want a community to create something, avoid doing all the work yourself.
Name recognition is useful in creation. Just making regular noise on a mailinglist might be enough.
Europython was basically started by Martijn. He mailed Guido that there was to be a EU python conference and whether he wanted to attend (“yes”). Then he mailed around in the EU that Guido was coming to the EU python conference and asked for volunteers to help organize it. So others did the work and we have now Europython conferences.
Create something because it is cool. Not because it will succeed but because you will learn something from it.
Integration is a form of creation. Integration of software can integrate communities. (Example: the Five project that brought zope2 and zope3 back together).
Talk about what you create. Use some oft-repeated phrases in those talks. “Evolution, not revolution” for instance. After a while people were picking up these phrases.
Separate concerns. Each component gets a clearer purpose and clearer boundaries. And the basic components become candidates for reuse.
Document your creation.
To create, be clever and use what is already there.
To create, be lazy and unoriginal.
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):