As a developer and entrepreneur I find myself explaining non-technical aspects of my 'programmer life' a lot.

This tends to strengthen my resolve, and enables me to measure the validity of my reasons to choose for certain tooling besides the technical advantages (which Python provides extensively too - but that's another story).

As programming and entrepreneurship tends to become quite economical and rational at times, I thought it'd be interesting to list a couple of things that I think are generally complementary to the quality of any programming tool, and are essential in my personal (and professional) opinion.

Vision

A good community needs a certain vision, and any good vision needs validation and support from the community it belongs to. The way a community grows in a natural way through means of a shared vision consisting of values, and the empowerment of the participants of the community to change it and develop it, is what makes it so interesting in our digital age.

Everyone has a certain influence and responsibility. It's the ability to indirectly influence other people's decisions by means of initiative and a form of social contract that is created from the choice of individuals. Individual people have a certain social reach, and the vision of one can (and should be able to) become the vision of many to succeed. The ability to stand for something, communicate this to others, and polish cultural values throughout the growing of a community is what can make a community succeed.

The creation and communication is done quite clearly in the community of Python as I experience it:

  • Contribute actively and are not afraid to ask (and require) support;
  • Everyone is able and allowed to learn;
  • We are open to teach what we know and love, to anyone;
  • We respect everyone as individuals;

Support for beginners

It's actively communicated that learning and wanting to learn is cool. Getting started is stimulated by events like Django Girls, and of course by the many courses taught at universities.