[vox] [OT] Learning to program
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vox] [OT] Learning to program
matthew johnson writes:
> Found that very interesting too :).
> Thanks for sharing!
> To learn to programming, which is the best way? I'm an OK learner by
> myself, but not the best (find it better and easier to have a teacher who
> knows his or her stuff to ask the annoying questions to).
It's cheapest to learn on your own - but effective *only* with the
proper materials. You may find it best to do this, and have people on
hand who are knowledgeable for just answering questions.
USENET can be a *humongous* educational asset - but you need to adapt
to its bizarre culture. In particular, newsgroups like comp.lang.c are
*incredibly* helpful, but also hold to the older style of newsgroup
interactions - they stick to a lot of the "standard" USENET rules
which have been abandoned by many newcomer USENET groups. It is
necessary to read all FAQs before attempting to post to USENET, and
always read the group for at least a couple weeks before attempting to
Learning a programming language and learning to program are very
different things - many people who know a language (or even three)
don't know very much about programming. A good text, such as
Sedgewick's "Algorithms in C", is necessary for learning to program
(unfortunately, that book, as well as many others, assumes already
that you know a particular language). Many of the best books on
programming presuppose knowledge of a language, so that may be where
you should begin.
I'd recommend learning C, as it seems to be the most
frequently-relied-upon language by the really good programming
books. Most of what you learn of C can also be carried directly over
to C++, should you decide to take that up as well - though there are
several things you will also need to unlearn. There is simply no
substitute for K&R2 - Kernighan and Ritchie's "The C Programming
Language", 2nd Edition. There are many, many books on C available out
there, and most of them suck. Supplement what you find in the book by
interacting with comp.lang.c and/or alt.comp.lang.learn.c-c++.
Once you have some strong C knowledge, you might move onto "C
Unleashed", by Heathfield et al. It was written by some of the most
active participants to comp.lang.c, and covers a wide range of
interesting topics, including some important, general programming
concepts, in *very* easy-to-understand layman's terms. Once you've
come to terms with that, tackle Sedgewick for some heavier
stuff. Sedgewick's C style is not great, but it suffices to
demonstrate the algorithms, which are the heart of his book(s).
C on its own is quite useful in the UNIX/Linux world; but these days
C++ seems to be in somewhat higher demand for systems programming. C++
has some disadvantages to C in a few respects, and also throws in a
lot of what some might consider to be little more than cruft; but it
also makes a few serious contributions: in particular, error handling
is exponentially easier (IMHO) using exceptions; and templates offer
tremendous leaps forward in generic programming (though not if you
compare it to Ada). At any rate, it's worth learning at least
something about C++ at some point.
vox mailing list