It's absolutely not true that C is necessary to be a network programmer. There are some cases where it will absolutely be the best tool (especially for embedded or proprietary hardware), but just look at all the useful network software being written in Erlang, Java, Python/Twisted, Ruby/EventMachine, and now Node.js (just to name a few).<p>Memcached, for example, was first written in Python, then ported to C. Dustin Sallings (one of the maintainers of memcached) has also written a Java client, a server port in Erlang, another server in Google's Go language, and yet another in Python with Twisted:<p><a href="http://dustin.github.com/2009/10/11/ememcached.html" rel="nofollow">http://dustin.github.com/2009/10/11/ememcached.html</a><p><a href="http://dustin.github.com/2009/11/12/gomemcached.html" rel="nofollow">http://dustin.github.com/2009/11/12/gomemcached.html</a><p><a href="http://github.com/dustin/twisted-memcached" rel="nofollow">http://github.com/dustin/twisted-memcached</a><p>I hope that inspires you to continue to learn new tools based on what you want to work with, and not think that you "need" to learn one specific tool. On the other hand, I agree that learning C is a worthwhile goal, will teach you a lot, and will help you contribute to many existing companies/projects.