Understanding the Areas of Development
Many people seem to think what we do is some kind of magic. It isn’t, sorry. In order to understand what we do at Powderkeg I thought I would briefly describe the major areas of development. In the world of web development there are five major areas of development each with their own language. These areas are: Structure, Styling, Server-side, Client-side, and the Database.
The structure of a website is almost always developed using HyperText Markup Language or HTML. HTML defines the layout of a page. Each box, column, table, or anything else you see on a website is almost certainly the product of HTML. HTML is not a dynamic language and does not generally respond to the user. Instead, what HTML does is to define the physical elements of a page. Although HTML can do more than this – including defining the title, description, author, and other meta data to search engines – for the most part it simply acts as the foundation for all of the other parts of web development to act on.
The styling of a website is almost always done using a language called Cascading Style Sheets (CSS). CSS takes the basic elements of a site, which is defined by HTML, and changes the appearance of those elements. CSS styling includes: background and text coloring, font size and styling, spacing and positioning of elements, and so much more. Without CSS an HTML page would look like a long list of black text on a white background with images one on top of the other. You may have seen this before if for some reason a CSS file did not load correctly. Without CSS the web would be an ugly and unfriendly place for the average internet user.
The server-side language we use at Powderkeg is called PHP which stands for “PHP: Hypertext Preprocessor” (originally it stood for Personal Home Page). PHP is currently the most heavily used server-side programming language in the world. PHP is easy to use, easy to learn, and has a huge community of developers. We also use something called WordPress which is a PHP framework for developing websites that allows us to reduce our development time and reuse a lot of our code across different sites. WordPress also allows us to simply and quickly install large pieces of code called “Plugins” which help us create large and complex sites as quickly and professionally as possible.
Server-side languages do just what it sounds like, they are the language that resides on the server and responds to the requests of the user. When a user visits a website they send a request to the site’s server. The server knows how to respond because of the server-side code. For instance, when a user fills out a form on a website the information is sent to the server and then the server code (PHP) responds to that information.
The database(s) behind a website can range widely in their use and functionality. Some sites might not have any databases and some sites might have dozens…or more. It is hard to narrowly define what a database is used for as they can be used for many things. Perhaps the most common use of a database is to track the users of a site. If you have ever signed up for a website your information was stored on a database. Here at Powderkeg we mostly use MySQL for our databases. MySQL is a free and widely used database. Database development is split into 2 separate parts. The actual data, which is stored in files on the server, and the database language, which is used to communicate with the database. The language used to communicate with MySQL (the database) is called Structured Query Language or SQL.
Bringing it all together
Here is a small diagram that might help in understanding the parts of the web development.
Hopefully this helps you understand more about what we do here at Powderkeg…but feel free to continue believing it is magic.