thorn in the side of programmers—has cleaned up its act, and is now on par with
Chrome, Firefox, Safari, and Opera. That said, my browser of choice is Firefox, and in
this text, I will discuss Firefox features that will help you in your programming jour‐
ney. Other browsers also have these features, but I will describe them as they are
implemented in Firefox, so the path of least resistance while you go through this book
will be to use Firefox.
You will need a text editor to actually write your code. The choice of text editors can
be a very contentious—almost religious—debate. Broadly speaking, text editors can
be categorized as text-mode editors or windowed editors. The two most popular text-
mode editors are vi/vim and Emacs. One big advantage to text-mode editors is that,
in addition to using them on your computer, you can use them over SSH—meaning
you can remotely connect to a computer and edit your files in a familiar editor. Win‐
dowed editors can feel more modern, and add some helpful (and more familiar) user
interface elements. At the end of the day, however, you are editing text only, so a win‐
dowed editor doesn’t offer an inherent advantage over a text-mode editor. Popular
windowed editors are Atom, Sublime Text, Coda, Visual Studio, Notepad++, TextPad,
and Xcode. If you are already familiar with one of these editors, there is probably no
reason to switch. If you are using Notepad on Windows, however, I highly recom‐
mend upgrading to a more sophisticated editor (Notepad++ is an easy and free
choice for Windows users).
Describing all the features of your editor is beyond the scope of this book, but there
are a few features that you will want to learn how to use:
Syntax highlighting
Syntax highlighting uses color to distinguish syntactic elements in your program.
For example, literals might be one color and variables another (you will learn
what these terms mean soon!). This feature can make it easier to spot problems
in your code. Most modern text editors will have syntax highlighting enabled by
default; if your code isn’t multicolored, consult your editor documentation to
learn how to enable it.
Bracket matching
Most programming languages make heavy use of parentheses, curly braces, and
square brackets (collectively referred to as “brackets”). Sometimes, the contents
of these brackets span many lines, or even more than one screen, and you’ll have
brackets within brackets, often of different types. It’s critical that brackets match
up, or “balance”; if they don’t, your program won’t work correctly. Bracket match‐
ing provides visual cues about where brackets begin and end, and can help you
spot problems with mismatched brackets. Bracket matching is handled differ‐
ently in different editors, ranging from a very subtle cue to a very obvious one.
Unmatched brackets are a common source of frustration for beginners, so I
The Tools | 3