You're Reading The World's Most Dangerous Programming Blog

Have you ever noticed that blogs are full of misinformation and lies? In particular, I'm referring to this blog. The one you're reading right now. For example, yesterday's post was so bad that it is conclusive proof that I've jumped the shark.

This is a companion discussion topic for the original blog entry at:

I felt this post (and in fact, your followup comments) came off as more than a little defensive.

Defensive? Why do you say I’m defensive? I’m not defensive! You’re defensive!

Wow, a lot of fanboys that couldn’t wait to bend over and kiss Jeff’s ass!

(Will I get a lot of replies to that? Does that make me dangerous? Does it make me a great blogger because I can piss people off?! By the way, I’ve left comments kissing his ass when I think he’s right.)

Jeff’s seems like a pretty good guys. He often rights interesting stuff. Some of it turns me off but I just ignore it. I would honestly prefer if he stuck to the business of programming (his forte on the blog) rather than the business of being a programmer (his views can not be applicable to everyone’s situation). In his definition, I guess I am not a programmer because I do not have interest in marketing. Interesting word marketing because it can mean a lot of different things to a lot of different people. I grokked the meaning of his post, but soured on his ability as a writer in choosing better language. It would have been much less inflammatory (yes, Jeff could be accused of using the blog as his own flamebait) if he talked about communication, or just referred to it as selling your ideas. Personally, I have seen way to much marketing that is highly political and destructive.

Keep up the good work Jeff.

I think I’ll put this disclaimer on my future software products: I am not responsible for this software. Jeff Atwood, Steve Yegge, and Joel Spolsky are. As well as Mads Kristensen and various Reddit commentors.

This blog is a resource, and last I checked, Steve Atwood isn’t writing my code for me. That means that I am responsible for the information I get from this blog and how I use it. That means that before I use or adopt a recommended approach, I should have invested some time to understanding the recommended approach, why it was used, similarities and differences between my situation and his, correctness, and so on. Many times, one or more of these aspects aren’t clear in the article, but reader comments (and writer responses) are especially useful for more detailed understanding.

After all, God said, Thou shalt not use goto statements. So, better leave it at that, right?

I frequently read your blog and I think you do well to write, because you’re good at it. But I don’t think devoting whole blog entries to defend previous ones in such a wise choise. It doesn’t really have any point. You write what you think, so if you document it properly the first time, there’s no point in returning to it again just because some people voiced their disagreement. Some will always disagree, and be loud about it. That’s internet for ya.

As a software development manager, I find the whole idea of my guys turning to a single guru and blindly following his/her advice ridiculous. I don’t want automatons writing code; I want intelligent, thoughtful, and broadly educated people writing code.

People. Well-rounded ones at that. I have no desire to hire people who cannot market their ideas to teammates and/or our projects to customers.

We can quibble as much as we want over the definition of marketing, but I don’t think that was the goal of the referenced post. The imaginary DD programmer that he rolled was good at programming, no doubt, but he could also do all of the tasks that help teams and individuals function.

I am of the mind that even the Superstar Programmer pundits would agree that Superstars don’t get to the Ivory Tower of Awesomeness by raw coding power alone. I also think they would say that you cannot teach Superstar Programming Skills to a marketer, but you can teach marketing skills to the Superstars.

The rest of us just become managers …

Welcome back, Jeff. I was starting to get concerned after going several days without a new post here. And I agree with your point – I rarely agree with 100% with every blog that I browser regularly, yours included.

Eh, I’m a ‘nothing’ on the grand scale of computer programmers. I’ve been working as a full-time developer for about 2.5 years now. I’m not particularly smart or gifted and while I’d love to spend lots of free time learning more about computer programming; I’m at a stage in my life where it takes a backseat to other things. Having said that, I don’t have kids or a wife, so I don’t see that changing anytime soon.

So, take my opinion with a grain of salt…

From what I’ve seen and learned as a developer (as an IT Consultant specifically) is that appearance REALLY is important. In my past job, dealing with clients, as well as some on-the-side contract work I’ve done the people who write my check don’t understand computers. They certainly don’t understand programming. When a client requests a feature they really have no idea or understanding of the scope of that change.

When people don’t understand what you do and can’t very well measure how well you do it (Spagetti code in 4 hours that works or excellent code in 5 hours - what looks better to a client who doesn’t know anything about development and who pays you $100 an hour. Hint, they’d rather have it done in 4 - most of them anyway).

When I read the post about marketing, it reminded me of my consulting days. Days when the whole team (five of us, staffed at the corporate headquarters of a large retail chain) all had to show up 25 minutes early - so that, even if there was traffic and we were running 20 minutes late - we’d make it on time. Days when even if you worked through lunch, you couldn’t leave until 5.

I was a fresh out of college kid at the time and I didn’t understand why it mattered. I’ll code just as good from 7:30am - 5:00pm as I would from 8:30am-6:30pm. But the fact of it is, being there early and never leaving early left a real nice impression on all the workers.

That’s just one tiny example, but there was a WHOLE LOT more to being a good consultant than doing a great job writing code. If the customer understood code - they probably wouldn’t have hired us. That meant helping the client understand how easy or how hard something was. That meant, having visibility to the client. Interacting with the client. Making them think you were generally a nice, honest person who wasn’t going to screw them over. If you could go even a little further and seem friendly, well, that was all the better.

