I&#x27;ve used autotools and I am definitely not a fan. A 10 line Makefile is probably sufficient for most projects and it&#x27;ll take you 20 minutes to get one working if you take a 15 minute break.<p>External libraries are a reality in any programming language. The popular ones that come with your OS of choice are likely very well documented. You don&#x27;t need to understand the preprocessor, compiler, assembler, and linker to use them. In fact, I&#x27;d argue that for most programming you only need to know how to invoke the compiler as the rest of the steps are already automated. K&amp;R C will teach you enough about how to use header files to be able to use external libraries.<p>A debugger is useful, but something like gdb is not necessary to write C. In fact, I&#x27;d say Valgrind is far more useful, and once again, it&#x27;ll take 20 minutes to learn.<p>As for supporting open source projects, why start there? Do you learn Python and immediately jump to submitting patches to Django? No, you write your own code and learn from that. Same here, as you are presumably learning C&#x2F;JavaScript&#x2F;Ruby&#x2F;Erlang&#x2F;CL&#x2F;etc. to use it, not to add a line to your resume that you are a contributor to some open source project.<p>No, you won&#x27;t become an expert developer in 21 days. But since C is such a small language with so few features I&#x27;d argue that learning how to use it is more about getting the memory structure right in your head than about learning syntax. By comparison, Python (my primary language lately) has many more types and constructs to worry about.