I would think that you should start with a simple and powerful scripting language, like Python. After you've mastered the basics of Python, you'll be able to dig faster and further in C. Implementing drivers will likely be something that you'll have to do in C at any rate.
Though if you're looking to implement communication protocols or image processing, then Python using Pyro (Python Remote Objects) would be a fast way to prototype that. I still think you should go through one of the Python tutorials to the end, though, in order to make sure you have all the libraries, modules, functions and so on as tools in your toolbox.
There are many books on the subject - the "From Novice to Professional" series of books is an example of excellent books for Python programmers.
http://www.amazon.com/Beginning-Python-Professional-Magnus-Hetland/dp/159059519X