Prashant wrote:
desktop applications in LINUX, either in KDE or in GNOME. I am a software professional but my knowledge in C is limited.
It's not absolutely necessary to have good knowledge of C (or C++) in order to develop desktop apps for linux. I think Gtk and Qt have Python and/or Perl interfaces as well. So you can download the latest Python (2.2.2 is stable I think) and start learning. Same for Perl.
If you do prefer to develop in C, then start with K&R. Then you can grok the C-faq [http://www.eskimo.com/~scs/C-faq/faq.html] and spend about a month lurking on comp.lang.c. Go through (casually) the source code of some small, open source applications programs.
You might want to learn C++ for developing with Qt (though you can do with Python, etc.). I can suggest Stroustroup (the C++ programming language). My personal opinion on C++ is that it's an extremely complex and confused language -- sooner or later you might want to move away from it -- unless you're a guru, like the guys who make Qt. But bear in mind that a recent slashdot poll [http://slashdot.org/pollBooth.pl?qid=920&aid=-1] rated C++ as the most favourite language (even over English! :) ).
Manish