by edwinnathaniel on 4/15/20, 2:22 PM with 5 comments
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).
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.
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).
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.
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?
Imagine I'm a typical Java-dev who enjoy streamlined experience:
- Maven for project management
- IntelliJ for IDE
- JUnit for automation-test (integrated with IntelliJ)
- Swing/JavaFX for Desktop-App
And also armed with your typical Java "best-practice" books like: - Effective Java
- Fowler's Enterprise Architecture Patterns
- Java-version of Design-Pattern
- Uncle Bob Clean Code (just for SOLID principles).
I know that there are several books on "modern C" lately: - Modern C (Manning)
- Head First C
- Learn C The Hard Way
- 21st Century C
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".by olkyt on 4/15/20, 2:59 PM
by dave84 on 4/17/20, 12:54 AM