Live data from Hacker News

What do you want to see in Learn C The Hard Way?

news.ycombinator.com

51–60 of 127 posts

Re: What do you want to see in Learn C The Hard Way?

#51
post #7
post #6

I think your goal will be more easily and better achieved by writing a "So You Found Python Easy?" book. C is not (IMO) a good language to teach people that are just starting to program. However, if you wish to try anyway, I recommend looking at "Assembly Language Step-by-Step: Programming with Linux" by Jeff Duntemann. It aims to teach people assembly language as their first language, so you may find it useful.

I'm doing this book precisely because programmers who already know a language aren't ever getting around to learning systems programming or how things work.

Ok, that's fantastic! I hope you succeed.

But it's a bit misleading to call it "Learn C The Hard Way" after LPTHW, if your intended audience is experienced programmers. The whole point of LPTHW was that it was for beginners.

Top of their website: "The book is a very beginner book for people who want to learn to code. If you can already code then the book will probably drive you insane. It's intended for people who have no coding chops to build up their skills before starting a more detailed book."

Re: What do you want to see in Learn C The Hard Way?

#55
post #22

What I really miss is some C book that teaches the modern approach to "object-oriented" C (as done in Gtk, Apache, CPython etc.). Actually many programmers (presumably with only passing knowledge of C programming) even actively proclaim that you cannot program in C in this style.

"Object Oriented Programming in ANSI C". Full PDF here: http://www.planetpdf.com/codecuts/pdfs/ooc.pdf

Re: What do you want to see in Learn C The Hard Way?

#56
post #21

whatever you do, make your examples bulletproof. even if it's not how you would normally write the code and it seems overly cautious, do your audience a favor and write the example that way anyway. if there are any buffer overflows, integer overflows, off-by-one's, signedness issues, failure to check return values of everything, use of typically insecure things like sprintf instead of snprintf, all of these problems…

I don't think the learner would appreciate the subtleties, and I don't agree that they'll learn anything from it. I can reinforce each lesson/problem you're describing one by one through the exercises, but a new person simply wouldn't know good code if it slapped them in the face. Confer with Learn Python the Hard Way to get a feel for the aesthetic and technique I'm working towards. I don't want to write bulletproof…

> I don't want to write bulletproof code, I want to teach them how and why to write bulletproof code.

This confuses me. How can you teach someone to do something if you won't do it yourself? Reading your statement literally, you are effectively going to say, "This is how and why to write bulletproof code, but I'm not going to." The whole point of LxTHW is to learn by doing. If you're doing it wrong, they're learning it wrong.

> I'm not qualified to meet that kind of lofty standard anyway.

Then you shouldn't write the book. Honestly. I know you intend to do some good and to be productive, but serving as a teacher and a reference point in an area that you're not qualified in is actually counterproductive.

I'm not saying don't write the book. Get qualified first.

Re: What do you want to see in Learn C The Hard Way?

#57
I think it would be cool to see any of the following:

Learn Haskell the Hard Way

Learn Erlang the Hard Way

Learn Common Lisp the Hard Way

Learn R the Hard Way

Besides a "Learn X the Hard Way", I would actually like to see more people try to recreate the style of "The Little Scheme", which uses the socratic method to teach the learner. I think the socratic method requires the user to rack their brain a bit more, but results in much greater enjoyment and retention.

I would much prefer to see these two:

"The Little Haskeller"

"The Little Erlanger"

For example, it would be brilliant if someone can explain monads and list comprehension with the same eloquence as The Little Schemer explains currying and YCombinator.

Re: What do you want to see in Learn C The Hard Way?

#58
post #51
post #7

Earlier quoted context omitted.

I'm doing this book precisely because programmers who already know a language aren't ever getting around to learning systems programming or how things work.

Ok, that's fantastic! I hope you succeed. But it's a bit misleading to call it "Learn C The Hard Way" after LPTHW, if your intended audience is experienced programmers. The whole point of LPTHW was that it was for beginners. Top of their website: "The book is a very beginner book for people who want to learn to code. If you can already code then the book will probably drive you insane. It's intended for people who ha…

As Zed stated, his concept of LCTHW isn't for beginners to programming.

K&R has sated that need.

It's easier to understand what I'm aiming for when you've already gone through the rigamarole of learning C from the existing texts.

Re: What do you want to see in Learn C The Hard Way?

#59

I think it would be cool to see any of the following: Learn Haskell the Hard Way Learn Erlang the Hard Way Learn Common Lisp the Hard Way Learn R the Hard Way Besides a "Learn X the Hard Way", I would actually like to see more people try to recreate the style of "The Little Scheme", which uses the socratic method to teach the learner. I think the socratic method requires the user to rack their brain a bit more, but r…

I picked C because I want people to learn C specifically to build the kinds of things C is good for these days. This isn't completionism, it's very purposeful

I'd like to see the little Erlanger too actually.

Re: What do you want to see in Learn C The Hard Way?

#60
Reading through Zed's tutorial reminded me of some Pascal and C tutorials I downloaded in the old BBS days. They were a great introduction to both languages when I was just learning to program.

I just had a look on simtel but I couldn't find them. Maybe you should put some effort into scanning old software archives and seeing if you can unearth them. C is pretty old - you wouldn't be the first one that had this idea.

Post reply on HN