No one hates software more than programmers

No one hates software more than programmers

[[125814]]

A few months ago, we bought a new digital camera to better record the growth of our little baby. My wife was in charge of the purchase. She carefully opened the camera box, installed the batteries, and started to take a few test shots. Like many electronic products, the camera also came with a software CD. So, without thinking, she opened the DVD drive and put the CD in.

I happened to notice all this out of the corner of my eye, and in a split second I dashed across the room, screaming "NO...NO...AHH..." - in a desperate attempt to stop her from installing the software from the CD (to better understand the situation, you can imagine the whole process in exaggerated slow motion). Fortunately, she stopped, but I almost scared away a cat.

There's nothing wrong with the software that comes with your digital camera. But is it?

This software may be unnecessary

Any modern operating system (even Windows XP) can browse and automatically download photos from a new digital camera. No special software is needed. But the hasty approach of some camera company executives to bundle software—with a piece of software that has a bunch of quirky and unique features—in order to add "value" and differentiate themselves from competitors should be questioned.

Hardware companies are usually not good at making software

Digital camera companies excel at hardware manufacturing, but software is at best an afterthought, an accessory, and in the eyes of salespeople, just the icing on the cake.

Software from unknown sources is likely developed by bad programmers

If nothing else, the chances that this unknown piece of software you are about to install will be useful and provide a good user experience are very low.

Unfortunately, there are many side effects of choosing software development as a career, one of which is that, over time, you will grow to hate software. I mean real hate! A strong hate! Imagine the angriest user you have ever met, and multiply his emotions by 1000 times, and it still won't compare to how we programmers feel about software. No one hates software more than programmers. Even right now, I feel angry as I say this.

Isn't it strange that people who develop software as a profession would have this attitude? We write code every day and get paid for it, so how can we resent it?

David Parnas explained in an interview:

Q: What is the most commonly overlooked risk in software engineering?

A: Incompetent programmers. Some estimates say that the United States needs more than 200,000 programmers. This is completely misleading! It's not a question of quantity, it's a question of quality. One bad programmer can easily create two new jobs in a year. Hiring more bad programmers will only increase our need for them. If we have more good programmers and can make them stand out, we will need fewer programmers, not more.

How can I be so sure that the world is full of incompetent programmers? Because I am one of them.

We've all worked in sausage factories, so we know how that stuff is made. It's not a good thing! Most software is developed by bad programmers like us (or worse). This means that most software sucks. Scott Berkun once wrote an article titled "Why Software Sucks". In the article, he said:

When people say “this stuff sucks” they mean one or more of the following:

It is not what I need;

I was at a loss for words;

It doesn’t have to be so complicated and difficult to use;

It malfunctions frequently;

It was disgustingly ugly;

It doesn’t fit with my worldview;

It wastes my energy on tools, when I should be focusing on my work.

Do you think the software bundled with that digital camera meets the above criteria? I guess all of them are true. This is why it is best not to use software. Otherwise, you should use as little software as possible, and even more, only use those that have a good reputation and are truly reliable.

I don't like installing new software. Quite the opposite. I dread it!

Let me tell you about a nightmare I've had many times. In the dream, I'm sitting in front of a computer. The machine boots up and runs an operating system that I developed myself. Then, I open a web browser that I developed from the ground up. I visit a website that I also built myself. I click on the page and it blue screens. The blue screen program blue screens itself, and then it explodes, destroying the entire neighborhood.

This dream was good. The worse ones were just screaming. It was pitch black.

In short, I hate software. I hate most software, especially my own, because I know how hard it is to make a good software! This may sound a little strange, but it is a natural and healthy attitude for software developers. You will find that this is the consensus of all capable programmers and the only way to grow.

In fact, during the interview process, I feel that I can judge whether a software developer is capable by just one simple question: "What is the worst code you have seen recently?"

If they don't say "my own" without hesitation, then you should abort the interview immediately. Sorry, my friend, you don't hate software enough! Come back in a few years, if you're still a programmer then...

<<:  Technology trends for 2015, etc. This alien feels like he's from Mars.

>>:  Jingdong Love Story

Recommend

Four ways to attract traffic to Zhihu in 2019!

Now more and more people trust Zhihu and not Baid...

The whole process of building a private traffic pool

Building private domain traffic is no longer a ne...

GEO Data Analysis Video Course Series

GEO Data Analysis Series Video Course Resource In...

How to do a good job in Zhihu promotion and traffic generation? 3 key points!

As a latecomer, Zhihu is still well-known on the ...

Setting benchmarks, segmenting, review of Tik Tok content marketing in 2018!

In the blink of an eye, the mobile Internet has b...

Design of operation plan for Children's Day event!

There is only half a month left until Children...

What is the most effective way to attract new customers?

Background knowledge: CAC = cost to acquire a sin...