Post by Marti-Pair Furxheir S.H. on Jul 27, 2013 14:51:43 GMT -6
What is Web Development?
Before we can start talking about Web Development, we need to have an idea of what it is. For a lot of people, it involves building websites.
Wikipedia defines it as:
But personally, I find that definition too restrictive since there are more and more systems that use web development tools outside of the strict definition of a web site.
Did you know that the Mozilla foundation is planning to build a cell phone that strictly uses HTML5 (a web development language) for its operations?
Did you know that several APIs built using web development tools and deployed using a web server are used to supply information to desktop programs?
Did you know that many software development kits for Android also heavily use HTML5 for creating the user interfaces?
In these 3 cases, web developers are involved in the process but no web sites are created.
There are more and more cases where "web sites" are acting less like web sites and more like fully polished applications, such as Google Docs or Gmail.
Therefore, we will use a different definition for this class I crafted myself:
Now that we have a definition, does that help us identifying what web development is? No, because there are multiple tools and multiple types of applications.
Instead, we'll try to approach what is web development from another angle, from the various roles implicated in "building applications using tools that were meant for creating websites".
Roles in web development
There are seven roles typically implicated in the web development process:
Of course, multiple people can fill a single role, and a single person can fill multiple roles.
Before we continue, we've used a few words in the above definitions which are not necessarily common in everyday language and which will not be covered in future classes, so let's define them here:
Let's go back to the roles. They are important to understand because every role interacts with others and if you are to become a good developer, you need to understand the entire process.
One of the reasons is that in some projects, the development part is the longest and as such, it often starts before the mock-up is created. If the developer understands his role properly, he will be better at understanding which tasks to perform while the design of the website is not completed.
The HTML/CSS Coder slash Template Creator and the Developer will be covered next week, so let's try to understand each of the remaining 5 roles which will not be covered in the current certificate:
So, now we know a little about what web development is and about who is involved in it. But that still doesn't tell us what is web development, or rather, what does web development actually develops?
In most cases, the output of the web development cycle is a website, either for the Internet, if publicly accessible, or for an intranet, if it is an internal website just for a corporation.
A website is composed of multiple parts:
Since links are directly located in a page and not a separate file, when we are talking about a website, we are generally talking about HTML pages, either static (saved as is on the web server) or dynamic (where the HTML is composed by a script) and its associated resources (CSS files, Images and scripts).
These are the components that will be generated during the web development cycle: HTML pages, scripts that generate HTML pages, CSS files, script files and Images. We will cover each of these resources in future weeks of this course.
The web in general however, is more than these resources and include FTP sites, REST or WSDL APIs for other websites, IRC servers and newsgroups which were once bigger than HTML pages.
Of these, only REST apis will be covered during this certificate.
This concludes this week's class. Being an introduction class for an introduction course, it is rather summary in its content, but if you have questions, feel free to ask them.
If you didn't learn anything this week, don't despair, this week was designed to make sure everyone is up to the same level.
Next week: The Designer and the Developer.
Assignment for the week:
Research on the internet and find:
One Content Management System you can deploy on a server that is not named yet in my examples or by other students.
Once your post is created indicating the name of the CMS you plan to study, you have 1 week to modify your post to add the following information:
Incomplete assignments will be graded accordingly, so if you only find 4 features, don't despair, fill it anyway!
If you register late to this class, you need to submit your assignment before starting the next course.
Before we can start talking about Web Development, we need to have an idea of what it is. For a lot of people, it involves building websites.
Wikipedia defines it as:
a broad term for the work involved in developing a web site for the Internet (World Wide Web) or an intranet (a private network).
But personally, I find that definition too restrictive since there are more and more systems that use web development tools outside of the strict definition of a web site.
Did you know that the Mozilla foundation is planning to build a cell phone that strictly uses HTML5 (a web development language) for its operations?
Did you know that several APIs built using web development tools and deployed using a web server are used to supply information to desktop programs?
Did you know that many software development kits for Android also heavily use HTML5 for creating the user interfaces?
In these 3 cases, web developers are involved in the process but no web sites are created.
There are more and more cases where "web sites" are acting less like web sites and more like fully polished applications, such as Google Docs or Gmail.
Therefore, we will use a different definition for this class I crafted myself:
Building applications using tools that were meant for creating websites
Now that we have a definition, does that help us identifying what web development is? No, because there are multiple tools and multiple types of applications.
Instead, we'll try to approach what is web development from another angle, from the various roles implicated in "building applications using tools that were meant for creating websites".
Roles in web development
There are seven roles typically implicated in the web development process:
- The Analyst / Project Manager is the person in charge of coordinating the various roles, of deciding the scope and direction of the development and of communicating with the client.
- The Graphic Designer is the person in charge of determining the look of the application, including producing the graphic mock-ups and the various images meant for the site
- The HTML/CSS coder / Template creator is the person in charge of creating the browser compatible version of the website from the approved mock-ups created by the Graphic Designer.
- The CMS/Code Integrator is the person in charge of connecting the HTML/CSS templates to the Content Management System (CMS) used or the code created for the website
- The Developer is the person in charge of either modifying an existing CMS (often via extension or module) or create new code to enable features not available in static sites
- The Webmaster/Administrator is the person is charge of coordinating the content entry, of managing the overall structure of the website as well as the various users
- The Editor is a person is charge of creating the content for either the whole site or for a specific section of a site.
Of course, multiple people can fill a single role, and a single person can fill multiple roles.
Before we continue, we've used a few words in the above definitions which are not necessarily common in everyday language and which will not be covered in future classes, so let's define them here:
- Content Management System (CMS): a program which help with the management of a web site and allows features not available in a static site (such as search, comments, forums, etc…). Examples of pre-built CMS include Wordpress, Drupal, Joomla, TYPO3.
- Static website: website which is not managed by a content management system or similar functionalities. In this case, all of the content of the website is pre-written and doesn't change in real time.
- Graphic Mock-up: an image file showing how the website could look, with placeholder images
- Client: person, department or company for which the website is built. It doesn't just include external clients: several companies have their own internal web developers and the client is often the communication department or the sales department.
Let's go back to the roles. They are important to understand because every role interacts with others and if you are to become a good developer, you need to understand the entire process.
One of the reasons is that in some projects, the development part is the longest and as such, it often starts before the mock-up is created. If the developer understands his role properly, he will be better at understanding which tasks to perform while the design of the website is not completed.
The HTML/CSS Coder slash Template Creator and the Developer will be covered next week, so let's try to understand each of the remaining 5 roles which will not be covered in the current certificate:
- The Analyst/ Project Manager is, hopefully, a senior expert on web development who understands the various roles and knows how to communicate effectively with them. Programmer Analyst typically fill this role in traditional software development, but it will take a little time before the programmer analyst curriculum is able to properly cover web development. In a complex project, the output of this role is notes for each of the 6 other roles, a complete breakdown of the various types of pages required from the Template Creator as well as a list of new functionalities required from the developer.
- The Graphic Designer is an often an artist good with Photoshop, the standard tool of Graphic Design. Mock-ups are an essential part of the design process, but they are often done by the same person who does the HTML/CSS templates. In this certificate, they are 2 distinct roles and only the HTML/CSS template creation part will be covered. Why? Because not all Graphic Designers make good HTML/CSS coders and as a web developer, you often need to perform the HTML/CSS coding yourself.
- The CMS/Code integrator is the person is charge of integrating the HTML/CSS templates into the Content Management System. In the case of Wordpress, this either means building a new theme or modifying an existing theme to look like the Mock-up. In TYPO3, this means mapping TYPO3 to use the HTML/CSS template. This step is not directly covered in this certificate because it is Content Management System specific and this certificate is general. We will review how to perform this step in custom code when not using a pre-build Content Management System however.
- The Webmaster/administrator often sits down with the Project Manager from day one to help build the structure of the future website as the structure of a website can influence the design process. What kind of menus are needed? How many editors are there? Does content need to be imported into the system? How many images are available from the client? However, their real work often start once the initial integration is completed, as they start to import content into the new site. As a result, they are often the primary testers of the system and thus, a good ally of the web developer. The reason is simple: the developer sees development from the coder point of view while the webmaster sees development from the user point of view. The Webmaster is important during development because it keeps it grounded to how users want the system to work.
- The Editors create the content. Many simply send their text with a word processing program, but some have requirements about image placements, colors, tables or other functionalities. In a big enterprise, the number of editors can easily dwarf the development team and it is important in such cases that their contributions are managed by the webmaster, otherwise, the web developer can quickly drown under requests.
So, now we know a little about what web development is and about who is involved in it. But that still doesn't tell us what is web development, or rather, what does web development actually develops?
In most cases, the output of the web development cycle is a website, either for the Internet, if publicly accessible, or for an intranet, if it is an internal website just for a corporation.
A website is composed of multiple parts:
- Pages, which you can visit and read.
- Links, which are special tags on a page which allows the user to either navigate to other pages or perform actions.
- Embedded resources like images, CSS files and scripts
Since links are directly located in a page and not a separate file, when we are talking about a website, we are generally talking about HTML pages, either static (saved as is on the web server) or dynamic (where the HTML is composed by a script) and its associated resources (CSS files, Images and scripts).
These are the components that will be generated during the web development cycle: HTML pages, scripts that generate HTML pages, CSS files, script files and Images. We will cover each of these resources in future weeks of this course.
The web in general however, is more than these resources and include FTP sites, REST or WSDL APIs for other websites, IRC servers and newsgroups which were once bigger than HTML pages.
Of these, only REST apis will be covered during this certificate.
This concludes this week's class. Being an introduction class for an introduction course, it is rather summary in its content, but if you have questions, feel free to ask them.
If you didn't learn anything this week, don't despair, this week was designed to make sure everyone is up to the same level.
Next week: The Designer and the Developer.
Assignment for the week:
Research on the internet and find:
One Content Management System you can deploy on a server that is not named yet in my examples or by other students.
Once your post is created indicating the name of the CMS you plan to study, you have 1 week to modify your post to add the following information:
- Which programming language(s) does it use to implement its functionalities?
- What is the latest version(s)? (some CMS have multiple branches that are active at the same time)
- Name who is responsible for development (either a person, an association or a corporation)
- What is the type of license? (GPL? MIT? Proprietary?)
- Name 5 features that are available in that CMS which are not present in static HTML sites, and not listed yet by other students or by my examples (so, post them early!)
Incomplete assignments will be graded accordingly, so if you only find 4 features, don't despair, fill it anyway!
If you register late to this class, you need to submit your assignment before starting the next course.