TechWhirl (TECHWR-L) is a resource for technical writing and technical communications professionals of all experience levels and in all industries to share their experiences and acquire information.
For two decades, technical communicators have turned to TechWhirl to ask and answer questions about the always-changing world of technical communications, such as tools, skills, career paths, methodologies, and emerging industries. The TechWhirl Archives and magazine, created for, by and about technical writers, offer a wealth of knowledge to everyone with an interest in any aspect of technical communications.
I was sent a message by a member of this list, asking how to acquire the
programming skills I so loudly recommended. Here are my opinions on the
subject.
There are only two ways I know of: formal classroom instruction (including
mail-order or Web classes); or picking up a book and development kit and
sitting down for some long-night sessions.
The first has the benefit of being structured and predictable, and you get a
real teacher to correct mistakes. That's how I learned assembly, in college.
That isn't so much the case if you take a mail-order or Web class, of
course, but generally there's a warm body somewhere that looks over your
code and suggests things. Another benefit is that you get credit for this
form of education, which many companies demand before paying for it.
The drawback to such a class is that you have to find one, sign up for it,
then work on a schedule. My learning style is idiosyncratic; I learn pretty
well on my own, and I like to crawl from book to monitor to compiler
whenever I want and in whatever order seems good to me. It's chaotic, but
it's workable for me, and I can do it at midnight if I want.
Several universities have classes for adult students, either in person or
remote. I know remote learning programs are there, but I haven't used them
so I didn't keep the URLs. Others on this list will undoubtedly be able to
supply them. There are often adult night school classes at high schools too,
and at vocational schools.
As to the language you learn, it depends on whether you want a maximally
marketable language, or if you just want to learn a language to get the
experience of programming. If the former, I'd think that Visual Basic or C++
would be your best bets. They suffer from being complicated and from being
commercial products that usually require an outlay of cash to get started.
On the plus side, Visual Basic in particular lets you develop apps that you
can see immediately in a familiar Windows setting. Java is a hot item, and
its development kit is free for download from Sun, but it may not be a good
language for the beginner. It's not particularly intuitive for most
neophytes, although it is wonderfully object-oriented and can quickly teach
those principles.
In the "learner" category, I'd look at Python and JavaScript. Neither is a
full-blown compiled language like C, but they're excellent for teaching
principles because they're both free and both object-oriented and fairly
easy to pick up. JavaScript lives and works only within a browser, but you
can just pick up a book on JavaScript and start coding immediately with
nothing more complicated than Windows NotePad. Python is a little more
complicated, and it's not displayed graphically in a browser, but it's
completely object-oriented and straightforward to learn. The whole Python
package can be downloaded from http://www.python.org. Coming in third I'd
look at Microsoft's VBScript. Its syntax is similar to (Surprise! Surprise!)
Microsoft's Visual Basic, and is used for scripting Web pages, just as
JavaScript is. VBScript isn't as popular as JavaScript, however. VBScript is
free too. Just buy a book, sit down with NotePad, and start coding stuff you
can display in your copy of Internet Explorer.
There are some other languages you can play with, often for little money.
Pascal is still around, but it's not popular, even though it's far easier to
learn, I think, than C. BASIC teaches only the most rudimentary skills, but
it also is readily available. Tcl is another scripting language you can find
here and there. If you're ready to move to a true UNIX, you can get a Linux
version from Red Hat, Caldera, or somebody else, usually complete with
facilities for Python, C, Tcl, and C++. If you're on an Apple, you may well
have AppleScript to play with. If you have Word or Excel, you have VBA
(Visual Basic for Applications) that will teach you fundamentals. As a
bonus, with VBA under your belt you can usually speed up both your work and
the work of those around you.
There are Dummies books for most common languages, including Java, C, C++,
Visual Basic, JavaScript, VBScript, and VBA.
Understand that each language has its power cells and its empty chambers.
Simpler languages like JavaScript and VBScript teach all of the programming
fundamentals, such as conditionals, loops, variables, and the like, but they
don't teach such things as data handling and graphics management, because
they're not designed for such an environment. C and C++ teach much more, but
they're correspondingly more complicated and potentially intimidating.
Python is a very high-level language, which makes it easy to learn and use,
but to manipulate bits and bytes directly (as you often want to do to gain
maximum speed) you have to plunge into another language like C or, at an
extreme, assembly.
Wow. That exhausted me just writing it. Best of luck in your search for a
language to learn.
Tim Altom
Adobe Certified Expert, Acrobat
Simply Written, Inc.
The FrameMaker support people
We train and consult on the Clustar Method
for single source documentation
317.562-9298 http://www.simplywritten.com