I'd just like to clarify your question.What's the
best way to learn additional programming
languages? or What's the best way to get
started with programming?
Having taught several people how to program and learning
a multitude of languages on my own time, I feel that I speak
from experience when I say that a programmer's mindset is
unlike anything in the world. Including engineering, the
natural sciences, even other fields of computer science. If
you're asking the latter question, then my advice to you is
as follows: Develop the mindset first!
- Learn Boolean algebra
The simplest way to
understanding conditional expressions is the most direct
way--return to the source. Basic Boolean algebra will cover
AND, OR, and NOT, condition groupings, changing from NOT AND
to OR expressions, etc. If you're really curious, you can
even go on to read about XOR and XNOR. If you go that far,
you may even want to learn about Boolean truth tables, in
which we analyze the input and output values of a "function"
(traditionally a circuit, but applies here too).
- Start with a simple language
I've taken to
calling beginning languages "gateway" languages. Just like
gateway drugs, and--depending on how hooked you become on
programming--probably just as detrimental to your health.
Perl, you can learn the basics of programming (flow control)
without worrying about complicated syntax or confusing
- Design a small project for yourself
the things I've learned during my time in this industry is
that the potential for learning is much greater when you
have a deadline! While I wouldn't exactly take it that far,
you can most certainly come up with an idea for a program
you would like to write, and set time-oriented goals for
yourself. Some of my earliest programs included a batch-file
and QBASIC system maintenance tool, and another QBASIC
program that cataloged information about our neighboring
star systems (for quick reference in Sierra's Outpost :)
Some of the things I would recommend against are:
- Learning a new operating system concurrently
(like Perl and Linux)
- Learning more than one language at a time
- Learning out of a book
I've found that many
of the techniques and functions you learn out of books have
little-or-no real-world application. The Camel books for
Perl are pretty good, as is anything by O'Reily and our
friend merlyn. But be wary of book titles like "Mastering
C++ in 24 Hours". It just simply can't be done.
If, however, you're interested in expanding your horizons
and learning an additional programming language, then I
would definitely use some of the items from the above list.
Design a program you want to write. Pickup a book to use as
a reference. Find a decent group of people you can ask
questions (like us :). But most importantly, ENJOY YOURSELF!
Good luck, young Jedi.
I am the lurker that spams in the night.