Hacker News new | ask | show | jobs
by las_cases 4101 days ago
Wow, how come Zed Shaw manages to attract so much hate? I have found his series to be absolutely delightful. Anytime something about him appears on HN I can be sure there will be users with ad hominem attacks like this:

"> is this a joke?

No, just written by Zed Shaw. Honest mistake though."

How about you let go of the hate and embrace some love instead for the work this man has put forth?

LE: For advanced Python you can read his code from the Lamson project. I am sure there are many other coders out there who are just as talented as he is but he takes the time to comment his code and also has a style of clarity so to speak. Thank you Mr. Shaw for your work and thank you to all of the amazing, talented coders out there who gave me confidence and helped me to learn.

12 comments

Zed had a satirical site called "Zed's so fucking awesome" mocking the whole 'Ruby rockstar' thing in the late 2000s. A bunch of people didn't get the joke and got really angry at Zed. [1]

Zed also pointed out some genuinely bad stuff that was happening in the rails community in: http://harmful.cat-v.org/software/ruby/rails/is-a-ghetto which made them more angry.

Edit: a user points out below that post came before the ZSFA site. I'm not sure that matters.

He also claimed Ryan Dahl ripped off Mongrel's HTTP parser. The flip side of this (which I've heard from someone else involved in node) is that Ryan Dahl is super talented and just read the damn HTTP spec like Zed did. I honestly don't know enough about HTTP parsers to say either way.

Zed's talented: Mongrel and Lamson are in the top of their categories. Learn C The Hard Way is a modern, but still fundamental C book. Any interaction with Zed I've ever had has been brilliant.

[1] The people who got angry at ZSFA in the late 2000s are probably the same people who write Jenn Schiffer angry tweets for writing tech satire these days.

That Rails is a Ghetto piece is filled with personal insults, gripes, anger, accusations that people are slighting him or intending to slight him. There seems to be one critique of Rails buried in all that, that DHH may have been running a Rails app that required many restarts a day. I only had the patience to get through the anger and the personal stuff because I really wanted to actually read the piece before I replied to your post.

When you spew that much anger into the world you're going to rub people the wrong way and concern others that if things start to go slightly south you're next to go on the shit list.

I already feel like I'm posting too much in this thread about a particular individual that I've only had a few interactions with on Twitter, but as a programmer it's extremely important to me that discourse between programmers is considerate. If you can't or won't express yourself without endless anger and personal insults, why is it the responsibility of other people to be patient with your tantrums?

No, the relevant fact in RiaG is that DHH had been lying to people for years claiming that "rails scales" when he had to handle 400 restarts a day of his process.

And then I was trying to be funny and shit.

> There seems to be one critique of Rails buried in all that

Yep, it was more a criticism of people's behaviour than rails itself.

That site existed way before Ruby rockstars. I remember reading it in high school. It was priceless.
re [1]: This is not an accurate reflection of the events and circumstances at the time.

The "Zed's so fucking awesome" follows the Rails is a Ghetto post, and the start of acrimony between Zed and other members of the Rails community, and so was more of a consequence of the aforementioned acrimony than it was the cause.

Sure. Amended, though I don't think it makes that much of a difference.
It does make a difference because Jenn's rise to general attention has been through her satirical and artistic work (as well as the fact that she's an awesome developer who worked at the NBA and now works for Bocoup).

The context in which everyone was relating to Zed was the dude who wrote mongrel who did an about face and not only left the ruby community but decried it all the way out.

Remember this was in the heyday of Ruby on Rails's rise, twitter was still using mongrel as their primary web serving mechanism.

You should consider if there may be a good reason why he attracts so much hate.

I have found him to be contrarian and rude for the sake of being contrarian and rude.

To me, his behavior represents the worst of the archetypal 'rockstar' programmers I have worked with -- perhaps more skilled than the average, but full of himself, unreasonably mean and impossible to collaborate or work with. I have watched this kind of attitude destroy teams and companies and I prefer not to condone it.

There are plenty of people much more talented than him who are capable of providing feedback without seemingly delighting in being an asshole.

