Web programming is an increasingly large branch of programming. It deals with creating websites. But it’s far more than just simple HTML code. From server-side languages such as PHP, to layout languages like CSS, to large all-in-one web frameworks such as Django, web programming has a great deal of subfields.
One important, although less used today, set of programs used to build websites is the LAMP stack. This stands for Linux, Apache, MySQL, and PHP, the four main tools used to create the website. Linux is the operating system that everything else runs on, Apache is the web server that gives HTML pages to the web browser, PHP is the programming language that generates the HTML, and MySQL is the database server that stores information about the website. The LAMP stack is still very important because web frameworks, such as WordPress, are often based off of it. However, for most web sites, it’s too low level, and using a framework makes things easier and quicker.
There are many different frameworks, which is a mixed blessing. Because of the variety of frameworks, it has become very easy to create a website that you want. For example, to create a blog, all you have to do is download WordPress onto a web server and begin writing posts. A forum site is as simple as using phpBB. A wiki just needs MediaWiki in order to function. The drawback of this, however, is that there’s a lot to learn in order to be an effective web programmer. Different frameworks often have very little in common, so in order to stay current with your knowledge, you need to be constantly learning, even more so than for application programming.
This is, however, less of a problem with lower-level languages, such as the aforementioned LAMP stack and basic web page languages such as HTML and CSS. However, building a site this way can be very tricky. The web has very few universal standards, and all of the major web browsers have slight quirks and incompatibilities that need to be worked around in order to make a website look the same everywhere. Web frameworks generally handle this automatically, but when writing raw code you have to do this yourself.
Another drawback of web programming is that it doesn’t translate well to any other platform. Web programming is oriented around web pages, not general APIs that application programming is based on. Other fields, such as mobile programming, have very little in common with the web.
All in all, web programming is a great opportunity but it can also be a challenge. While learning to build a specific website can be done quickly, becoming an expert requires a large amount of learning.