Live data from Hacker News

Don't Learn C the Wrong Way

hentenaar.com

11–20 of 53 posts

Re: Don't Learn C the Wrong Way

#11
Learn C The Hard Way is more like opinionated tutorials not a textbook. It's great for someone just getting started. If I were to hand someone K&R - The C Programming Language, their interest would instantly vanish. Why not start with something small (like The Hard Way) and work your way up from there.

To get good at anything, you have to constantly read and apply your knowledge. Why should this be any different?

Re: Don't Learn C the Wrong Way

#12
post #2

>>Let me start by saying that unlike Mr. Shaw, I am not a writer. I'm an engineer. Zed Shaw, whilst his approach to certain issues may be questionable, is not "a writer rather than an engineer". Zed is known as one of the most prolific and capable software engineers around and I have heard his C code for Mongrel 2 server https://github.com/zedshaw/mongrel2 described as being amongst some of the best examples of C cod…

At this point people just keep trying to pick fights with Zed. He's not out there picking fights with others (well any more than anyone else).

And all of the posts pointing this out all disclaim that "while they don't agree with Zed about some things..."

It's just kind of sad from a rhetorical perspective.

It's clear that the guy who wrote this post doesn't agree with Zed's pedagogical style, but that doesn't make Zed's book wrong in detail or approach. It just means this guy doesn't agree with the style. And he's not upfront about it either due to a lack of introspection or forthrightness.

Re: Don't Learn C the Wrong Way

#14
post #8

> C was designed on UNIX, and was basically made for UNIX. That's a matter of historical record. But to say that on Windows everything is a little "off", doesn't quite do it justice. I understand that the book is aimed at the uninitiated, but to put it that mildly is an understatement of epic proportions. Yeah, this was the fist sign I wouldn't read to the end, and I was right. The author just says this, and leaves i…

And I don't even understand why he doesn't agree that C is a second-class citizen on Windows. Microsoft would rather have you code stuff in C++ or .Net and MSVC is stuck with the C90 standard (although apparently that is finally improving)

On the bright side, the author's hate for implicit make-rules, and inability to grasp the pedagogic value of showing implicit includes first, and -Wall later made me go and test the following in a "command prompt for VS2013" on windows:

  >more hello.c
  int main(int argc, char *argv[])
  {
    puts("Hello world.");
    return 0;
  }

  >cl hello.c
  Microsoft (R) C/C++ Optimizing Compiler Version 
  18.00.31101 for x86
  Copyright (C) Microsoft Corporation.  All rights reserved.

  hello.c

  Microsoft (R) Incremental Linker Version 12.00.31101.0
  Copyright (C) Microsoft Corporation.  All rights reserved.

  /out:hello.exe
  hello.obj

  >hello
  Hello world.
Things are getting better.

Re: Don't Learn C the Wrong Way

#17
The entire article reads as a thinly veiled diss on Zed by someone that (badly) skimmed LCTHW.

Things like:

1. Griping about format strings not being explained until it's necessary to understand them even though it's suggested that you look into them right away in the extra credit section.

2. Griping about non-existent Makefiles even though they are explained in multiple sections, one where he chose to spend time dissing on the section title instead of actually reading it and seeing that you write a makefile.

It feels like the author believes that there's a "one true way" to teach a language and that Zed's way isn't it.

I for one am grateful for alternatives to textbook-style books, be it Learn X the Hard Way or the O'Reilly Head First books.

Re: Don't Learn C the Wrong Way

#18
post #10
post #8

Earlier quoted context omitted.

And I don't even understand why he doesn't agree that C is a second-class citizen on Windows. Microsoft would rather have you code stuff in C++ or .Net and MSVC is stuck with the C90 standard (although apparently that is finally improving)

When Windows first came out, the ONLY programming language for it was C. Nothing else .

Arguably, the only programming environment that's been bundled with windows is qbasic...?

Re: Don't Learn C the Wrong Way

#19
post #2

>>Let me start by saying that unlike Mr. Shaw, I am not a writer. I'm an engineer. Zed Shaw, whilst his approach to certain issues may be questionable, is not "a writer rather than an engineer". Zed is known as one of the most prolific and capable software engineers around and I have heard his C code for Mongrel 2 server https://github.com/zedshaw/mongrel2 described as being amongst some of the best examples of C cod…

I don't believe your paraphrase of the line you quoted from the author is accurate.

His own words, strictly read, imply that:

  - Shaw is a writer;
  - The author is not a writer;
  - The author is an engineer.
It doesn't imply anything either way about Shaw being an engineer.

Re: Don't Learn C the Wrong Way

#20
post #19
post #2

>>Let me start by saying that unlike Mr. Shaw, I am not a writer. I'm an engineer. Zed Shaw, whilst his approach to certain issues may be questionable, is not "a writer rather than an engineer". Zed is known as one of the most prolific and capable software engineers around and I have heard his C code for Mongrel 2 server https://github.com/zedshaw/mongrel2 described as being amongst some of the best examples of C cod…

I don't believe your paraphrase of the line you quoted from the author is accurate. His own words, strictly read, imply that: - Shaw is a writer; - The author is not a writer; - The author is an engineer. It doesn't imply anything either way about Shaw being an engineer.

The full quote is "Let me start by saying that unlike Mr. Shaw, I am not a writer. I'm an engineer. Thus, this will be written from that perspective."

By implication, Zed's book is not written from the POV of an engineer (otherwise why would this be worth noting in any way shape or form? The topic under discussion is already software engineering).

Post reply on HN