Glasses this time, but keep up the hard work, we're just getting started.
When you type a web address in your browser it’s asking a web server somewhere to send your browser a page to display. The webserver gets the request and is like yeah, ok Emma Watson pictures again!?… what a weirdo, but whatever, here is the page.
A bunch of technologies work together on the server to make this happen, the stack.
The most common stack is the LAMP stack, made up of four things, Linux is the operating system, Apache is the web server, mySQL is the database, and PHP is the server side programming language.
You can stick other stuff in too, like Python or Ruby instead of PHP, Engine X instead of Apache, or MariaDB instead of mySQL, and tons more. If you buy server space for a site it’s usually running a version of the LAMP stack.
Let’s go deep. A distribution of Linux is the operating system. Linux is stable, secure, free, and it’s open source, meaning that anyone can download it and look at the source code, plus if you’re a programmer you can contribute code back to it, like a bad ass.
Apache is the web server. It listens for your page requests and then tells the server to run the necessary code, in this case PHP. That code runs and accesses or inputs any data it needs into the mySQL database and dynamically spits out a page of HTML, plus some other files which Apache sends back to you.
Now you’re thinking, what language should I learn? The answer? Fucking pick one and get to work! For the web, Ruby or Python are well written languages that help you learn to write good code. PHP is great too, in fact, it’s the most popular language on the web. Facebook was written in PHP and open source CMS systems, like Wordpress and Drupal use it. If you kick ass with any of those, you’ll always be able to find a job, unless you’re a total asshole, and even then it might not matter. PHP gets made fun of for not being as elegant as other languages and being a bit quirky, but newer versions are better, and it’s not going anywhere.
Any good developer knows at least one language well with a peripheral knowledge of a few others, and is always learning. Once you master the basics of programming it’s easier to pick up new languages too.
Now, there’s one more layer, the front end code like HTML, CSS, and Javascript. This code lives on your server too, in a directory usually called the webroot, along with the server side code. If your site is dynamic, the HTML gets generated on the fly, and any referenced CSS and Javascript, plus images, video or audio files get sent to your browser to become a web page. The look and feel of that web page is controlled by the front end code, the HTML, CSS and javascript which we’ll talk about next, and things will start looking real good.
Questions or Comments?