When simplified, the internet is really just computers sharing data between each other. You probably already knew that, but if we look at it deeper you can get an understanding of the challenges that arise with working in web development, the biggest of which is how each computer interprets that data. In order for that data to be transmitted across long distances it must travel through various mediums like electricity and light, but no matter how it travels the end result is either an “on” or “off” state. If you have seen binary before this can seem familiar (e.g. the letter “A” in binary is 01000001. 0 = off, 1 = on).

If you are that computer on the other end of the world receiving the data, how do you know what to do with all these on or off jolts of electricity? There has to be an interpreter of some sort to distinguish between those on and off sequences. This is where the network driver on your operating system comes into play, it can establish the connection between your computer and others on the internet and then translate the data between each other.

Now you have this ability to send and receive data, but what are you going to do with it? There are various programs on your computer to use with the internet such as getting updates for your operating system, the infamous napster, or maybe even a multiplayer video game. In web development we of course use the web browser. It is important here to note that the data is shown differently depending on the program you use because it also applies to web browsers. This is one of the biggest annoyances for everyone in web development, especially in the early stages of the internet.

When the internet began there was a lot of fierce competition between browsers. Many developed their own standards about how to structure the code for websites, so much so that most websites were dedicated to one or two specific browsers. Noticing that this was a problem, Tim Berners-Lee founded the World Wide Web Consortium (W3C) whose goal was to set a standard of compatibility between browsers. This was a really interesting battle and if you want to know further about it check out this amazing movie:

These compatibility standards are still a problem today unfortunately and as much as I am a fan of Windows, Internet Explorer (IE) is the bane of all web developers. It is popularly known for not adapting fast enough and not offering good internal tools to help developers debug their pages. Many companies use Windows for their office computers and they come pre-installed with older version of IE that never get updated so a large audience still use outdated technology.

I don’t want to make it sound like IE is the only browser with problems though, every browser has their own pitfalls. However every developer has to choose one main browser to work in and recently the consensus has become Chrome because it renders HTML and CSS fairly logically and has the best developer tool out there. Firefox (FF) with the Firebug extension is really great but FF has some rendering problems. Safari renders well, but the new developer tools suck. The other browsers out there honestly aren’t used enough to be tested on unless you have a very niche audience.

TL;DR:

Computers share data between each other

That data has to be interpreted

Different Web Browsers interpret data differently

IE is a horrible browser to test with, unfortunately a lot of people still use it and must be tested on eventually

Chrome is my current recommendation for the best browser to work with in development