How do programmers react when they are told that their code is “not good enough”?

  1. The code works, so why change it?

  2. Isn’t this design already working? Why simplify it?

  3. Let me explain the code to you so you’ll understand.

“Not good enough,” “not easy enough to understand,” “not user friendly,” and so on. I often have conversations with programmers about why design architecture should be concise, why code should be simple to understand, why code should be formatted, why a space should be placed between two symbols… If you’re a tech geek or read books on how to write good code and design good architecture, you probably feel the same way. These are basic concepts, but not every programmer realizes how important they are.

It’s not just novice programmers who don’t hold themselves to these high standards, but older programmers with years of experience have the same problem. You can recommend that they read the Code Book, The Code Clean Way, the Art of Unix Programming, etc. Maybe some of them will benefit from the book, but some of them will go their own way.

Why isn’t every programmer able to write high-quality code or produce high-quality architectural designs? Maybe it’s because they don’t have enough experience, maybe it’s because they don’t know how to apply what they’ve learned from books or what they’ve learned from experience, or maybe they’re just getting things done, and for them, being a programmer is just a living job. But fundamentally, that’s because they see themselves as programmers, not software artists.

What does it take to be a programmer?

  • Know how to write and test code.

  • Knows how to analyze business problems, gather user requirements, design and deliver projects.

  • Perform the tasks described in PROGRAMMER JD.

What does it take to be a software artist?

To answer this question, let’s take a look at what an artist’s design should look like.

The Eames designed the plastic seat in 1950, and it’s been around for decades. I was impressed by the simplicity of the design and the comfort, and I thought, how can we design our software the way we designed this chair?

I’ve had this chair for three years and I love it because:

  • It looks nice to the eye.

  • Everyone knew it was a chair as soon as they saw it. It sounds silly to say this, but there are some designs out there that you can’t tell what they’re for.

  • The seat plate and the back of the chair are integrated, so it doesn’t look as monotonous as a traditional chair.

  • Because it’s made of plastic, it makes slight adjustments based on how the body sits.

  • It can be anywhere, bedroom, office, living room, dining room…

  • It’s environmentally friendly because it’s made from 100 percent recyclable materials.

So what would software look like if we were to develop this “style”?

  • The code, design, architecture should look good.

  • Anyone who reads a code snippet, a design document, an architecture document will immediately understand their purpose.

  • Code, components, design, and architecture should be as simple as possible.

  • Reuse existing products, libraries, and code to simplify your design.

  • The design should be flexible and able to cope with future changes.

  • Environmental protection – does not take up too much hardware resources.

If a programmer can do this, he must be more than a programmer, he must be a software artist.

One might wonder: How do you know if you’ve met your artist standards? Like, “What’s as simple as possible?” Some might think that if a method has more lines of code than one screen, it is a “long method” that needs to be refactored. Or they might suggest how many states an object should have in its lifetime, and be careful not to go beyond that when writing code.

But being a software artist isn’t about quantifying these things, it’s about continuous improvement. When designing a project, ask yourself: Could this project be better? After the code passes the test, you can also ask yourself: Does the structure of the code look elegant enough? Dare you compare it to the most beautiful piece of art you’ve ever seen?

Programmers don’t usually think about how to improve after designing or writing code, but artists do. This is the biggest difference between a programmer and a software artist. Programmers don’t have to be bad. They can write great code and design, but they can’t be artists once they stop trying.