ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Well, I believe that C# is better to learn. But im still a newbie, so ya. But heres a book I DON'T! recommend, its the "C++ for Dummies", it was talking to me as if I could read the guys mind. He would throw words in there that I would have to look up to figure out wtf he was talking about. I give it 3 thumbs down.
I would stay away from C# if you do in fact want something thats geared more towards Linux application development. (This of course is changing with the evolution of Mono and DotGNU but that's another thread)
I recommend starting with C and then moving to C++. That way you get to experience the richness of the C family in it's historical context.
Obviously the most important factor is which interests _you_ the most.
I'm actually selling a book on ebay "Teach yourself C++ for Linux in 21 Days" from Sams publishing. I think it's a great book for beginners. It talks alot about the linux programming environment, linux editors, shell programming, as well as teaching you C++ from the beginning. At the end there's a chapter on system programming and a chapter on GUI programming with Gnome and Kde. I enjoyed reading it.
I learned C++ from http://cplusplus.com/doc/tutorial/ , by messing around testing what could and couldn't be done, and by asking questions on message boards. There is more than enough info on the internet to learn either without paying anything. The only reason I would buy a book is for the C++ Standard Template Library, which contains all of the standard C++ classes. Those are a bit cryptic sometimes in their use and their naming. Even that has a decent site, though, which is http://www.sgi.com/tech/stl/ . So once you have a good handle on the use and sematics of C++, start learning about the STL from the other site. I would recommend C++ because almost everything in C can also be done in C++. I really think books and classes make things more formal and difficult than they need to be. Of course, I am one who never paid attention in class and went home and learned everything on my own, so you need to be able to teach yourself stuff.
C/C++ are platform independent, therefore learning the basics will not involve any particular platform. Once you learn either, you will need to learn about implementing specific libraries for Linux. I would buy a book for that, but I don't know of one either.
Even though it's not Linux specific, the book that I'd recommend is Ivor Horton's Beginning ANSI C++: The Complete Language. I find it really well written; it's very clear and easy to understand (for me at least). I've also got Sams Teach Yourself C++ for Linux in 21 Days, but I found that more difficult than Horton's book.