On Wed, Nov 24, 2010 at 9:55 AM, James Hozier <guitars...@yahoo.com> wrote:

> ... I read online that the first programming language one learns could be
> crucial to the person's future programming skills and habits that become
> ported to other programming languages they learn later on, and I don't want
> to develop any bad habits and practices. I've decided to choose C as my
> first language, for various
>  personal reasons (mostly to audit code for security).
>

C is a decent first language to learn; but I think that starting with C will
focus your attention on the mechanics of how things happen at a very
fundamental level, which is all well and good if you plan to write operating
system kernels or device drivers (or audit them for security).  and starting
with C will help you later learn all the C-derived languages that came
after: C++, Java, C#, etc.

but if you intend to write applications, you may be better served by
starting with a language that focuses your attention on the structure of
your programs and the relationship between their parts.  once you have a
good foundation about the structure and meaning of programs, it's a
relatively simple matter to learn any programming language, including C and
the C-derived languages, as well as languages that are not remotely C-like.

since you've indicated that you are interested in a 'first' language, I must
assume you plan to learn other languages later.  as a result, I strongly
recommend that you start with the book "Structure and Interpretation of
Computer Programs" (available online at
http://mitpress.mit.edu/sicp/full-text/book/book.html, or you can buy a
paper copy if you prefer, for example from Amazon:
http://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262011530).
 this book will give you an excellent foundation on programming in general
(and the Scheme programming language in specific).

despite what some Scheme fans claim, I personally have not found Scheme to
be a terribly useful language for 'real' work.  however, I believe that it's
an excellent language to learn programming with, and when combined with the
book I mentioned, it will leave you in an excellent position to then choose
any other language (or set of languages) you wish.

C was one of my first languages, and while I cannot say that I regret it, I
can't help but feel that in the long run I would have been better served
learning Scheme first.

-ken

Reply via email to