Channels ▼

Paul Kimmel

Dr. Dobb's Bloggers

I'm Loving It!

March 08, 2011

"Confidence comes not from always being right but from not fearing to be wrong."
--Peter T. Mcintyre

I wrote a very little code in the 1970s, got paid to write a little more in the 1980s, and have been writing code professionally, ever since 1990. I started with C++ -- self taught -- right when it came out in 1990. C++ was hard language to learn by myself, but I read Stroustrop, Eckel, Booch, Coplien, Meyers, Thielen and more, and these guys were pretty darn good teachers.

There are a lot of things I believe about good code that I adopted from my teachers or the hard way, by trial and error. Two of these things are: if code is well-written, elements are well-named, and methods are singular and small then comments are generally superfluous. A second is that well-named methods that are singular in nature and very short -- one or two lines of code -- are highly composable and very easy to debug. Many people have argued with me on this point over the years but most of these people spend a lot of time wrangling with code and debugging; I generally don't so have been satisfied with this posture.

Recently, I was asked to help cobble together a broad spectrum training plan for some mainframe to WinTel developers, and believing that reading should be a part of every such plan I picked some titles. I picked some standbys like Fowler's Refactoring and Design Patterns, but I also stumbled across Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin. The first selling point is that James O. Coplien wrote the forward. For me, that is a pretty strong endorsement.

I haven't finished it yet, but in Clean Code Martin makes a stand and sets forth what he believes the characteristics of clean code are. Martin does so unwaveringly and unapologetically. This book is long overdue. Martin doesn't need my endorsement about what constitutes clean code and what does not, but I am happy to have his.

Alas, if you don't know who Coplien, Martin, Stroustrop, Eckel, Booch, Fowler, or Meyers are then sadly you have not broken bread with arguably some of the brightest minds in our industry today.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.