So, What’s the Deal with ‘Code Character’?

Dan Wadleigh

It’s NOT a Persona

Let’s be clear, I am not THE Code Character. “Super Hero Coder” by day and a regular family guy by night. First, I’d have to be a professional programmer by trade, working on that skill set now. And second, I have enough real-world experience, i.e. production battle scars, to know hubris often comes before a humbling. And it usually doesn’t win many team points.

Though I can only picture the absurdity of it – Paul Bettany’s ring announcer character Chaucer from A Knight’s Tale:

Code Character is NOT a persona

“INTRODUCING THE … CONQUEROR OF CODE … PRODIGY OF PROGRAMMING … DOMINATOR OF DEVELOPMENT … AGILE AVENGER … LORD OF THE LANGUAGES … DELIVERER OF DESIGN PATTERNS … OFFICER OF ALL THINGS OBJECT-ORIENTED … CRUSHER OF CLASSES … BRUISER OF THE BACKLOG … REGENT OF REFACTORING … PROFESSOR OF PRAGMATIC … MASTER OF THE MYTHICAL ….. THE CODE CHARACTER!” – CHAUCER (PROBABLY, AFTER GAMBLING & LOSING)

Mmmm yeah, that’s going to be a hard NO on the self-appointed grandiose persona. The Code Character concept originated about 10 years ago standing in a Barnes & Noble while visiting my parents in Vermont. Like I do every time I visit a B&N, I find my way over to the technology section.

Personally, I find there’s merit in picking up a hard copy and thumbing through its pages. There’s something more engaging to me than the usual online review of a book. And in this instance, I pulled off the shelf Steve McConnell’s book Code Complete.

And let’s be honest here, this wasn’t some out-of-the-blue find. A developer friend, and pretty much every recommended reading list for programmers online, said this was a must-read.

Code Complete by Steve McConnell

Personal Character

As I surveyed the table of contents, one chapter jumped out at me. Chapter 33 – Personal Character. I proceeded to stand there, tome in hand, coffee smells wafting through, fellow tech enthusiasts passing by, and read the entire chapter. I was captivated and inspired. I had seen most of these concepts in some form or another via personal development resources. But never quite like this in a technical book.

Steve had laid out a roadmap for excellence. But, this was one based not on a list of technical skills, rather on a list of character traits. Traits that if acknowledged could be intentionally cultivated and developed. I left the store that day challenged and changed. A reference point that would influence me for the next decade.

Personal Character Traits

Key Points from Chapter 33 – Personal Character (Code Complete, 2ed; Steve McConnell; Microsoft Press; 2016)

  • Your personal character directly affects your ability to write computer programs.
  • The characteristics that matter most are humility, curiosity, intellectual honesty, creativity and discipline, and enlightened laziness.
  • The characteristics of a superior programmer have almost nothing to do with talent and everything to do with a commitment to personal development.
  • Surprisingly, raw intelligence, experience, persistence, and guts hurt as much as they help.
  • Many programmers don’t actively seek new information and techniques and instead rely on accidental, on-the-job exposure to new information. If you devote a small percentage of your time to reading and learning about programming, after a few months or years you’ll dramatically distinguish yourself from the programming mainstream.
  • Good character is mainly a matter of having the right habits. To be a great programmer, develop the right habits and the rest will come naturally.

It’s a Pursuit

So this was the genesis of the Code Character concept in my mind. The acknowledgment and pursuit of improving personal character and habits could lead to improving professional character and expertise. But I still wasn’t a coder practically or professionally. I worked on the operations side as a systems administrator. In fact, I’ve been there for the past 10+ years – Windows System Admin > Linux System Admin > AWS Cloud Engineer. The Code Character concept took root and shaped my Ops journey. The principles have been the same, but the application has been more related as “Ops Character” and “Cloud Character.”

It's a pursuit of goals.

Code Character represents the pursuit of a professional goal. One that I acknowledge will never be attained but sets a standard of excellence to be pursued along the way. Pursued in how I relate as a teammate and how I perform as a technician. It is the pursuit of improving my personal character and ultimately improving my professional character.

Pursuit of Code Character

And now I’m turning my attention to a longstanding passion – coding. This article, the website, my Twitter handle, my GitHub account all have this concept stamped on them. To me, it is a challenge with public accountability that I will continue pursuing this standard. And that I will once and for all firmly add the coding tool to my tech toolbox. As I improve my coding skills and practices, I aim for my code to be complete, to be clean, to be effective, to have high quality, to have high … character.

CODE CHARACTER REPRESENTS THE PURSUIT OF IMPROVING CHARACTER – OF THE CODER & OF THE CODE.

Dan Wadleigh - pursuing Code Character

What’s next?

I write this article not for any personal recognition, but rather as a way to document my journey. It has been noted that we can learn more efficiently if we learn in public and gather honest, even critical, feedback from others. I hope to be transparent along the way and learn from others graciously willing to give of their time. I also hope to give back and return the time favor to others along the way. That my experiences, learning, and growth may be useful to someone else on their own journey.

Here’s to enjoying the journey and the pursuit of Code Character. Pressing on!

Dan Wadleigh: AWS Cloud Engineer Pursuing Code Character

About the author

Experienced AWS Cloud Engineer designing and implementing solutions with a business-first approach focused on scalable, secure infrastructures and automation for managing and deploying applications. Proven record in reducing deployment time, increasing system reliability, and improving team productivity.