Hi HN,<p>Lately I've been thinking to move "back" to C to build tools for my own personal use (fun, curiosity, and the urge to go back to basic).<p>At the same time too, lately I noticed that there were resurgent of C discussions/materials here and there. Not a lot, but there's definitely something brewing, something shaping up in the corner of C world to make the experience less painful and more "standardized" as-per modern software development practice.<p>A background to describe my experience: your typical "cloud" software developer (Java, Go at the backend. Understand design-patterns, enterprise architecture patterns, clean code and the whole shebang. JS at the front-end. K8S + AWS as-needed base. Python for small stuff).<p>What I'd like to pursue on my free time: FreeBSD (or Linux). C as application-development to start with (think of GTK+, small CLI tools). Eventually, I might want to dig deep and build (or extend/expand) infra-related software (think of network software, server software, system-level) but this is not the top priority.<p>If I want to start learning C today to satisfy the top goal: app-dev (GUI, Text-UI, CLI). How should I tackle C? Where should I start from?<p>Imagine I'm a typical Java-dev who enjoy streamlined experience:<p><pre><code> - Maven for project management
- IntelliJ for IDE
- JUnit for automation-test (integrated with IntelliJ)
- Swing/JavaFX for Desktop-App
</code></pre>
And also armed with your typical Java "best-practice" books like:<p><pre><code> - Effective Java
- Fowler's Enterprise Architecture Patterns
- Java-version of Design-Pattern
- Uncle Bob Clean Code (just for SOLID principles).
</code></pre>
I know that there are several books on "modern C" lately:<p><pre><code> - Modern C (Manning)
- Head First C
- Learn C The Hard Way
- 21st Century C
</code></pre>
If I can only purchase one C book for the purpose of my single goal: App-Dev. Which one should I go with first that hopefully covers software project management as well as "good practice".
"Build Your Own Lisp: Learn C and build your own programming language in 1000 lines of code!"
<a href="http://www.buildyourownlisp.com/" rel="nofollow">http://www.buildyourownlisp.com/</a>
not app, but fun
I honestly don't think the book you're looking for exists, "Learn C The Hard Way" is probably the closest but it's very opinionated and has its critics. The others, as most C books seem to be are concerned largely with the minutia of the language.