Settings

Theme

Ask HN: C for Application Development

14 points by edwinnathaniel 6 years ago · 5 comments · 2 min read

Reader

Hi HN,

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".
olkyt 6 years ago

"Build Your Own Lisp: Learn C and build your own programming language in 1000 lines of code!" http://www.buildyourownlisp.com/ not app, but fun

dave84 6 years ago

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.

  • edwinnathanielOP 6 years ago

    > "Learn C The Hard Way" is probably the closest but it's very opinionated and has its critics.

    I have similar feeling too. When I looked around, I had this feeling that majority of experienced C developers may not have experienced higher level language or work in app-level and went back to C to adjust their previous experience.

    Either the developers decided to abandon C in favour of high-level languages or the developers didn't like what they tasted the high-level languages enough to learn the better practice to bring it back to C. The latter group tend to go back to where they came from and stick with C.

    This could be the reason why "Learn C the Hard Way" and another commenter up there posted a link as to why "Build Your Own Lisp" considered harmful/bad. On the other hand, these two materials could fit for what I'm looking for.

    I glanced over "Modern C" and while I can pick up a few things better than my previous learning C experience, my experience match to your statement that most of the books are covering minutia details of the language :(.

    Thank you for clarifying and confirming what I felt so far.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection