top | item 45741710

(no title)

billllll | 4 months ago

Some of the worse engineers I've ever interacted with had too strong of a "taste" for what they felt were right and were completely unable or unwilling to work outside of that. Developing a superiority complex because you think you have "taste" is a great way to torpedo your team.

Coding for others is not art, it does not have much meaning in of itself. Your users won't marvel at your choice of language or your usage of design patterns - they care about how the end product looks and works.

In a world like that where you have to work in a team, why you ever wear your inflexibility as a badge of pride? The ones who are the most useful are the ones who can code any way, any how, and can plugin anywhere - "taste" be damned. If you want to be a net positive on the teams you work on, stop thinking it's about you, because it's not.

discuss

order

xKingfisher|4 months ago

> Coding for others is not art.

It absolutely is, and I think it's what separates good from bad and junior from senior devs.

Most devs can produce an artifact that more or less works. But one that has an internal consistency others can understand and extend, one which accurately captures the problem as it exists and ways it will likely change, is much more of an art form.

A big part of that is knowing which situations are worth making a stand. Every you write code or leave feedback, your doing it for your team current and future.

billllll|4 months ago

Nothing that you talked about pertains to art. Writing good code does not mean you're making art.

You shouldn't strive for internal consistency with yourself, you should strive for external consistency with the other developers in your team. If someone reads your code and immediately knows it was you, you probably aren't doing a good job.

And that's the difference. If you are doing a good job as a software engineer, no one should notice you. If you're making good art, everyone should see you. And that is the difference between devs who think they're good, and devs who are truly good.

weitendorf|4 months ago

Code can be art but not all code should or even could be art. Like there is just zero utility or elegance in formatting your bash script with pretty comments and some elegant data model if it’s just something you run to manually pull metrics from a staging environment or whatever.

I see code more like rocks, nails, planks, tape, shards of broken glass, and a pile of signs that say things like RADIOACTIVE - DO NOT ENTER. If you need to do something cool with that stuff you probably do need to create something that looks pretty interesting and elegant in spite of your choice in building materials. But sometimes you just need to take a NO TRESPASSING sign and tape it to a plank that you jam into a pile of rocks. Don’t need to find a hammer if you don’t use nails, only need it up for a day, just one of a hundred things on your plate to do something of bigger scope and impact - just make sure the rocks are big enough to keep the plank standing, leave and forget about it.

liamcsail|4 months ago

Spot on! The real difference between having great taste and just thinking you do lies in understanding the user's needs deeply. Good design isn’t just about looking pretty; it’s about nailing that value. And yeah, it’s no walk in the park!

teeray|4 months ago

> Your users won't marvel at your choice of language or your usage of design patterns - they care about how the end product looks and works.

Yeah, but if the patch is unreadable slop, some tasteful choices that make the code more maintainable will make features and bugfixes come faster for users and number go up for the business.

billllll|4 months ago

Unreadable slop and "tasteful" choices are independent of each other. You can make "tasteful choices" that makes code unreadable (I know from experience).

Readability also has some level of objectiveness to it. There's only so many ways you can abstract a concept, and so many ways you can express logic.

In that sense, readability has way more to do with skill in abstraction, than taste. In fact picking bad abstraction layers or expressing logic in odd manners because of taste is a great way to write unreadable slop.