Skip to main content

Command Palette

Search for a command to run...

Be a Code Artist

Published
4 min read
Be a Code Artist
A

I'm a Consulting Software Engineer, Software Architect, and AWS Solutions Architect with over 34 years of experience. My specializations include AWS serverless application development, IoT, and webapps.

I performed too well growing with the Cloud Native application development practice of a Premier AWS Consulting Partner, and got myself promoted to management. 😔

Now I'm returning to my true self as a full spectrum software engineer and cloud technologist; from discovery to delivery and everything between.

Inspiration

I ran across this blog post some time ago:

Four reasons why everyone except for Computer Scientists writes sloppy code by Ari Joury

It’s a really good write up, except that it starts right off in the title insulting a whole lot of developers. Joury doesn’t define who a Computer Scientist is. It is only someone like me with a degree that says “Bachelors of Computer Science”, or is it anyone who thinks like a computer scientist? I believe it is the latter: how someone thinks. However, in that case the very label makes no sense. This is exemplified in Joury’s Reason #1, which hits the nail on the head:

“Reason 1: For Computer Scientists, coding is an art. For everyone else, it’s a tool.”

  • Ari Joury

I read this line and my head popped. 🤯 I’ve seen this sentiment before, but never so succinctly. But there’s a problem with it. If you study physics, chemistry, biology… you would be studying science. You would be pursuing knowledge of what is. As software developers though, we might study the problem space of what we are trying to solve with our solution, but then we go and create something new.

So I’ll modify this reason:

“Reason 1: For passionate software developers, coding is an art. For everyone else, it’s a tool”

  • me

Passion = Art!

How does a passionate software developer differ from everyone else?

Everyone else will look at the requirements, perhaps with a user story, and dive in writing code. Tweak it. Stack Overflow it. In the end, the output is something that “works.” That’s the end for these “users of a tools” people.

“It works for that user story, therefore it is done.”

  • those people

This code is usually easy to spot, because it will be a jumbled mess of spaghetti. That’s evolution. Does it work? Yes, at least for that one use case. Can it be maintained? Probably not.

A passionate software developer would be embarrassed by that. How can you be passionate about your work and deliver a mess? A code artist might go through the same evolution but then it will be refactored into a testable succinct piece of art.

More often though, a code artist won’t have just blindly started typing code. Writing is a form of art. Like any novelist, the artist will outline the overall plot first. The characters and interactions are identified and the story obtains some structure before a single sentence, a line of code, is written.

If you have a code artist doing your code reviews for a while, you will experience this passion for the art of programming. I hope you will come out of the experience as a matured artist yourself. We will challenge you. Either we will convince you that our artistic style is best, or you will rise to the challenge of standing up for your own artistic approaches. Or, you will remain a “it works therefore it is good” user of tools and hate all artists.

“You will get better every day. It is an art, not a science. It is a mixture of your creativity, your personality, your heart, your mind, your ethics and your values. It is you.”

  • James Stanier

Stanier was talking about being a manager, but this is true of anything you care about.

Audience

Reason 2: Developers don’t always write with the reader in mind

  • Ari Joury

This calls back to the point that a code artist is a writer, and we’re writing to two completely different readers of the same manuscript: the computer and our fellow developers. The computer doesn’t care one bit about English and is perfectly happy with this program:

static int e,n,j,o,y;int main(){for(++o;(n=-~getchar());e+=11==n,y++)o=n>0xe^012>n&&'`'^n^65?!n:!o?++j:o;printf("%8d%8d%8d\n",e^n,j+=!o&&y,y);}

Source: International Obfuscated C Code Contest

Our fellow developers care only a little about the programming language syntax; really it’s English that we read. What we name things is most important here, as well as how we organize things. This is what makes code readable, and not just functional.

Conclusion

So what’s my point? Have passion for your work! Go forth and create art!

A

Here's a different take on code as art, and art as code, from 2020: The Art of Code - Daylan Beattie

M

This is the best thing I read today. And this week. And this month. Amazing content!!

J

BRILLIANT ✨🔥

Adam Fanello can we replace "coding" with "programming"?

"For passionate software developers, programming is an art. For everyone else, it’s a tool”

A

I've been using those terms synonymously lately, as I think has become fashionable. I actually had to look up what the difference is.

Agreed - programming would be a better choice. I won't retroactively change the post now, but acknowledge your point and this distinction. 🙇

C

Very informative post! Programming is like an art for me!

1
D

I couldn't agree more with what you wrote. Certifications of any kind can be important, but when we do something for the love of it, with determination and passion for our work, we end up going beyond

1
G

Thanks for this Adam Fanello, as an aspiring developer with a passion for art, your words inspire me to not be an ordinary developer. 🙏

1
P

Clear thoughts on this Adam!

1
M

I'm gonna be a code artist!

1
E

That was a lovely read, thanks Adam Fanello. 🤗

1

Maintainable Coding

Part 1 of 3

My thoughts on maintainable coding, many driven by examples found in real pull requests.

Up next

Clean Code

A book review