07 June 2010
Posted in
Project Planning & Management
There is a vast range of technologies available to today's web developer, and it is very easy to become bogged down in trying to understand and accommodate sales and markets for each. However, it is prudent to identify the technology in which you work best and then identify a market that matches this technology. That will be covered in a later section, but for the time being, you should familiarize yourself with the following technologies:
Web Technologies: HTML/XHTML and CSS
As previously mentioned, HTML and CSS are the technologies used to assemble a design into a functional web page. They are commonly referred to as markup languages. There are many languages, but HTML has become the world standard for Internet browsers. It stands for Hypertext Markup Language. XHTML is the same, with the addition of XML compliance. XML is a markup language used to define data using very strict formatting rules. It is like a database, and that is all you really need to know for now. However, it is good to know that XHTML is simply HTML that adheres to a very strict format so it can be more universally interpreted by web browsers. CSS is a companion technology to HMTL. It stands for Cascading Style Sheets, and it has been a huge driver in the evolution of more design-centric web development.
CSS allows for the very specific positioning and formatting of web page content and also allows the programmer to quickly change styles for an entire site within a single file. It also serves to reduce the amount of code on the page, which makes the page easier to maintain and more easily read by search engines.
A style-sheet is referenced in the HEAD section of every HTML page to which it applies and several style-sheets can be referenced for each page of a site. It is common to see a main style-sheet for a site and an additional style-sheet to accommodate the specific nuances of the browser version and platform that the user possesses.
Style-sheets use a process known as inheritance to override previously defined styles. For example, if a page is viewed in Internet Explorer 7, it might be that the specific position of a paragraph or image is interpreted differently, so a second style-sheet will be loaded a line below the main sheet in the code to introduce a new definition of the style. These are known as "hacks."
Scripting Languages: PHP, ASP, CFM, JavaScript
Web developers deal in two types of scripting when referencing the web: server side and client side. As you can image, these refer to where the script is executed. In the case of server side, the script is processed on the web server before the file is sent to the user, while client side presents scripts that are interpreted and executed by the actual web browser after the page has been downloaded.
Server side scripting, with little exception, is used for complex processes such as reading and writing information to a database as well as processing user input from forms. Additionally, server side script is often used to interpret and process complex formatting of content prior to sending it to the client. An example of this is a block of code used by The Dev Department to identify the user's browser and platform and delivery of the correct set of CSS "hacks".
Some common scripting languages are PHP (Hypertext Preprocessor), ROR (Ruby on Rails), ASP (Active Server Page, which is now ASPX), and CFM (Cold Fusion). Of these, PHP and ROR are the only languages that are Open Source. This means that the engine that drives the server is freely available and has been collaboratively developed by the people who use it. The other two require licenses and are developed and distributed for profit by Microsoft and Macromedia (now Adobe). The Dev Department codes exclusively in PHP, but is moving toward ROR development in the near future.
The type of developer who codes in PHP is referred to as a LAMP developer. LAMP stands for Linux, Apache, PHP and MySql. These are all open source products and constitute (respectively) the operating system, web server, scripting language, and database.
Client side scripting is primarily done in JavaScript. JavaScript has seen massive advances over the years and has become a powerful tool for manipulating the user experience. In the past, javascript has been used mostly for form validation and image rollovers. However, with the advent of new Javascript technologies, such a JQuery and Moo Libraries, we are now able to use javascript for advanced operations. One of the most popular technologies arising from this is the light-box technology used to display images and other content without having to load a new web page. This is done with a combination of JavaScript and XML known as AJAX.
AJAX stands for Asynchronous JavaScript and XML and has begun to bridge the gap between client and server side scripting by providing a conduit for processing data on the server without having to refresh the current page. It does this by using client side javascript to send XML data to a server side script which processes the data, gets some output and then returns that to the client side script to update the page.
Databases: MySQL, Oracle, SQL Server
There are two classifications of database that are available to a web developer: relational and flat-file, with the most common and most powerful being relational. Some examples of relational databases are: MySQL, SQL Server, Oracle, and MS Access.
Relational databases require a special server to be accessible. Thus, the database cannot be easily moved to another location or shared without writing special code to share it. In this case, if the database server goes down, so does the site. Server side scripting languages, such as PHP and ASP, will often have a special set of commands for connecting to and manipulating these. PHP is native in compatibility with MySQL, which is why the two go hand-in-hand in the aforementioned acronym for LAMP.
Data in relational databases can be stored in many different "tables". Each table is similar to a spreadsheet where the data is stored by row and column. Each record will commonly have a unique identifier so that it can be called upon by code and referenced in other tables, hence the relationship in a relational database. By using relational databases, the developer can quickly retrieve data from multiple places without the need to write complex code.
Flat-file databases can occur in many formats. Some common formats are CSV and XML. These are simply text files that can be loaded into the server's memory and then read line for line or searched. They are advantageous in scenarios where data must be portable but are limited in that all of the data for each record must be stored in the same place.
In the case of a CSV or text file, each line or the entire contents of the file can be loaded and then a process known as "pattern matching" can be used to find, replace, and create new data. A common use for CSV is in instances where data must be moved between a relational database and MS Excel or another spreadsheet application. This makes CSV an excellent way to move data between desktop applications and a web site.
XML, on the other hand, is a preferred means for moving data, with very standardized formats, between two web sites. Because of the very strict formatting, XML allows for "non-manned" data exchanges to occur. For an XML file, there are special commands available in languages such as JavaScript, PHP, ASP and CFM so that you can quickly search and manipulate data. However, it still lacks the relational aspect of server-driven databases.
CMS: Joomla, Drupal, Wordpress
CMS stands for Content Management System. Typically, these are nothing more than large website applications that use server side scripting languages to construct a framework for delivering a series of template-driven pages. There are literally hundreds of CMS tools available and many are free. Some of the more popular are Joomla, Drupal, Wordpress, Expression Engine, and ModX. These run the gamut on being free versus licensed and on their specific strengths and weaknesses.
The Dev Department primarily develops Joomla sites. The reason for this is that each CMS is very complex, and it is important that the developer be an expert in the tools they use. Or, as a wise old friend once told us, "You are either a good fisherman or a good golfer, but you can't be both." Some common attributes of a good CMS are:
- A standardized administrative interface that allows the site owner to add and manipulate the content.
- A template-driven display system that allows for the creation of "custom" pages or the use of predefined templates.
- The ability to insert add-on functionality, known as extensions, modules, or components, to extend the base functionality for specific needs.
All of the aforementioned CMS tools have this functionality in varying capacities.
Want to learn more about certification? Click here.