We should be able to evaluate a book, a finished product, irrespective of its author. It is not acceptable to diss a body of work because the author is "contrarian and rude for the sake of being contrarian and rude". Either the book is good, or it isn't. It stands on its own.

I am a stranger to this feud, and knew nothing about Zed Shaw to this day. I have no chips in this discussion. The opinion I express is more of a generic attitude on life.

I see no reason to accept your strict view of aesthetic interpretation. Borge's 'Pierre Menard, Author of the Quixote' gives a perhaps exaggerated but definitely interesting example of how context can be relevant.

Consider the message "NUTS". It was a "legend of World War II" on the US side. (Quoting from https://news.google.com/newspapers?id=XxAdAAAAIBAJ&sjid=CJsE... .)

It clearly does not stand on its own. Without knowing the author, or the context, it's impossible to explain why that message resonated so deeply. (Eg, I seem to recall it being reappropriated in one of the early Star Trek novels.)

The message metadata gives some idea of the context:

   December 22, 1944
   To the German Commander,
     N U T S !
   The American Commander
and the larger situation is http://www.army.mil/article/92856 . Even then one wonders why General McAuliffe said "nuts" and not stronger invective. His Wikipedia entry says he was one of the few generals who did not use profane language, which lends some flavor to understanding that word choice.

If I write "NUTS" here, does it have the same meaning and interpretation as when McAuliffe wrote it some 70 years ago? Assuredly not.

I meant it for the target book: A technical book, teaching a corpus of knowledge, designed to be complete. The comment I was replying to specifically targeted the author, implying that the end result could never be good. The inferred implication is not solid, specifically because the knowledge in the text does not require interpretation using knowledge about the author (or its environment).

A technical book, which condenses technical knowledge, has most of its content in the lines, not between them. There is no second reading of the book, there is no hidden meaning, there is no need for secondary information for interpretation of the text.

If you feel more comfortable viewing the subject under a reduction to the absurd lens, think about criticizing a published mathematical proof based on the opinions about the author's personality. The proof is either valid or invalid, and all the information needed to prove its validity must be contained in the proof (or it is invalid).

Your examples are not relevant, as they are not designed to be complete. The first is a view of an ancient text through a modern perspective, and the second is a fragment of a communication ensemble. A technical text, unlike these, is designed to be complete. I stand by my original position, although I was perhaps too broad in painting it. I didn't expect it to be read as extensible to literary texts.

Your text started "We should be able to evaluate a book" and ended "The opinion I express is more of a generic attitude on life.", which made me believe it was a general statement on all books, not on a limited subset. I think I can be excused for assuming it was a more encompassing attitude.

As for "designed to be complete", I don't know what that means in this context. Perhaps you mean stand-alone, as it does not depend on having access to other resources? Otherwise, the only definition I can come up with is tautological, as it covers everything the author meant it to cover. A technical book on "advanced differential equations" is not complete in that it assumes the reader already has a basic understanding of differential equations.

I have read many technical papers. They are still human documents. They can and often do contain meaning between the lines. I am reviewing some of the literature in my field from the 1960s, and it's easy to infer the social context. For a simple example, in most of the papers refer to a generic chemist as 'he' and clerical staff as 'she'. More subtly, there can be veiled attacks, like when one paper says "it's surprising that X and Y are connected" and then a paper a few years later says "as many of the people who founded X came out of Y, it's not surprising that there's a close connection between the two". It's not hard to read between the lines and infer that the second author is chiding the first author for not knowing the history.

More classically, in 'Dialogue Concerning the Two Chief World Systems' Galileo put the words of Urban VIII into the mouth of the character Simplico. The pope and many others interpreted that as a hidden attack on the pope, despite being a book on scientific ideas.

Have you never come across mathematical proofs written by kooks? The language, and frequent references to numerology and other occult philosophical traditions make it effectively impenetrable. Unfortunately, I can't find one easily. Visit your local math department and ask around - it's not uncommon. Sometimes much more sane versions of these get published, like http://www.math.utep.edu/Faculty/sewell/AML_3497.pdf .

In any case, math proofs are supposed to be interesting. Otherwise we would just hook up a theorem prover to a journal publisher. If you look at the early papers in statistics, they use games of chance as examples. Sure, the proofs stand alone, but from the text you can also determine that gambling was not strictly taboo during that era.

BTW, I agree with the statement that none of Zed Shaw's internet persona is evident in this book. By all accounts, it is a good resource for learning how to program. In my cursory scan, I found no hidden or double meanings. However, that's a specific property of this book, I disagree that that's true of every arbitrarily chosen technical book.

The context of your example story is specific to those people which validates what you are saying - it wouldn't make sense if you said "NUTS". But it isn't a relevant comparison. An antidotal documentation of an event is not a body of work. The body of work of a journalist would be measured differently than simply the subject of one event that they are asked to cover. There could be exceptions to the rule but I doubt many journalists hit it big and hang up the cleats.

A body of work around a certain subject that lots of people study and use in their professions is different. It should be judged without the author in mind, otherwise how are you going to remain neutral and form your own calculated reality of how it works when you review work by other authors?

Why should I remain neutral? We live in a sea of biases. I think it's better to know one's biases and consider how that affect what one wants to do, rather than remain neutral.

I've been watching archeology videos recently. The archeologists are not neutral on what how to interpret their finds. They use their non-neutral viewpoints to help guide where they work next. They are also well aware that the views of their profession have changed over time, and that those views can reflect implicit personal and cultural biases.

In this case I do not think Zed Shaw's personality outside of "Learn Python the Hard Way" affects the interpretation or use of that book. But I think Galileo was foolish for putting the words of the pope in the mouth of the character Simplicio and expect the pope and his supporters to remain neutral.

Keep on hatin'. Zed's just going to keep writing books that help people, and your impression of him will merely drown beneath the tides of people who benefit from all the work he's put into FOSS & teaching others.

I don't agree w/ Zed on everything, but i have benefitted from his work for literally a decade now: mongrel; his early writing on why programmers should learn statistics; his writings on the types of collaboration/projects programmers are involved in; Learn C The Hard Way; his various talks.

It's certainly possible to both be rude and write books that help people. The two behaviors are not mutually exclusive. I think it's completely reasonable to laud Zed for his efforts to teach while questioning his manner.
Except this is a post about his book and his teaching? But here we are dedicating all this time to rehashing all this stuff that happened years ago with people who obviously weren't there at the time.
Unless you have to work with him, why does his manner even matter?
> his early writing on why programmers should learn statistics

A good read, here's the link for lazy - http://zedshaw.com/archive/programmers-need-to-learn-statist...

> I have watched this kind of attitude destroy teams and companies and I prefer not to condone it.

Funnily enough, I actually knew Zed before he became "Zed" (we were both team leads for related organizations). He came off as one of the more caring and right-headed leads that I'd known at the time.

Things change of course (it's been years), but I wouldn't infer too much about what he'd do to a team from his internet persona.

I suppose internet persona being very different from the real person also tells something about the person.
I've only had one dealing with him. While I was interviewing for a job with a company he was working at, they had him look at the code of one of my personal projects. He was polite and complimentary, just as you'd expect from anyone you were dealing with in a professional capacity.

I actually asked one of his colleagues what it was like working with him. Words like "quiet" and "pussy cat" were used. They said he has strong opinions, but is never contrary for the same if it, and is often just quietly sitting in a corner listening.

I find it interesting that many people go out of their to defend someone like Linus Torvalds, but with someone like Zed Shaw, go out of their to criticize Zed Shaw.

Sure, Linus has written and maintained an OS, but as others have pointed out, Zed's CV isn't too shabby, either.

Its really pretty simple. Mr. Torvalds has a community and communities tend to defend their own. Happens in politics all the time because that's what humans do. Zed doesn't have as big a community and he offended some in the Ruby community. I think Zed's lecture in Toronto was an amazing presentation on values, but I've not read his books.

Its also why people say they "hate" a politician, leader, or band without listening to one word they say or believe snippets represent the whole of a person. The group think spreads quite nicely. At the end of it all, there is so much information and we have so little time, we outsource some of our beliefs. Comedians tend to use this to craft some jokes and sometimes abuse folks. For example, President Ford slipped a couple of times in slick shoes. Chevy Chase made him out to be a klutz and un-athletic on SNL to great merriment. President Ford was probably the most athletic President the US has had. He played linebacker in American Football and was consider a decent athlete.

My Dad was not a fan of this and did tend to scold his children that "if we were going to hate someone, we better damn well know why". I do admit to failing at this since there is so much, but it is a good lesson and tends to result in new joys.

>> "I have found him to be contrarian and rude..."

There is a vital difference between "contrarian and rude" and "contrarian, rude, and right."

The latter doesn't erase the two former, but his code compiles and as far as I can tell his software works, which is at least worth mentioning.

Disclaimer: I don't have a horse in this race, know 0 of the principals involved, couldn't write FizzBuzz in Ruby, etc.

when i used LPTHW I found him very helpful on the limited occasions i contacted him, LPTHW is also an excellent resource.

Dont judge a books value by your opinions of the author.

I am contrarian and rude, but you most likely worship quite a few people in tech who are also contrarian and rude but you say nothing. I bet there's a CEO you admire who is even worse than me and you tout his words like they're a gospel.

I personally would love nothing more than to have the industry flush everyone who behaves like that totally out of it, but as long as people like you hold those with no power to different standards than those with power, it'll never change.

As somebody who doesn't know Python I would never use this book or recommend it to others. The reason for that is nothing to do with drama over Ruby (which I don't know either) but purely because of the quality of his other work about languages that I do know. In particular his C book and his comments about C on this site.

Anybody who knows C should read this thread: https://news.ycombinator.com/item?id=8834869

The take aways are that Zed doesn't understand C and hasn't read the C standard. He even takes pride in his lack of knowledge of the fundamental concepts that you need to understand to write correct C, and mocks those who do take the time to learn about the standard. Such a person should not be writing a book to teach C to beginners. People following his advice are going to write code that is dangerously incorrect. (If you want to take the position that C is insane and nobody should use it then that is fair enough and hard to disagree with, but in that case the honest thing to do is to encourage people not to use C; don't write a book teaching dangerous practices to beginners).

Since I don't know Python I have no way to know if he takes a similar attitude towards Python. What aspects of the language does he ignore because he is too prideful to read the standards or documentation? Given what I know about his attitude towards C, I can't trust him to teach me the things I would need to know to use Python correctly and safely.

Your dismissal of his Python material is unfounded. This book is quite good, especially for beginners that literally would be unable to learn to code otherwise.

As a professional educator myself, I strongly disagree with your sentiment about "teaching dangerous practices to beginners". By far, the biggest "danger" to beginners is that they won't learn how to code at all or get frustrated and quit because of pedants.

Do we teach beginning drivers using 18-wheeled tractor trailers? Or using F-15 fighter jets? No, we use cars with automatic shifting driving around in an empty parking lot at first.

When I started to learn python, I bought his book. It was okay.

I actually found youtube tutorials,videos,and codeacademy to be far more interesting and effective.

I don't think I would recommend a book to a pure beginner anymore, places like code academy have matured to be far better.

I don't think your analogy really makes sense; the issue isn't that the author tries to teach people things which are too difficult to handle but that the author may state things which are just incorrect. A better analogy would be teaching beginning drivers to use their knees instead of hands to drive.

I suppose I'm in a different position than you though; I don't see any need to get everyone to start coding. I think if people want to code there are already good books out there, and if they don't then I don't think we need more developers who hate their job.

What about the C book is incorrect? I want data and citations.
I'm not sure if you're being sarcastic but I'll respond in case you aren't. I don't recall saying that I thought there were mistakes in the book; I wouldn't know I haven't read it.

The person I was replying to just didn't seem to understand what anon1385 was trying to say; it's difficult to recommend a book written by someone who writes and teaches on topics he/she doesn't fully understand. There was a link to a thread where the author of a book on C was wrong about one of the fundamental aspects of the language.

Again, I don't have the slightest idea whether there is wrong information in any of the author's books, but I can also see why one would be wary trusting a book written by someone who has shown a serious lack of mastery on previous occasion.

I believe the person I was replying to misunderstood the cause of concern as being one where a person is taught poor or suboptimal practices as opposed to one where a person is taught things which are just flat out incorrect.

So IOW, you don't actually have a valid criticism of LCTHW. Got it.
It's interesting that you'd use an anonymous account to sling some slander, but I'll answer you:

Yep, that comment thread is great and people should read it for an explanation as to how completely insecure C is. It made me realize that nobody can teach C safely. Not me, not K&R, nobody. The language is completely unsafe by design. If you think K&R could, you should realize that they fixed the code in the book numerous times to make it more secure during it's 40+ printings.

Based on that, I killed my darlings. I should have never started this book as a "C book". I rewrote about 50% of it to instead focus on the things a mere mortal like me can teach:

  0. How to learn any programming language quickly with some tricks I know.
  1. Secure programming and defensive coding skills, which a broken language like C is perfect for teaching.
  2. Testing and reliability.
  3. Most of the C I've found safe and useful, and how to avoid UB when possible.
  4. Algorithms and how to apply them.
  5. And finally building projects as small challenges to get better at C.
So everyone was right, and I adapted the book to denote that. I also started a project, which hopefully I'll find time to do, that is going to catalog all of the UB in C, write a unit test for each one, and then attempt to assess the security failures of it:

https://github.com/zedshaw/cubfail

I'm currently finishing up a book, but this project interests me because what I've seen is most "professional" C programmers end up pulling out UB whenever they are called out on a secure coding practice they fail at. I think a good catalog of how to cause security failure with C UB would be instructive to everyone.

And then we can all just stop using C. It's terrible.

Now that you have this new information, hopefully you'll update your slander.

I'm just commenting from the position of an observer who has found that your general attitude undermines the work you do, irrespective of whether you are right or wrong about the issue at hand.

We are all wrong at times. There is no shame in that. But finally admitting fault after months of intransigence (I'm taking about from the launch of the book, when people first started criticising it, until that thread) doesn't excuse your behaviour prior to that. With a bit more humility from the beginning none of this would have happened. If you are going to pick a fight with people, C language lawyers are probably about the worst target.

I don't care about "winning" the argument - just about everybody already agreed that C is highly unsafe, and personally I think K&R is quite outdated now, since it doesn't dwell as much as it should on all the dangerous and difficult aspects of C. Much like C itself, it generally assumes superhuman competence on the part of the reader.

Putting that aside, I do think we are lacking in resources that teach people about the many pitfalls of C in one place (if only to scare people away from the idea of using C for anything network facing). Especially in an era when a lot of people learning C are probably already familiar with the basic syntax and control flow, through knowledge of Java or other languages, and will thus probably be tempted to skim through beginner C books. People coming from that direction probably find C deceptively familiar, and aren't aware of a bunch of things like the undefined behaviour of certain integer overflows and shifts, or the strict aliasing rules, or possibly even reading uninitialized variables.

John Regehr has a lot of good blog posts on this topic:

http://blog.regehr.org/archives/1054

http://blog.regehr.org/archives/1136

http://blog.regehr.org/archives/959

As you can see in some of those examples UB can be very difficult to spot, even for experts like compiler engineers or crypto developers who are intimately familiar with the rules. Also some things are just plain tricky to do correctly and efficiently (e.g. http://blog.regehr.org/archives/1063) and in the past compilers were much less aggressive about optimisations that affected code containing undefined behaviour. So you could get away with it, and incorrect code became the accepted way to do some things. This resulted in a lot of gnashing of teeth and a few well known security vulns when old code started to break with newer compilers.

If you are looking to catch bugs and undefined behaviour in test cases you should certainly look into the -fsanitize options in clang. This post gives an introduction: http://blog.regehr.org/archives/905 and the up to date docs are here: http://clang.llvm.org/docs/UsersManual.html#controlling-code...

> The take aways are that Zed doesn't understand C and hasn't read the C standard.

This statement is quite unfair. I have read the code from Mongrel2 and I've learned things which completely eluded me in the past. Have you considered that he is actually a human being which can be surprised at how an old book can present aspects never noted before?

Just because he hadn't thought about that particular language horror side effect doesn't mean he doesn't understand C. C can be manipulated in horrific ways, such as a psychopath can absolutely horrify you. That doesn't mean you don't understand life for example.

And no, he doesn't mock people who read the standard. The discussion was entirely about something else. He proposed an improvement on how to handle strings and how the original K&R code should only be looked at from a didactic POV and not production level quality.

That is what I saw in that thread.

>And no, he doesn't mock people who read the standard. The discussion was entirely about something else.

Allow me to quote for you, since this comment[1] was downvoted to the bottom of that thread and maybe you missed it:

Ahhh the "undefined behavior" trope, whereby a C "expert" who's memorized a standard trots out the abstract machine to justify his point. An abstract machine that doesn't actually exist and that no computer actually functions as.

>Just because he hadn't thought about that particular language horror side effect doesn't mean he doesn't understand C.

No, really. Somebody who isn't aware of undefined behaviour can't claim to understand C. The fact that he has now changed his position on the entire language (now advising people not to use it, advice I broadly agree with BTW), indicates that he wasn't aware of these things prior to that discussion.

[1] https://news.ycombinator.com/item?id=8834947

Never heard about Zed so consider this rather objective - I just read the post and I don't think I agree with your take on it:

Just because he hadn't thought about that particular language horror side effect doesn't mean he doesn't understand C

But UB is such a key aspect, if you don't understand in full what it is, I'd say you do lack some understanding of C?

And no, he doesn't mock people who read the standard.

It is open to interpretation, but you should admit his Ahhh the "undefined behavior" trope, whereby a C "expert" who's memorized a standard trots out the abstract machine to justify his point. is rather snarky

Anybody who knows C should read this thread

People who know C are not the primary audience for Learn C the Hard Way. Every programming tutorial aimed at beginning students puts the student on a tricycle, points them toward a cliff, and tells them to peddle as hard as they can.

Norvig points out the cliff is always there.[1] Zed Shaw starts 50 lessons away from the edge. How to Design Programs puts the student at a different distance. Instruction for advanced students [working programmers] expects the student to know they are headed for a cliff.[2]

  The last compound type that we shall consider in this 
  section is the record type. Records are quite similar to 
  Pascal records and to C structures (and to
  similar features in other programming languages). A  
  record consists of a finite set of labelled fields, each 
  with a value of any type (as with tuples, different
  fields may have different types). Record values are 
  written by giving a set of equations of the form l = e, 
  where l is a label and e is an expression, enclosed
  in curly braces. The equation l = e sets the value of 
  the field labelled l to the value of e. The type of such 
  a value is a set of pairs of the form l : t where
  l is a label and t is a type, also enclosed in curly 
  braces. The order of the equations and typings is 
  completely immaterial | components of a record are
  identified by their label, rather than their position.  
  Equality is component-wise: two records are equal if 
  their corresponding fields (determined by label)
  are equal.  -- Introduction to Standard ML

[1]: http://norvig.com/21-days.html

[2]: http://www-plan.cs.colorado.edu/diwan/class-papers/ML-doc.pd...

Zed can come off as defensive and/or abrasive. If he disagrees with you he's not afraid to tell you you're an idiot, and if he feels like you're attacking him he'll tell you to go fuck yourself. He's also very, very staunch in his beliefs, some of which are somewhat contrarian.

In an industry as opinionated and "willing-to-call-you-out" as tech is, that doesn't always win a lot of friends.

Zed is abrasive, and I don't think I'm a particularly defensive or indirect person. I don't think the issue is that he's willing to be direct with people, it's that he's too quick to tell people to go fuck themselves. A lot of communication issues are misunderstandings and in my experience Zed would much rather tell you to go fuck yourself than listen and figure out what the misunderstanding is. The very best teachers and communicators I know don't hesitate to tell you when they disagree but would almost never literally tell you to go fuck yourself, they find a more polite route.

That said, Zed seems like a good guy at heart, I have seen him offer help to people out of nowhere both here on HN and on Twitter. Not to mention making most (all?) of his Learn the Hard Way material for free. So while I don't particularly care for his communication style I don't want to distract from the fact that he is also doing a lot of great work that genuinely helps people.

You're conflating internet interactions with real interactions.

I don't drink at all. Never done drugs and have never been drunk or anything. When I go to bars with friends I find that as the night goes on people become complete drunken idiots and are impossible to deal with. There's no polite way to tell a guy to stop talking to you about his chia pet collection or to keep someone from puking on your shoes or trying to start a fight. Best solution is to just not go to bars, which is what I do. If I need to fit in for some reason, I usually just pretend I'm kind of drunk like everyone else, which I haven't done since I was in my early 20s.

Twitter, these HN comments, IRC, the whole internet is like a massive bar full of drunk idiots. Especially toward the end of the day. Something about the internet makes people turn off their rational mind and just spew hate, stupidity, propaganda, and lies. In this case, it's the same interactions and I get tired of it. You can't tell a belligerent drunk to politely stop smashing your car any more than you can tell a belligerent twitter user to stop talking to you.

So, your comment amounts to judging my interactions with people professionally based on my interactions a bunch of drunk idiots at a bar. Nobody is a saint, and expecting me or anyone else to take abuse and poor behavior like Jesus before you'll think they're a good person is wrong.

And, the fact that you are actually spending your morning (day/night) telling people how I'm a fucked up asshole because of how I deal with fucked up assholes kind of says more about you than me.

I disagree with you about the internet. My bet is we're still learning what proper etiquette on the internet is. You have a great point about people not knowing when to let up online, but I also look around and see both the net etiquette evolving and the commentary on it evolving and to me that is a sign we're getting better.

Why am I spending my time today on this conversation? Because you've become reasonably influential (and certainly for good reason, mongrel, learn the hard way, etc) and because of your influence someone might say hey if I'm a good programmer it might be reasonable to have a short fuse with people and tell them to go fuck themselves because Zed Shaw does. And I want to use this space to say, hey I hope we can be nicer to each other. That's it. I really don't want it to be about anyone in particular, I just hope since programmers work with each other and write about each other's work on the internet we can be considerate and try to be nice to each other even when we're being critical.

> If he disagrees with you he's not afraid to tell you you're an idiot

Honestly, I think this is the other way around. People get defensive and call him names when he is pointing clear mistakes / bad practices. Of course you get frustrated when someone calls you names and it's natural to pay them back in their own coin.

I can't think of any industry in which insulting someone because you disagree with them will win friends :)
Celebrity industry - it's the modus operandi of some entertainment journalists.

Or, did I miss some implied sarcasm??

No sarcasm intended. I live a very sheltered life and in my circles, bad manners gets people cut off, ignored and relegated; certainly doesn't win new friends. HN is pretty much the only place I don't bother with manners.

Does it win these journalists friends, or followers? I suspect the latter, but in the celebrity industry, they're probably the same thing.

He had the gall to criticize the Ruby on Rails community when RoR was still considered sacred (I believe that honeymoon is pretty much over now) in the hipster coding circles that form a considerable and certainly very vocal part of HN.

Also, the puritanical American allergy for "profanity" under the thing guise of "professionalism" doesn't mix well with mr. Shaw's somewhat direct methods of communicating.

How about you let go of the hate and embrace some love instead for the work this man has put forth?

I've seen enough of these threads on Hacker News to know the answer is clearly "it's different because I don't like him."

Zed wounded a lot of egos back in the day, so calls for positivity that may otherwise work on HN are going to fail. By framing him as a "controversial figure" they attempt to create a route to hate on him that doesn't count as shit talking.

I've seen enough of these threads on Hacker News to know the answer is clearly "it's different because I don't like him."

Zed wounded a lot of egos back in the day, so calls for positivity that may otherwise work on HN are going to fail. By framing him as a "controversial figure" they attempt to create a route to hate on him that doesn't count as shit talking.

I don't know of anyone else in tech who's had that experience, ha.

I'm merely commenting on the quality of the course, not the course creator.

I found this course useful. But not as useful as some others. Learning the basics were easy enough, but Zed kinda tripped over with the harder topics such as OOP.

Overall, it's a good place to start programming if you've never done it before, but you will need to look elsewhere for clarity if you want to make sense of anything beyond If-Then statements and while/for loops

I met Zed Shaw in Atlanta during PyCon 2011 and I thought he was a pretty nice guy. People hate his opinions but the hate is unjustified.
Didn't he get a lot of heat when he was a rubyist because of his rants or something , or maybe I'm mixing things up,in that case never mind.
"Rails is a ghetto" is what you're looking for. http://harmful.cat-v.org/software/ruby/rails/is-a-ghetto
How about you let go of the hate and embrace some love instead for the work this man has put forth?

I'm with you. The man cares and, for all of his supposed abrasiveness, he's a good communicator. He's smart and he's not afraid to bring out the honest truth (e.g. "Programming, motherfucker") about an issue.

Honestly, I have no idea where this hatred of Zed Shaw comes from. Yes, the man is opinionated, but he's no more of an asshole about it than most people (which is to say, not much of an asshole at all).
He's arrogant and rude about it, which is bad enough when someone is right and worse when they're wrong and trying to teach beginners. In particular he doesn't understand object oriented programming (look at the piece he wrote about .each vs for in ruby), but is too arrogant to realise that there's something he's missing, so he goes on these sweary rants about how OOP is nonsense/useless/evil/what have you. In any programmer that would be bad. In someone who purports to teach beginners it's disastrous.
>He's arrogant and rude about it

This comment doesn't sound very modest either.

>In particular he doesn't understand object oriented programming (look at the piece he wrote about .each vs for in ruby)

Actually nothing in what he wrote (in Learn Ruby the Hard Way) about each vs for is related to object oriented programming.

Nor is there any particular indication that he doesn't understand OO (which, I'm sorry, but sounds ridiculous as an accusation). He might not be some prodigy, but he's a senior programmer with a lot of experience building systems in different langauges, and OO programming is not some mysterious researchy thing but a tired old industry staple than programmers with 1/10th his experience can grasp...

I have no idea what are you talking about regarding OOP issues. From the Lamson project you can see he is using OOP.

Also, how and when is he arrogant? When he is being called names over and over? And just now you've insulted him saying he doesn't understand OOP. You know Linus Torvalds is not very fond of OOP as well, right?

Always use OOP where it makes sense. I don't think he ever argued that.

> And just now you've insulted him saying he doesn't understand OOP.

The laws of politeness are like the laws of war: once you violate them you forfeit their protection.

> You know Linus Torvalds is not very fond of OOP as well, right?

I would emphatically advise beginners not to listen to Linus Torvalds, and be very concerned if he started writing programming tutorials for beginners.

> Always use OOP where it makes sense. I don't think he ever argued that.

I'm thinking specifically of http://learncodethehardway.org/blog/AUG_19_2012.html as that was where I first encountered him. This article is a) something he wrote by himself, not in response to being called names b) self-confident and abrasive in a way that I think it is fair to describe as "arrogant" c) wrong, in a way that seems to reflect not understanding polymorphism - particularly given his replies in the HN discussion of that piece.

I just read the each vs for part and I don't see anything wrong with it. He's saying it's easier for beginners to grasp the for loop and it's also a pretty universal loop. What's wrong with what he said?
Frankly, after reading that piece, as a Ruby developer that does decidedly prefer "each", I see nothing wrong in it. I also don't find it remotely abrasive and don't see any of that self-confidence (since when is that bad?) you seem to have a problem with. I don't see any arrogance either.

You're not doing yourself any favours by so confidently making abrasive comments about Zed based on that.

>I would emphatically advise beginners not to listen to Linus Torvalds

Lest they might learn something?

Because he has a lot of experience in one very specialized area of programming which very much doesn't reflect the wider profession. It's the same problem as e.g. http://codon.com/the-dhh-problem

I'd recommend beginners listen to a wide variety of "big names", but only those who are clear about the scope and limits of their experience.