About 2,500 years ago, some jerk named Socrates was poisoned for calling the people of Athens ignorant and foolish, but he did get some people thinking. He had this idea that the reason people were so ignorant and foolish was because of how difficult it is for people to examine their own ideas honestly. He thought that if two or more people at a time can get together and question each other vigorously, they would be able to examine each other’s flawed ideas and correct them. The way he and his friends did this became known as the Socratic Method.

Most of the world’s great philosophies, religions, and technologies are built on this team process. In Buddhism, for example, the community of people who practice together (Sangha) is considered equal with the teachings (Dharma) and even with Buddha. (Buddha, Dharma, and Sangha together are called “The Three Jewels”.) Similar ideas are found in Judeo-Christian/Muslim traditions (“the Body of Christ”, for example) and most likely in whatever system is in practice in your local area.

What does this have to do with programming Python? Quite a bit, really. Whether your source is Open Source or Closed Source, you will generate better code if you participate in the team development process. Show your code to others, look at theirs, and see if you can ask each other good questions about what you see. Offer constructive advice to each other. That’s what Useless Python is all about.

This site hosts Python programs just for this purpose. The material here is for you to get ideas from, suggest improvements to, and to add to with your own examples. Scripts here range from the intentionally awful to the really nifty, submitted by absolute beginners, gifted teachers, Open Source gods, and anyone else who cares to send a little something in. Whatever your background, you should be able to find some amusing, educational, and challenging ideas here.

If you want to write a 60-line, recursive, encrypted, obfuscated “hello world” for the site, we will cheerfully take it. I can assure you that someone will learn something from it. If you are a newbie programmer looking for ideas, you can certainly find a variety of them here.

This all ties in with the Python Tutor email list, which totally rocks! If you see something in a piece of code that you leaves you scratching your head, or you try to make some changes but get unexpected results, you can email the Tutor list and receive quick help from people who literally delight in clearing things up for you. And if you have written a program that you need someone to look at, but it’s seven pages long, you can post it to Useless Python and point people to its page instead of attaching it to an email message.

Computer geeks have a reputation for lacking people skills. But the Python community challenges this myth every day by demonstrating genuine interest in people learning the language and encouraging people in general. Many people learn quickly to apologize profusely for being stupid and naive when posting questions to email lists and usenet programming discussions. But the Pythonistas teach people not to put themselves down. If you look over the archives of comp.lang.python and the Python Tutor email list, you can easily verify that people are told “you are not stupid, and neither is your question” when newbies insult themselves up front.

Socrates pointed out that he considered himself foolish except for “just enough wisdom to recognize the lack of wisdom” in himself. So if you want to say “I know this is a stupid question, but….” when you talk to the Python folk, your attitude may be considered Socratic. Just don’t expect us to insult you for it. You’re part of the team any time you take part at all, whether by answering other people’s questions or receiving help of your own.