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

Jeff

I’ve been a long time reader and love the fact that your posts don’t just focus on technical issues. I don’t always agree with what you say, but the fact that it has me thinking about the issues and about another possible point of view is what keeps me coming back.

As a developer in a very small software house (only three of us), I couldn’t agree more that an understanding of marketing is a very useful tool. It may not improve the quality of my code, but it enables me to focus on the aspects of the application that matter to our current and potential users, and allocate my time more appropriately. At the end of the day, my job is to create software that sells, and anything that will help me achieve that is a welcome addition to my skill set.

Don’t let the nay-sayers get to you and keep on posting.

After reading all those blog posts… okay, i only read the first twenty or so. Anyhow, after reading, I realized something.

b The people who most needed to gain something from your last post are the very people who would refuse to accept any of it./b Their attitudes as purists is reminiscent of those who believe in art for arts sake. It doesn’t matter if you get paid, or if anyone understand your work. It doesn’t matter if anyone cares. It just matters that you did something cool and you know it, and if no one else understands, then that’s clearly a sign of failure on their part.

I collaborated with a guy like that on a current project. While he is smart, and his architecture was useful, I will NEVER share a contract with him again. In the end the time I had to spend convincing him to humble himself by explaining or documenting his genius, much less proposing ideas to me or gasp the client, cost me more than the fractional savings from his cool and innovative design.

The famous inventors and researchers you hear about in history, no matter how hated, all did marketing. For every one of them, there were usually five to twenty others doing exactly the same thing. The others just couldn’t convince anyone to listen.

Yes programming is just writing code. However saying a programmer just programs shows a vast ignorance. Any baseball player who only showed up to play baseball would quickly find himself back in the minors. Or has everyone forgotten a pitcher who despite being great at playing baseball got booted for bad marketing?

SteveJ,
Good points. I agree.

Not only was the benchmark messed up, but there is at least one invalid assumption here. IIS has its own implementation of Deflate, so depending on where in the pipeline you apply compression, this benchmark may not even be relevant.

And it’s a good thing that it has its own implementation, because the .NET implementation is absolutely horrible.

For a bit of background, deflate is a data encoding format, not a compression algorithm (RFC 1951). The implementation of deflate has a lot of leeway in how clever it wants to be in trying to compress the data. The inflate (decompression) process, on the other hand, is quite well-specified. The compression implementation can do pretty much whatever it wants as long as you get back the original data when you pass it through the standard decompression algorithm. GZip is a wrapper around deflate – it just adds a small header and a CRC check at the end (RFC 1952). A ZLib stream is another kind of wrapper around deflate, adding a small header and footer around the raw deflate data (RFC 1950).

In any case, the .NET Inflate algorithm (decompress data that has been previously compressed) is generally adequate. It follows the algorithm correctly and can decompress anything from any deflate library. (It isn’t as smart as it could be when dealing with the three formats raw/zlib/gzip, but I can deal with that.)

On the other hand, the .NET Deflate algorithm (create compressed data from uncompressed data) is terrible. In nearly all cases, it does not compress as well as most other deflate implementations (such as WinZip, InfoZip, or GZip). In some cases, the compressed data will be up to 60% larger than the decompressed data, even though a well-written Deflate implementation should be able to limit data growth to less than 1%. The problem is that the .NET compression algorithm always uses a specific method to try to compress the data, even though the deflate file format allows for several different methods so that the best method can be chosen for specific data. This could be fixed in a future .NET framework, but it is still a problem in the current versions.

programmers who take everything they read on the web at face value are dangerous. Programmers need to carefully evaluate information they read on the web, otherwise they could conceivably cut and paste dangerous code into their own programming environments. This would be just as bad as irresponsibly running as administrator or root any executable they find.

Don’t let the bastards grind you down!

Jeff, you jumped the shark so hard that my head exploded.

Let’s collaborate at some cool project in the future.

Option A: Retaliate with an equally wasteful post.
Option B: Rise above this obvious failpost and be the bigger man.

So someone posted a blog that was chock full of flame bait, and you bit? Seriously, what is this, high school? Ohhhh its the intarweb, I forgots (sic). You might try just taking a big, long, deep breath, chalking this guy’s post up to something you dont agree with, and move on. Might as well just drop a ‘your mom’ in there somewhere for good measure.

But then I guess you couldnt rally support and get that endorphin kick :stuck_out_tongue:

@Niyaz PK

Programmers, of all people, should never take anyone’s word for everything. We deal with wrong/misleading/incomplete information all the time; why would we ever take something we read on the net at face value?

Jeff writes about his experiences, he makes no guarantees that his interpretation of what happened in his experiences are 100% correct; he simply talks about them so that you can be that much further ahead when you encounter the same experience.

Anyway, yayyyyyyy Jeff is posting regularly again!

For those who didn’t have the opportunity to hear the wisdom of the ages from my Grandma Smith: The paper holds still, and you can write anything you want on it.

The corollary from Ronald Reagan: Trust, but verify.

Of course, being foolish takes much less effort…

But telling programmers that they should all practice a more or less professional salesmanship, because they are (apparently) all social misfits, is insulting, and fucking annoying.

Well, if you read it like that then I can see how it would be annoying.

But there’s no harm in being able to sell yourself and your ideas to other people and if there’s something that can help you with that, then having it brought to one’s attention can’t be a bad thing, can it?

