There is a silent holy war (among many thousands to be sure) on
the Internet. It can be found waging in newsgroups, chat rooms,
"web forums" and the like. It is about the Editor of
Choice. Some will say it is
vi while others will
insist the end all editor (and environment in some cases) is
emacs. I would say - the choice is yours, but what
value might I bring you without some simple information about them
Initially built by Bill Joy of Sun Microsystems, the
vi editor represents simplicity and elegance. It has a
wide range of commands and can have MACROS. The
editor is best known for being light. It normally has only a
terminal interface, however, there are clones out there that can
run in X mode. A very thorough tutorial on the
vi editor can be found at the Engineering Computing
Network of Purdue University's VI
On the other hand is
emacs from Richard M.
Stallman, founder of the GNU
Emacs has an intense array of commands,
extensions and tools to help a programmer a long. In fact,
emacs is similar in nature to an Integrated
Development Environment, but better. One can also use mail
utilities, play games, download and participate in newsgroups with
emacs. The trade off for some might be the time it takes to reap
the full benefit of all the things
emacs can do. A
full compliment of
emacs reference material can be
found at the Geek Girl's
There are also many other editors for UNIX out there, some are
vi, some are like
emacs while others
are sort of hybrids. If neither one of the ones mentioned here suit
your tastes, explore and see what else is available, I am sure you
can find one that works for you.
So which one do I use? I prefer the
mainly because I am on so many different platforms and I will be
blunt, I am lazy. It was easy for me to learn and retain the
commands. I used
xemacs for awhile but was easily
frustrated by my own poor memory while trying to learn how
to use all of it. I have always been a sucker for the whole simple
elegance thing too.
I had intended to suggest learning either the Hypertext Markup Language (HTML) or a Text Processing Language as a "primer for programming" but decided to stick with HTML only for several reasons. First, it is somewhat difficult to learn a text processing language and the processing side as well. Second, many people suggest learning HTML before a text processing language - that sort of ended the issue.
Now, what do I mean by Primer for Programming? Well, just that, through HTML, one can learn the basics of structure, a very important aspect of programming. I do not believe one needs to become a master of HTML, rather the opposite, understand how it works and what happens when one uses certain tags. In a sense it is a Primer for Programming Primers if you want to get technical.
HTML is a subset of the Standard General(ized) Markup Language (SGML) which is now coming "online" as the eXtensible Markup Language (XML). HTML is a set of tags that are relatively easy to learn and employ, however, it is a Markup Language which means the author is concerned not with appearance but with the Structure. This is why HTML makes a great primer for primers, some (not all) principles of programming can be found within it.
Another great thing about HTML is it can be fun. It offers very quick rewards for a small amount of work, always a good thing for the aspiring programmer since later, things will not be so easy. I suggest two primers for learning HTML, first, HTML 3.0 Examples, while dated, this is still a great starting point. Second is Dave Raggett's Introduction to HTML.
If you are strictly interested in programming, I suggest learning basic HTML and going no further in the "on line" endeavors until you have a little spare time. Otherwise, for the extremely brave who wish to know and understand a great deal of how HTML works and additional topics such as style sheets I urge you to read everything (several times if you must) at Dr. Terry Sullivan's usability site All Thing's Web.
Try out an editor and play with it, once you feel somewhat comfortable with it, start learning HTML using your editor. This will give excellent practice with your editor and a chance to have a little fun with HTML.