Something that puzzles us in technical support for Perch: The number of web designers and capable front-end developers who are unable to diagnose something as simple as a 404, file not found. Or have little understanding of what any server-side solution might be doing. We read some very strange theories as to what our users believe is happening when they encounter a problem due to this lack of understanding of what happens prior to html being delivered to the browser.

Perhaps those of us who began working on the web in the early days have an advantage here. When I wanted to start doing server-side development, I bought a tatty old Compaq desktop from a chap who sold old technology that businesses wanted to recycle. I then had to work out how to install Linux, compile Apache and configure Perl to work with the web server. This took days. This was before I even started to learn Perl. However, this somewhat torturous process taught me how web pages are served. I read a seemingly endless string of error messages; I learned how to search the web and Usenet for answers; I learned how to formulate a post asking for help in a way that wouldn't get me flamed and might get me an answer.

In 2012 many people who are working with server-side development seem barely aware that is what they are doing. One-click installs of WordPress and similar on their hosting causes the process of getting set up to be hidden. They work, quite terrifyingly, directly on their live server. Even if you want to go one step beyond that and run a local development environment that is now incredibly trivial to set up due to packages such as XAMPP and Mamp. We can easily find ourselves protected from the technology that we are relying on to serve our sites.

All this ease and convenience is great. I don't think that everyone building a website should be forced to compile Apache from scratch. However I do believe that if you are developing for the web, you need to have enough understanding to be able to take a holistic view of the entire process. If you do not understand how a script serves up your HTML, then it will appear baffling when something goes wrong. It will be very hard for you to start to diagnose problems, even enough to be able to raise a support request that will get you help.

If you are working with any kind of CMS, blogging software or other server-side solution and are treating it as a black box, you will be amazed at how a little bit of time invested in understanding how this stuff works can save you hours in the long run.