There’s even a logical way that’s not particularly insulting and that’s this: Marketer’s are rarely going to bother to learn how to program, but programmers should have little difficulty in learning how to market (at least enough to get themselves across).

So they think a blog is authoritative? These are the same people who complain about Wikipedia being wrong?

A blog is a blog - it the authors thoughts (and on a good one some informed and interested peoples reactions to those thoughts) and as you say the comments and reaction are usually more interesting than the original blog

Most information from one source I have ever seen has had mistakes in it (some more than others) I too check and verify what I read (read widely, not narrowly)

Untested programming ideas are often wrong (or at least have bugs), bad testing may give you the wrong answer but at least you made an effort, no testing will not tell you anything

I still thing a programmer needs to know a little about marketing - they have to write stuff that people will actually buy (unfortunately) and they have to be able to sell themselves (to an employer, and to their colleagues - to convince them they really do know what they are doing)

Lord, Jeff, how flattering it must be to be labeled dangerous! It’s like when Paul Newman got put on Nixon’s enemies list – he said it was one of his proudest achievements!

How amusing that the post about learning to market yourself was you jumping the shark. I thought that sort of thing was pretty common knowledge amongst people who wanted to be able to work on their own projects someday, rather than punching a timecard for someone else’s dream.

If it makes you feel any better, Jeff, even though I am not a professional programmer, I don’t always believe what you say anyway! I take it as an interesting opinion, and often disagree with much of it! That’s right – I have an independent opinion and am able to make judgments on my own! I thought you’d be proud – a reader who doesn’t always agree, but doesn’t think that you’re dangerous! Though it must be more fun to be dangerous…

Now I’m off to find a shark to jump of my own…

A lot of the comments on this blog post illustrate a real ignorance and lack of understanding about what marketing means. Marketing is NOT sales. I think a lot of the people on here and reddit take offense to being told they need to be better marketers because they believe that means they need to be better salesmen. However, that is an extrememly limited, and non-professional view of what marketing is.

Marketing, as defined by the American Marketing Association is:

…an organizational function and a set of processes for creating, communicating and delivering value to customers and for managing customer relationships in ways that benefit the organization and its stakeholders. - from Wikipedia.

More precisely, marketing involves the 4 P’s:

  • Product - for programmers, this means things such as: Are your skills valuable? What skills do you need to learn to make yourself more valuable? What is my product advantage over other programmers?

  • Price - I have run into far too many programmers in my day that have no idea what their skills are worth, and so they end up getting paid 50% of what they should be paid. So this part of marketing relates to doing research and studying what the price of your skills should be, i.e. - are you charging enough?

  • Promotion - this P includes the sales part that most people think of when they think of marketing. But it also includes things like establishing relationships, branding, etc. So for a programmer, it means branching outside of your development group at your office and hob-nobbing with folks from HR, Finance, and other groups, and also creating a brand for yourself within your firm. For instance, are you the project plan master? Are you the go-to guy for debugging?

  • Placement - this is the where of marketing. What area are you attempting to distribute your product in? For programmers, this comes down to are you working in a town that has a decent IT industry? Should you relocate? Should you telecommute?

There are of course a dozen other questions you could ask yourself for each of these.

The bottom line is programmers getting all bent out of shape because they’re told they should be better marketers smells an awfully lot like a non-technical project manager getting pissed off when he’s told he needs to brush up on his computer skills. Get over it or be passed up.

So they think a blog is authoritative? These are the same people who complain about Wikipedia being wrong?

A blog is a blog - it the authors thoughts (and on a good one some informed and interested peoples reactions to those thoughts) and as you say the comments and reaction are usually more interesting than the original blog

Most information from one source I have ever seen has had mistakes in it (some more than others) I too check and verify what I read (read widely, not narrowly)

Untested programming ideas are often wrong (or at least have bugs), bad testing may give you the wrong answer but at least you made an effort, no testing will not tell you anything

I still thing a programmer needs to know a little about marketing - they have to write stuff that people will actually buy (unfortunately) and they have to be able to sell themselves (to an employer, and to their colleagues - to convince them they really do know what they are doing)

Blogs are just not that important. Especially ones that assert that some other blog is dangerous, i.e., important.

Jeff,

I agreed with your marketing post completely. Too many times I’ve seen really sharp, intelligent programmers - WAY MORE TALENTED THAN ME - get their ideas rejected simply because they had no idea how to get their point across in a manner that is going to make upper management or a customer’s eyes do anything other than glaze over. Then they get demoralized because Nobody ever listens.

A colleague once said, The difference between a good software engineer and a great software engineer is that the latter uses a word processor as well as he does a compiler. And he wasn’t just talking about documentation or something inane like that, but about being able to write in a way that marketed ideas so that they would be adopted.

Keep up the good work.

I have to admit, I love this blog for the simple reason that you don’t act like a supreme being of unnatural intellect and power…and don’t expect everyone to swallow the pill and accept it as truth.

Keep up the critical thinking point of view, it’s refreshing.

If the content on this site is dangerous and irresponsible then what can we say about the responsibility of Wikipedia content? Or any website? Or any information that is presented to us in any form of media that is biased by the nature of humanity. Pretty sure we need to think for ourselves in all cases… Even old text-books have incorrect content over the passage of time.

Jeff, I read you blog precisely because it is the most radically dangerous one I can find. (I used to up the ante by reading it while holding a live bear cub in my lap, but the county came and took away the cub and its mother.)

By the way, blogging has jumped the shark. It’s not just you.


Dave