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