That is a bit of a rough book to start with but very good.  It is very
dense but touches on most language features.  Its density is actually
what makes it so good.  You can read it twice in a weekend.  Once you do
that pick a simple utility from /bin and go read the code.  That will
put what you learned/read in the book in perspective.

The thing that that book does not teach is libraries and other things
since it simply focuses on the language itself.  Some other books I
found very helpful were:
http://www.amazon.com/Practice-Programming-Brian-W-Kernighan/dp/020161586X/ref=sr_1_1?ie=UTF8&qid=1290612132&sr=8-1
http://www.amazon.com/Programming-GNU-Software-Andy-Oram/dp/1565921127/ref=pd_sim_b_5

The must have is:
http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0321525949/ref=pd_sim_b_8

All that reading aside; the only way to truly "get it" is to read a
piece of code you are interested in and deconstructing it completely.
The trick is finding a piece of code that illustrates the things you are
interested in *and* is well written.  Most things in the OpenBSD tree
are well written but beware of the dragons.  Doing this a couple of
times will make almost anyone interested enough a good enough coder.

Learning C is easy; learning to using C right is the hard part.  Read
more code to learn from the experts.

Good luck.

On Wed, Nov 24, 2010 at 06:55:20AM -0800, James Hozier wrote:
> My first programming language ever was Visual Basic, but I was 11 years old 
> at the time and it was just a mandatory elective class I had to take to get 
> credits in order to graduate school, and I didn't even know what a 
> programming language was back then. I thought I was just writing words on the 
> screen to make the program do things (we made stuff like tic-tac-toe, 
> shooting a basketball into a hoop by inputting correct coordinates/arch, 
> etc.) I forgot everything I learned since then, so I have absolutely no 
> recollection at all of VB except "rem" which I recall as being equivalent to 
> a comment in any other language.
> 
> Later when I began to edit code to make programs do exactly what I wanted, I 
> basically guessed what all the functions did and how the programs worked to 
> modify them, and as long as they worked, I really wasn't concerned at all 
> about how crappy the quality of the code was. So I decided to actually learn 
> a language and I had heard Python was easy so I started learning Python 
> first. But before finishing the first chapter I was told by several people 
> that Perl was much "better." Considering their opinion was probably better 
> than mine, I switched to Perl and picked up a book for Perl beginners but 
> again before I even learned the print function, 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).
> 
> So, as a newbie with no knowledge in programming at all whatsoever and 
> wanting to learn C, I bought K&R's The C Programming Language (2nd edition) 
> as per the suggestion on the OpenBSD website. I read the disclaimers in the 
> intro of the book, and read on anyway. But the book seems to move very fast 
> and does not elaborate too much on the features of the language, I guess due 
> to the book not being total-noob-friendly. I can barely follow along and get 
> what's going on, but have no idea what the terminologies and phrases being 
> used in the book mean since the book assumes the reader knows basic 
> programming such as arrays and stuff like that.
> 
> Are there any books that are more noob-friendly that want to learn C as their 
> first language and explain basic programming terms along the way?

Reply via email to