Live data from Hacker News

What is “good taste” in software engineering?

seangoedecke.com

211–220 of 245 posts

Re: What is “good taste” in software engineering?

#211
post #86

> In other words, immature engineers are too inflexible about their taste. They know what they like, but they mistake that liking for a principled engineering position. I have come across this although I think quite experienced engineers can suffer from this kind of immaturity. Aeons ago I used to help friends with their Computer Science assignments. I remember the temptation to rewrite their code because I didn't li…

I don't ever tall a junior that they are doing something in a less-than-optimal way. I always ask them why they're doing it that way. At the end of each conversation, one of us has learned something. Sometimes I learn an alternate approach, and sometimes they learn why their alternate approach won't work in the long run. Either way, it's never a confrontational conversation.

Asking questions is always the best way to correct someone (Hey Socrates). You avoid triggering defense, and if it turns out you were wrong, you don’t sound like a jackass.

Re: What is “good taste” in software engineering?

#212
post #44

Earlier quoted context omitted.

Most engineers and technical persons don’t have good fashion taste, so they have a hard time understanding good taste in general. The great majority of technical things are not cool to normal humans, they’re geeky. Programming languages are not cool. In programming one has to therefore start from “not cool” and move down the scale: Uncool: Rust, C++, most languages Painfully uncool: anything functional and weird. Bas…

This comment annoyed me so much I had to get an actual keyboard to respond. First off, the concept of "good taste" is much, much broader than only applying to clothing based fashion. You can have good taste in practically any field that involves any amount of creativity/choice: cooking, painting, writing, music, programming, video game design, etc, the list is practically infinite. As such, the idea that most "engine…

It is broader since it applies to things which can be perceived visually, but does not apply to any random creative activity. The list is finite and programming is not on it.

Furthermore, taste in one area is more likely to manifest in other areas. Somebody that has good taste in fashion would likely have good taste in interior decoration or art.

> Secondly, having good taste and being able to apply it is also wildly different. I can recognize what looks good in fashion or paintings without being myself able to achieve that.

Ok, but applying it is the interesting part.

> Thirdly, there's really no such thing as a "normal human". The longer you live, assuming you're willing to actually examine your experiences, the more you'll learn that the trite expression "everyone is unique" really is accurate.

The things that make individuals truly unique are often irrelevant in the greater scheme. One could draw a line across continents and ages to connect quite similar people.

Re: What is “good taste” in software engineering?

#213

Earlier quoted context omitted.

I don't ever tall a junior that they are doing something in a less-than-optimal way. I always ask them why they're doing it that way. At the end of each conversation, one of us has learned something. Sometimes I learn an alternate approach, and sometimes they learn why their alternate approach won't work in the long run. Either way, it's never a confrontational conversation.

Asking questions is always the best way to correct someone (Hey Socrates). You avoid triggering defense, and if it turns out you were wrong, you don’t sound like a jackass.

[dead]

Re: What is “good taste” in software engineering?

#214
>> Personally, I feel like code that uses map and filter looks nicer than using a for loop

This is definitely not a taste thing. They are both useful in different scenarios.

For example if using async/await, you can use Promise.all with a map to execute some code on multiple elements in parallel. But if you want to execute the code on them sequentially, you NEED a for loop.

There are many situations where the second approach may be better for example you are calling an API with rate limiting and want to spread out your calls, one at a time, intentionally.

Sometimes I use both; if the amount of data is large; I break it up into batches. I use a for loop on the outside to execute each batch in series but then inside the loop I use Promise.all with a map to execute the items in the batch in parallel... And I make the batch size configurable depending on the capacity of the server.

Re: What is “good taste” in software engineering?

#215

Good taste is writing code that looks so simple, everyone else says "pshaw, anyone could have written that!"

Yes. It's a great irony. It's so simple that anyone could have written that and yet it feels like less than 1% of people write code like that in practice.

Re: What is “good taste” in software engineering?

#216

Earlier quoted context omitted.

I don't ever tall a junior that they are doing something in a less-than-optimal way. I always ask them why they're doing it that way. At the end of each conversation, one of us has learned something. Sometimes I learn an alternate approach, and sometimes they learn why their alternate approach won't work in the long run. Either way, it's never a confrontational conversation.

Asking questions is always the best way to correct someone (Hey Socrates). You avoid triggering defense, and if it turns out you were wrong, you don’t sound like a jackass.

You still have to be sensible in the way how you ask questions. Very possible to intentionally or unintentionally insult and trigger lots of other things just by "asking a question" (my speciality).

Re: What is “good taste” in software engineering?

#217

Earlier quoted context omitted.

I have another example. I have a '72 Dodge Challenger. I've taken the thing apart, and put it back together. I never cease to be surprised at how well-engineered it is in its simple, direct, and inexpensive solutions to making an amazing car. For example, consider the instruments. They run off of 5 volts, while the system voltage of the car is anywhere from 10-18 volts. How to get 5 volts? It has a sort of buzzer whi…

I don't know that I'd describe this as "good". It's a hack solution that mostly worked at the time. Those mechanical voltage regulators wore out and had to be replaced periodically. They weren't great at maintaining consistent voltage so consumers had to accept loose voltage tolerances. They made noise and generated electrical interference. Modern cars are more reliable, despite their complexity. I'll take solid stat…

> Modern cars are more reliable

I would hope so, after 55 more years of development!

Re: What is “good taste” in software engineering?

#218

I’d suggest reading Hammond’s, The Art of Doing Science and Engineering . He literally ran a course to help people develop, “taste.”

For others trying to find this, the author's name appears to be Richard W. Hamming.[0] [1] [0] Of Hamming distance fame [1] Here's a link to the Wikipedia article about the book: https://en.wikipedia.org/wiki/The_Art_of_Doing_Science_and_E...

Oops, sorry. Was typing on my phone and misremembered his name! That’s the one.

Re: What is “good taste” in software engineering?

#219

Good taste is writing code that looks so simple, everyone else says "pshaw, anyone could have written that!"

Another one:

People will watch a ballet and remark "they make it look so easy and effortless!"

The reality is, it is easy and effortless to them, because they practiced it 10,000 times.

Re: What is “good taste” in software engineering?

#220
post #41

Good taste is writing code that looks so simple, everyone else says "pshaw, anyone could have written that!"

> everyone else says "pshaw, anyone could have written that!" it really depends on the problem domain tho, doesnt it? Would you call the fast inverse square root[0] code good taste? [0] https://en.wikipedia.org/wiki/Fast_inverse_square_root#Overv...

As a young programmer, I would have also written the the function name "Q_rsqrt".

As an old programmer, I would write "FastInverseSquareRoot()".

It took a looong time for the penchant to write identifiers adhering to the FORTRAN limit of 6 characters to fade away.

(Yes, I know Q_rsqrt is 7.)

Post reply on HN