tags:

views:

282

answers:

9

I always liked coding and programming but I never got to learn it in a structured way. It has mostly been self study. I learned QBASIC, VB and PL/SQL while I was in school. Not very comprehensively, just enough to write some small fancy programs. Wanted to graduate in Comp science but somehow ended up majoring in something else. I did some Comp science elective courses and learned algorithms (in SML), data structures (in Java) and compilers (in Prolog) in college. And now I am working as a software developer in C#.NET, ASP.NET and T-SQL!

In this whole chain of varied programming languages, I ended up missing the most used ones - C and C++. Now I always feel my knowledge is partial because I don't know much about these very basic languages.

Coming to the point, I need to know from you guys what you think is the best way for me to learn C. Any good book/website particularly good for someone in my scenario? Basically I want to avoid too much discussion about the basics, a source which would focus more on things which I don't find in the newer languages like pointers, malloc etc., with focus on things that I can do with C which I cannot do with, say Java or SML or C#.

(May be I searched the wrong way but I am really surprised not to find this question in here. Sorry if this is a redundant question...)

A: 

Accelerated C++ by Koenig and Moo is - I believe - the best C++ text for the practicing programmer.

Paul Nathan
Have you actually read it?
anon
@Neil: No, but it's what I hear bruited about.
Paul Nathan
@Paul It's a very good book. But it is not a good idea to recommend things you haven't yourself read.
anon
+7  A: 

Choose some book here and start learning ;-)

PeterK
oh cool.. don't know why it didn't show up in the searches..
Raze2dust
Also, http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list for C.
David Thornley
No matter what you probably want "The C++ Programming Language" by Bjarne Stroustrup. Its a great reference book that is very easy to follow, and very complete. Since you have C# knowledge there will be a lot of concepts that you will only need a reference for.Cruise amazon there are extremely cheap($5) copies to be found.
mfperzel
@mfp Actually TC++PL is a fairly crappy reference book.
anon
@Neil: I find Stroustrup's books to be worth reading on C++, but, yes, using TC++PL as a language reference is rather frustrating.
David Thornley
anon
forget reference books. Use www.cplusplus.com for reference.
KitsuneYMG
A: 

well, I really liked kernel device drivers book, http://lwn.net/Kernel/LDD3/. this is where C really shows his strength, system programming

For C++, you can read and learn a lot from this excellent book http://www.boostpro.com/mplbook/.

I think those are advanced looks, so depending how hard you want to get into, they may not be appropriate for you

for beginner in system/ Embedded programming, may I recommend arduino: http://www.arduino.cc/en/Tutorial/HomePage. and very easy beginners cookbook http://www.practicalarduino.com/projects. you would not believe it, but it's easy to get started with arduino and get instant hardware gratification.

aaa
exactly what I ultimately want to do with C.. but will be a while before I can grasp what these books talk about..
Raze2dust
@Raze I added small reply to your comment
aaa
Awful advice - ignore.
anon
+2  A: 

My univ uses this book for c++ self paced class

http://www.cs.duke.edu/csed/tapestry/

take a look it's free

denniss
Can't comment on the book as a whole, but the one chapter I opened at random used assignment rather than initialisation. Not good.
anon
A: 

I started with Essential C++ by Lippman. It is very down to earth and concise reading material for C++ programmers. I sometimes take about 30 minutes at the end of my day to review the material in book to refresh my C++ memory. This was the book that was used during my Programming C++ lecture by Matt Mahoney at FIT.

0A0D
A: 

Read through the C++ FAQ Lite @ http://www.parashift.com/c++-faq-lite/

Probably one of the most thorough treatments of the many quirks of C++.

messenger
just steer clear of the FQA (http://yosefk.com/c++fqa)
KitsuneYMG
+1  A: 

Use the info tab under C++ on this site:

If you search for C++ questions then along the top of the page you get 5 tabs:

  • info
  • stats
  • newest
  • featured
  • hot
  • votes
  • active

If you click the info tab it puts into 1 common place a lot of info about the language. It includes links to articles about books/blogs/Guides etc.
http://stackoverflow.com/questions/tagged?tagnames=c%2b%2b&sort=info&pagesize=50

Martin York
ah ok! That's why I missed it... I guess community wiki posts go into the info tab.. is that right?
Raze2dust
I just spotted this last week but I am not sure how long it has been there. You can edit the tag-wiki if you have over 100 up-votes for that tag. Not all tags have 'tag-wiki'
Martin York
A: 

Well, for learning how to "program" and use the C language I can point you to a really great resource -> http://www.highercomputingforeveryone.com which is the material from from the carlhprogramming sub-reddit on, you guessed it, reddit.

He goes in to depth on everything from binary, hexadecimal to data structures and so on.

For books, I would recommend The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie.

I'm not really into C++ as much as I am in C, but I'm sure once you learn programming with C, jumping the ship to C++ should be an easier transition.

10wattmindtrip
A: 

Programming In C by Stephen Kochan.

I've decided to learn C myself recently and chose this book. I switched to Ubuntu, acquainted myself with its command line, learned (still learning) VIM, got an svn repo going and started typing in each and every example.

C is king.

Milktrader