DO NOT BUY BOOKS, and don’t look online for information because it is almost all wrong.

Top level of programing is analogous to cities.

At the individual level it is analogous to writing a book.

The Chief characteristics of exceptional coders are:
* Creative minds
* The ability and enjoyment of writing stories.
* Seeks and finds Inspiration
* Desire for Excellency, but not trapped in Perfectionism
* Exceptional coders are also exceptional leaders.

There are 3 levels of code quality.

1.) Ugly Code (pragmatic code):

Just getting it done (the majority of programming) -
* Laziness and Pragmatism are the reasons for ugly code.
* The chief characteristics of ugly code are
* it’s difficult to read
* it’s very difficult to understand.
* it follows no story line, but has random perambulating thought without organization.

The Primary differentiation from ugly code and the other code qualities is that it takes longer for the original coder or any other coder (irrespective of experience level) to understand the code than it would take to create the same functionality from scratch.)

Eighty percent of all the costs associated with creating ugly code occurs in the maintenance costs of that code after it is created. It almost always eclipses the original budget after 2 years in just maintenance costs.

Approximately 90% of all code is bad code.

2.) Decent Code:

Structured and understandable by competent programmers in under 5 minutes of reading. Largely ordered, and if it was re-implemented, it would take less than half the time that it took to originally code.

Roughly 9% of all code is decent code.
Decent code requires the business to value the readability of code over getting features to market as soon as possible.
Overall, even though decent coders cost roughly 40% more than ugly coders, their work generally costs 50% less to maintain overall.

50% percent of all the costs associated with creating ugly code occurs in the maintenance costs of that code after it is created. While decent code typically requires double the initial budget of ugly code, the maintenance costs of Decent code typically eclipses the creation cost after 5-8 years.

3.) Beautiful Code:

The relative beauty of code is determined chiefly by how quickly anyone can comprehend it.

Beautiful code is analogous to a well written novel aimed for the general population. It is sleek concise with short “sentences”, and a well defined and coherent story path. The only difference is additional punctuation and grammatical structure.

Decent Code takes roughly twice as long to write as ugly code. Businesses need to have their priorities in line, or they will inevitably hire ugly code to be written. Beautiful code can take anywhere from twice as long as ugly to one fifth as long.

Truly beautiful code rarely has any sizable unexpected maintenance requirements. It is typically considered “Rock Solid”. With the utilization of best practices such as unit tests, it can even be scientifically guaranteed that beautiful code will have no maintenance costs in the future.

One way to implement concise, easy to read and implement APIs is to think like an author.

Have your classes be the Roles, the objects be the Actors, and the methods be their Actions.

Make sure each Action is just one action, each role is well-defined and focused, and each Actor is specialized.

Then try to make the overall library and act in a play.

My definition of Elegant, Beautiful code is code which can be easily read and understood by people with no coding experience.

Aside: code has a half life of 30 days, meaning after 30 days you forget 50% of your own code. After 6 months, even with code you are intimately familiar with you will have totally forgotten it. This is why it is imperative to write Beautiful code.

If you look at your own code that is older than a year, and do not feel a sense of remorse and regret for having coded it so poorly, you have not grown as a coder as you should.