Getting a Web Development Job For Dummies (2015)
Part II. Core Technologies for Web Development
Chapter 6. Discovering the Technology behind the Internet
In This Chapter
Getting up to speed on Internet basics
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.
Learning Technical and Cultural Basics
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.
Why technical basics matter
It’s important to understand technical basics about the web for several reasons, all of which matter:
· To do your job better when technical issues affect decisions you’re making
· To participate intelligently in tactical and strategic discussions with other people in your workgroup or on your project
· To communicate an air of competence and professionalism as you work and socialize with others
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.
You need to have a reference source for when technical discussions go beyond the basics covered in this chapter. Wikipedia gets a lot of criticism, but it’s an accessible source of information for almost any Internet, web, or web development topic. And the book The Internet For Dummies by John Levine and Margaret Levine (Wiley) is worth reading and referring to. You’ll get a strong feel for Internet and web history, basics, technical considerations, and newer topics such as social media.
Why cultural basics matter
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:
· Technically minded: There’s a technical core to web development, and technical understanding and achievement are universally respected within the field. You can rarely go wrong in this arena by becoming more technically skilled.
· Open-minded: People who took web development jobs early on were people who were ready and willing to try new things — either in their off hours, or during work time when they were really supposed to be doing something else. This desire to always check out the latest new thing continues (and continues to cause trouble some of the time) today.
· Disrespect for authority: Early web developers created something outside the bounds of conventional authority. There was, though it may seem hard to believe today, little or no money involved, except for time and resources “borrowed” from government, universities, the military, and — gradually — business.
· Disrespect for employers: There are certainly lousy jobs in web development, with little freedom and low pay. But most web development jobs are relatively well-paid, and people who achieve distinction in a role are usually pretty able to move up or move over to a better job, either within the same organization or (more often) in a different one. So “the boss” doesn’t carry as much weight in web development as in other areas.
· Opinionated: Web development rewards quick thinking and hard work. People who think fast and work hard tend to have a high regard for their own opinion and to be challenging to talk to and work with. In web development, technical skills come first, but if you can mix good technical skills with a reasonable degree of social skills, you can go far.
· Snarky: Snark — a kind of reflexive sarcasm about pretty much everything — is a common feature of web developers’ reactions to all kinds of problems and challenges. At its best, it’s hilarious, but it can get a bit wearing. Wear your snark lightly away from your web developers.
· Devoted to lifelong learning: Web developers are constantly exposed to new technologies and new versions of protocols, software, and platforms. They tackle new learning with an inquisitiveness and doggedness that the average person does not have. They are also willing to share their learning freely among their peers to make everyone better at their craft.
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.
Figure 6-1: Reddit attracts all kinds of visitors for online chats.
The strange case of netiquette
Netiquette is short for “Internet etiquette” — ways of acting online that help you get along with fellow online denizens.
There’s something about typing a message as a comment, into an online bulletin board, or onto a website that seems to encourage people to be aggressive, mean, sarcastic, profane, and otherwise socially unacceptable. Netiquette developed as a way to try to make the online world a little kinder and gentler.
Online exchanges can be very harsh, and people can remember them for a long, long time. Be careful with what you say online. You don’t want to be truly unkind, and you certainly don’t want to do anything career-limiting.
A few netiquette rules that you might keep in mind as you do your work and live your life online:
· DO NOT TYPE IN ALL CAPS. Online messages lack normal feedback channels and softeners such as body language, smiles, and so forth. Typing in ALL CAPS just increases the perceived harshness of a message.
· Don’t use profanity. Everyone can see what you put online. Being profane can be fun and funny in the right place and time, and with the right people. But on the Internet — straddling every place, time zone, and culture — it’s always the wrong place and time for some of your audience to see profanity.
· Don’t press Send when you’re angry. When you’re upset, type your message in a safe place, such as a word processing or notes program. That way, anything brilliant in it gets recorded. Then wait until you calm down before rereading the message, removing all the ALL CAPS typing and most of the snark, and cut and paste it into the website comment field or email message. Then read it again before you press Send.
In the age of social media, there’s a whole new realm of rules and best practices to stay aware of. Be very careful what you put on online sites such as, famously, Facebook. Although web development culture is generally disrespectful of authority and convention, human resources departments at large companies are not. That photograph of you in a crowd of people in various states of undress at Burning Man might get you promoted at Google, but, sadly, it could put you on the “do not hire” list at a wide number of more conservative companies.
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:
· Research the company before you apply. Resources like LinkedIn, Glassdoor, and the company’s website can tell you a lot about a company, including what its culture is like. Look at the company’s mission statement, vision, and values, or other cultural touchstones — and then see if you can find evidence as to whether they’re actually used. (Ideally, they should be reflected in job advertisements.) This will help prepare you for interviews and, if things work out, for working there.
· Make sure your grasp of technical basics is solid, including those described in this book — plus additional information about the areas that you see as being strongest for you. If you’re a network engineer, you will want to know a lot about how the Internet developed, and how it works today; if you’re a graphic designer, you’ll want to understand past experimentation in interface design as well as the range of current practice.
· Learn to talk and interact on a friendly basis with everyone. Web designer cultural traits such as snarkiness, disrespect of authority, and expressing opinions strongly can seem disrespectful or even hostile to people who don’t embody these traits themselves. However, it’s usually not meant that way. Try to find the point, humor, or meaning of each comment or remark, even if the style or tone in which it’s delivered is not to your liking.
· Maintain your core beliefs and point of view, and defend them with reason and wit. Within web development culture, someone who’s labeled a phony is not likely to be well-regarded. If you stick to your own point of view and approach, and don’t let yourself be baited into arguments over small matters, you’ll be respected, even by those who disagree with you.
Figuring Out Binary
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.
Figure 6-2: Binary multiples have different names in SI units.
Here is how the different levels of binary/decimal numbers relate to the daily work of web development:
· Kilobyte: Used for file sizes for web pages and digital images. Web page text, code, and image sizes are often managed to total no more than, for instance, 100KB, so the page loads quickly on a variety of different networking connections.
· Megabyte: Uncompressed image files, such as photographs from a digital camera, are typically several megabytes in size. They are cropped (clipped to a smaller image size) and compressed to sizes ranging from a few kilobytes to perhaps 100KB for a relatively high-quality image. File attachments in PDF format are often several megabytes in size.
· Gigabyte: Once considered a very large file size indeed, almost impossible to deal with, a gigabyte of data is not considered as outrageous today. You would certainly warn users before suggesting that they download a file gigabytes in size, but users on fast networks could deal with it.
· Terabytes and petabytes: New computer technology, both hardware and software, that can deal with files of these sizes is currently being actively developed. There is now software that can race through a file petabytes in size and extract key data, summary numbers, or make a decision such as whether to approve a loan application.
Discovering the Keys to Internet Protocol
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:
· Every device on the Internet is meant to have its own distinctive IP address. (This goal is sometimes simulated rather than fully met, with some devices sharing an IP address or only getting their own IP address temporarily, but the basic idea holds.)
· A data file or data stream is divided up into pieces, called packets.
· Each packet has information that describes it, the source IP address it began at, and the destination IP address it’s meant to go to.
· Each packet is launched from the source address onto the Internet separately, and each finds its own route to the destination.
· Packets arrive in any order they might, and it’s up to the destination computer to re-assemble them into a file or data stream.
· The unsynchronized transmission and reception of packets leads to delays — the receiving computer has to get all the packets it needs to complete a file or a burst of streaming, and the receiving computer also has to take the time needed to put the packets in order and save them or stream them.
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.
Figure 6-3: The U.S. Federal Communications Commission thinks the Internet is kids’ stuff.
How to make a billion dollars with IP
In trying to explain to friends and family how Silicon Valley works, one of the authors (Smith) describes the get-rich-quick appeal of some technical breakthroughs using IP as an example: If you can find a way to speed up the Internet by 10%, he explains, you’ll probably become a billionaire.
People get this example because they have some idea of how pervasive the Internet is, how frustrating delays are, and how valuable it might be to have even a relatively small improvement in Internet transmission speeds.
Similarly, much of the work you do in web development will be about speeding up users’ experience of the web. This can include reducing the amount of text or the size of the graphics in a web page, rearranging the elements on a page so the initial part of the page (what the user is looking at initially) loads first, or even putting a snippet of information onto one page so a user doesn’t have to click on a link and visit another page to find out what a word or a reference means.
Learn all you can stand to learn about IP and how the Internet works, then think about what you can do to help make it work better for your development team and your users. The gains you make may not be worth a billion dollars, but they could well be worth a lot.
If you want to be taken seriously in discussions with technically literate people, don’t refer to “the IP protocol” or “the TCP protocol,” because the “P” in both acronyms already stands for “protocol.” If you add the word “protocol” afterward, you’re basically saying “the Internet Protocol protocol” or “the Transmission Control Protocol protocol.” Instead, refer to them both by either their full names or just the acronyms. “I’m having trouble understanding everything I need to know about IP” sounds more literate.