Chapter 6
In This Chapter
Getting up to speed on Internet basics
Understanding netiquette
Exploring binary
Turning the key to IP
The web was originally called the World Wide Web, and that’s what the “www” in most web addresses stands for. Today, the web is at a fascinating point in its development.
Because the web was only invented, and initially popularized, in the early 1990s, many people who were active in its initial development and growth are still not only alive, but active professionally, today. The founders are still working, speaking, writing, and generally sharing their expertise and making their opinions heard.
At the same time, the web has been around a couple of decades now. So many waves of new web developers have gotten involved, and the newer people are more and more distant from that early burst of work, energy, enthusiasm, and money. They’re also more distant from the core technical knowledge that early web developers had to learn to get anything done, and from the web development lessons that early adopters absorbed.
This chapter introduces the irreducible core of what you need to know about the Internet to have an intelligent conversation with what web developers would call “a technical person.” This includes buzzwords and knowledge that most web developers know, so you’ll often feel stupid, and sometimes make mistakes — or not be able to get important work done easily — if you don’t know it. So study up — and find ways to learn more if you think you need to. Your career will benefit tremendously.
You might wonder why you might need to know technical basics of the Internet and the web to do a web development job. After all, some of the things that web developers worry about today, such as how to make their pages work well on a wide range of mobile devices, are pretty different from what people worried about in the early days, right?
However, you’ll find that both technical and cultural basics matter — and that they’re strongly interrelated. We tend to think of technical issues as hard, factual, and objective, and cultural knowledge as soft, “squishy,” and subjective. However, each type of issue has elements of the other in it, and you need to know them both to be successful in a web development career.
It’s important to understand technical basics about the web for several reasons, all of which matter:
This is a case where cultural factors affect technical issues as well. Web development people are proud of the technical competence they develop in their work, and status and pay increase the more technical a job role is considered to be, as well as how technically skilled you’re perceived as being within a given job description.
If you don’t know your stuff technically, you can be perceived as a newbie — someone with little relevant experience — or, the more modern term, a noob, which implies someone who is not only new to an area of knowledge, but perhaps not even capable of learning it at all.
Technical basics also matter, of course, in getting the job done. If you accidentally put a photograph with a large file size onto a web page, the page will load slowly. If, on the other hand, you compress the same photograph so it will load faster, but overdo it, the image quality will be poor, and the look and feel of the page will be compromised.
So understanding technical information related to web development as a discipline, as well as issues relating to your specific job, is crucial. This chapter is intended to give you enough basic knowledge to get by, and also enough so you’re ready to learn more as the opportunity arises.
There’s a unique culture that developed around web development in its early years that continues to this day. Not everyone who does web development is the same, of course, but there is a central tendency around the way people in these roles think and act.
Most people in web development have a few things in common:
A great way to absorb web development culture is to hang out on technically oriented websites that encourage lots of comment, such as reddit. Reddit is so famous for its online exchanges that celebrities and politicians now visit to exchange views and try to influence the very influential reddit audience. Figure 6-1 shows a reddit exchange with Bill Nye, the Science Guy. President Obama has visited reddit as well.
Cultural “fit” might seem unimportant, compared to objective qualifications, but both of the authors of this book have worked with many companies that turn down potential employees — often in the later rounds of interviews — because they think there won’t be a cultural fit with a potential employee.
How can you make sure not to get frozen out of promising job opportunities because of cultural fit? The answer isn’t changing your core beliefs or personal practices to fit what you think a company wants.
Instead, do four things:
Mathematics is the basis of the Internet. All sorts of seemingly abstruse mathematical theory has turned out to have direct application to Internet concerns such as network design, transmission speed, and page load time.
There is one area of mathematics that everyone who works in web development should have a basic understanding of, and that’s the use of binary numbers and their translation into base ten — the numbering we’re all used to, with digits 0-9 and place values, so 1349 and 9143 mean very different things.
A friend referred to general knowledge of binary numbers and their implications for web development, and computer technology in general, as “the way of the bit.” Here’s a brief description of binary numbers and how they apply to work in web development.
Electronic circuits are designed to support just two different conditions, or states: on or off. The on state is denoted by the digit 1, and the off state by the digit 0. When each electronic circuit state is described by either a 0 or a 1, that circuit is called a binary digit, or “bit.” (It’s called a bit to distinguish it from a normal, base ten digit, which can have the values 0-9 in each place.)
The number 0000 means something a little different in binary numbers than in most decimal numbering systems. In daily use, the number 0001 is just a long way of writing 1. But in binary numbers, as used in computing, 0001 means “there are four storage positions, and the first three are in the off position (0); the last one is in the one position (1).”
Binary numbers are related to mainstream digital numbers through a series of coincidences that are used to create terms that are sensible in both approaches. Table 6-1 is a table of the powers of 2 — the values of successively higher place positions in binary digits — the exponential value that the binary numbers represent, the value in base ten, and how some of the numbers are referred to in mainstream parlance.
For convenience, we normally deal with bytes instead of bits. A byte is a binary number with eight positions, such as 10011011. Because a byte has eight positions, it can represent decimal numbers between 0 and 255; or, put another way, it can have 256 different values.
This is convenient because, with 256 different values, you can represent all the letters of the alphabet, conventional digits 0-9, and all the special characters on a typical English-language typewriter keyboard, plus some additional characters, in just one chunk of eight binary digits — one byte.
Table 6-1 shows the values associated with different numbers of bytes. The exact same names apply to bits, but most computing-related discussions deal in bytes.
The beauty and simplicity of the relationship among increasing binary values and more traditional decimal values is one of the foundations of how the Internet, the web, and all computer technology work, and how they’re understood by people like web developers who work with them on a daily basis. If you haven’t been exposed to this before, take a little time to study the table and see how the words you use in your daily work are derived from mathematical relationships between the decimal and binary numbering systems.
The web page displayed in Figure 6-2 shows the prefixes for binary multiples described above and also the International System of Units (or SI, the acronym for the French name for these units) names for the same prefixes. SI units are used in science and are therefore influential in technology. The SI unit names have not “crossed over” into general use in the web development world, but you should be aware that they exist, and that you might encounter them at some point in doing your work.
Here is how the different levels of binary/decimal numbers relate to the daily work of web development:
The Internet Protocol (IP) is the basis for the Internet. Everyone who works in web development can benefit from understanding a few key things about it, and from learning more as specific projects require it.
The basic problem for a networking protocol is moving data from one computer to another across some kind of connection. The Internet Protocol is connectionless, though, meaning that it doesn’t handle the details of the connection between the computer. The connections are handled by the Transmission Control Protocol (TCP), and the acronyms TCP/IP and IP are used somewhat interchangeably. When TCP is used, it refers specifically to the connections part of the pair of protocols.
Many networking systems were tried before the Internet was begun, and many more have been discussed or put into use since. There have been competitions, which have sometimes even been referred to as “wars,” between these different standards. IP is the current winner, and will probably be the champion for a long time.
There are a few keys to understanding how IP works:
You can learn a whole lot more about Internet Protocol than this, of course. The Internet For Dummies describes it well, and puts it in context with TCP and a bunch of other relevant technical information.
IP is so important, the U.S. Government sees fit to try to explain it to children. The web page shown in Figure 6-3 is a history of the Internet that briefly mentions TCP and IP.