If you have 6 years doing professional Java, then I see no reason why you couldn't pick up C and C++ without too much trouble. It is generally useful to pick up both languages. If you need, or think your app could benefit from OOP use C++, otherwise use C. As for resources, just do a google and you will find lots of free online tutorials for both. Once you are up to speed on sysntax, and the languages peculiarities (they all have some) then I suggest getting a couple of books:
The first is a good general introduction to using Linux as a development platform:
Beginning Linux Programming by Neil Mathew and Richard Stones (Wrox)
This book covers almost everything: Shells (bash), redirection/filestreams, shell scripting, terminals/curses, databases (dbm, mysql), development tools: make, rcs, cvs, gdb. The last several chapters feature quick introductions to various system and library calls including example code. There is also a brief introduction to gui coding with both qt and gtk.
After you are comfortable with the basics, you can pick up up:
Advanced Programming in the UNIX Environment by W. Richard Stevens and Stephen A. Rago (Addison-Wesley)
which serves as a comprehensive reference to _all_ POSIX calls/functions/libs, allowing you to write code that will run on pretty much any UNIX system.
|