Looking back, I didn’t see why it should matter…and maybe for some of the amazing hot-shot programmers who land jobs at Google on their amazing technical merit - it doesn’t. But for a guy like me…well…I can use all the help I can get.

I’m a 16-year-old developer, and I have cited your posts in the past to some of my ex-workmates.


I love reading your blog, and I’m a young, relatively inexperienced developer. I don’t agree with everything, and sometimes I take things at face value. If I screw up using an idea from here, I won’t blame you. I appreciate the nuggets of thought you give me to chew on. Keep up the good work.

I think that the number of reponses to comments Jeff has made says a lot about what he is trying to get across. You learn by accepting (constructive) criticism and not by bicker.

I’ve not always agreed with what Jeff has posted, but I read and try to understand HIS viewpoint first before I interject mine. I think that by doing so then, and only then, can you really have ground to counter his opinions.

It’s kinda like the current election; does Obama have a better platform than McCain, or vice versa? Which actually has a majority of beliefs that agree with yours? You can take this same principle and apply it to Jeff’s posts and the comments to his posts. Once you gather those facts and start to compile them into a solid grounding into how to define YOUR principles and beliefs, you become a better programmer, and possibly a better person overall.

When you read one of his posts then dig into the comments, do you find that you start to understand the overall post better? Even coming up with counterpoints that you feel actually have merit? Then Jeff has done what he has set out to do. MAKE YOU THINK!

There’s a particular phrase that isn’t just for a particular race, but for all of mankind: A mind is a terrible thing to waste. Be it a programmer or otherwise, don’t just focus on one thing and one thing only. Look at the big picture and see what there is to see from someone else’s perspective.

Thanks for all the (mis)information, Jeff! You certainly have made me think more times than I can remember!

I think it’s a very safe rule to not take any Redditor Microsoft-related comments that seriously. That group is serially against all things MS, as evidenced by the consistent anti-Atwood comments there and bigotry against MS technologies and developers. It’s just a foregone conclusion there. The truth is, Jeff could say anything, and they’d find some criticism to make. It’s part of their culture and identity. Even responding to them gives them too much credit. To wit, don’t reward bad behavior.

I don’t take much truck with generalizing about an entire population of users, but the evidence is overwhelming. While Reddit users are comparatively one the smarter groups on the web, they are also the most guilty of deep-seated bias and rampant group-think.

Of course this blog isn’t dangerous to programmers. The supposition is as stupid as it is preposterous. Not only is it not a very technical blog, but it’s also just that - a blog. And I disagree that Atwood has a larger responsibility than any other blogger. The onus falls to each individual developer to analyze information sources themselves.


I wanted to sign up for StackOverflow but couldn’t use my (probably still) existing Yahoo OpenID.

Then I wanted to leave a suggestion for improving a certain aspect of the site, but couldn’t because I wasn’t signed in.

You might want to consider letting users sign up with a good old fashioned username password -combo too.

OpenID just isn’t all that appealing.

I agree critical thinking should be applied to everything you read, especially if it is online. I also agree that is is a reasonable expectation to have for almost everyone.

However experience and knowlege about a topic make a huge difference in how effectively someone can use their criticial thinking skills to form their own opinions on a particular issue.

A entry level programmer might not have the necessary background to see the drawbacks of a more advanced developer’s approach, not because they don’t evaluate it critically, but because they don’t have suffecient context to have anything other than a trust-based conclusion.

This is isn’t necessarily bad, it’s part of human development.
I think it does mean that who offer advice have to be aware that those less advanced may be have to form some of their opinions in using little more than technotrust, simply because they haven’t learned more.

Your writing is excellent Jeff. You stir thought into the minds of people who are too comfortable at being as good as they already are.

Of course a good reader should take what is published on the internet with a grain of salt, and to me that is a very good defense against the slander that people will label you with.

I always get something out of your articles whether or not I agree with them!

Keep it up dude.

This is a great blog post. I know that for sure, when I’ve disagreed with you, I’ve learned something for myself by figuring out exactly what I disagreed with you on, or how to express it.


Jeff, there is a big difference between Mads Kristensen’ s blog and this blog. There are a lot more readers for this blog.

Many readers will take what you write as the last word in programming.
You ought to write more responsibly.

Thats it.

Was the Happy Gilmore (as opposed to Billy Madison) reference a joke pointed at the misinformation you’re talking about? =)

Disagreement is the only way to learn anything! Or am I missing something? The only times I learn – about programming or anything else – are when my opinions about what’s true or possible are challenged, changed or expanded. Even expansion is a form of disagreement.

If I read something and just accept it as true without trying to poke holes in it then I learn nothing – I’m just being lazy.

The point made above about experienced vs. novice programmers is interesting, but I don’t think it gives enough credit to beginning developers – even novices must take responsibility for evaluating different advice and techniques. A good way to do this is to absorb and synthesize information from a variety of sources. Sure, experience counts – but I have more often seen experienced coders doing things in weird, wonky ways than inexperienced ones. Sometimes one’s clutter of experience must be flushed to see a problem anew.


Marketing is either promoting fear or sex to the appropriate audience.

Programmer Audience:
Fear - that other code would never work
Sex - look at this class hierarchy

Manager Audience:
Fear - that other code will take 4 weeks to develop/fix
Sex - look at the expected low TR rate because of this

Customer Audience:
Fear - that other code is unreliable and expensive
Sex - this code is reliable and cheap

Okay, so do I get a marketing_skill++? … didn’t think so. This article appears to be marketing something too to someone.