Originally posted by PULS3
Im planning on Majoring in computer science in college and I wanted to get some practice before I started.I want to currently learn C and see what else I can learn after learning C.So can you guys recommend me a tutorial on how to learn C and a program to write in.Also any help and advice is appreciated
Let me begin by saying that the best resources are books. There are no free, public resources that can rival a good book. A book's author gets paid,
it's their job to create good content. Furthermore, the author of a book is generally well educated (and frequently well respected). People who write tutorials online generally don't have jobs, they rarely receive top-notch educations (in fact, many don't have an education), and they're rarely well respected in the professional community. This is why anyone who is seriously interested in computer science or programming should invest in a good book.
I do somewhat agree with Sublimity, C may not be the best starting place.
Having said that, the canonical resource for learning C would be
The C Programming Language by Brian Kernighan and Dennis Ritchie (the book is often known as the "K&R book", based on the authors' names, and is considered to be a classic). I would recommend that all programmers read K&R at some point (especially C programmers). Two other books that I quite like (which could be a better starting place) would be
C Programming: A Modern Approach by K. N. King and
The Joy of C by Lawrence Miller and Alexander Quilici. Once you read those, let me know and I'll be happy to recommend more.
You must realize that there is much more to computer programming than the programming language, and that there is much more to computer science than computer programming. Computer science (when taught correctly) involves a fair amount of math and a fair amount of theory (in addition to bits and pieces of programming). Computer programming (when taught correctly) involves a fair amount of design, technique, planning, and engineering - all of which is eventually expressed to the computer (through either a programming language or other medium).
If you'd like to get started on your path through the university, I'd suggest visiting
You must login or register to view this content. or
You must login or register to view this content.. Work your way through calculus (and everything beneath it). Once you've done that, I'd recommend reading the
Structure and Interpretation of Computer Programs by Abelson and Sussman (this book is frequently abbreviated to "SICP", and occasionally referred to as "the wizard book" due to it's cover, and is a classic in the field). In addition to this, you should pick up a book on discrete mathematics and logic. I'd recommend reading
Concrete Mathematics by Donald Knuth (either before or immediately after reading SICP). I'd then consider a book on algorithms,
Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ronald Rivest, and Clifford Stein is quite good (it's often referred to as "CLRS" based on the authors' names, and is considered to be a classic). After that,
The Art of Computer Programming by Donald Knuth (another classic, sometimes abbreviated to "TAOCP") is a good read. Once you read and comprehend all of that, come on back and I can tell you what to read next.
edit: SICP is available for free, online (and MIT offers free recorded "open courseware" lectures to accompany the book). As Sublimity alluded to, many of the books I recommended are available through piracy. Not that I encourage it (I own or have owned a hard copy of all the books I mentioned).