Here you will find discussions of all aspects of software development: the philosophy, techniques, technologies, and tools.
All software development is based on a world view and a set of principles. The only issue is whether the developer knows what they are. Here we discuss the philosophical principles that relate to software development and how different approaches produce different results.
There are many techniques involved in developing software. The appropriate techniques depend on the nature of the product to be created. We discuss how the nature of the problem impacts the techniques that are applicable.
There are numerous technologies that support various development techniques. We discuss the available technologies and how well they support the philosophy and techniques of software development.
Technologies are in turn supported by tools. We discuss available tools: commercial, shareware, freeware, and homegrown.
Among the most important tools are computer languages. We discuss the languages available and how they relate to the problem to be solved. Here you will find code from snippets to complete programs.