There has been a lot of discussion during the last 50 years about the nature of programming: Is it an art like poetry? Is it craftsmanship like pottery? Is it an exact science like physics? Or a non exact science like medicine? Is it engineering like bridge building?
Whatever the nature of software development is: during this time, a lot of tools and techniques have appeared to make your lazy-developer life more difficult: Coding conventions, OOP, FP, SOLID, Design Patterns, Tests, TDD, UML, Use-cases, CASE tools, Refactoring, RUP, Agile, SCRUM, Continuous Integration, Code Complexity Metrics, Emergent Architecture, DevOps, SCM... and whatnot!
But, sometimes, being a lazy developer makes you do things that seemed counterintuitive, in order to pursue your main objective: WORK LESS.
12. Beauty
a combination of qualities, such as shape, colour, or form, that
pleases the aesthetic senses, especially the sight.
13. "The Magical Number Seven,
Plus or Minus Two: Some
Limits on Our Capacity for
Processing Information" -
George A. Miller, 1956
The Magic Number Seven, +/- Two
14. "beautiful code" is not an abstract virtue
beautiful code must help the
programmer be happy and
productive
beautiful code is easy to
understand
17. >>> import this, The Zen of Python
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Although practicality beats purity.
If the implementation is hard to
explain, it's a bad idea.
If the implementation is easy to
explain, it may be a good idea.
Namespaces are one honking great idea --
let's do more of those!
29. Lazy person
"I will always choose a lazy
person to do a difficult job
because a lazy person will
find an easy way to do it."
Bill Gates
30. Laziness
“The quality that makes you go to
great effort to reduce overall energy
expenditure. It makes you write
labor-saving programs that other
people will find useful, and document
what you wrote so you don't have to
answer so many questions about it.
Hence, the first great virtue of a
programmer.”
Larry Wall - Perl author
31. Done. Now I think I can use some rest.
@javier_arilos / Javier Arias Losada
32. references
Jeff Atwood - Development is Inherently Wicked https://blog.codinghorror.com/development-is-inherently-wicked/
Jeff Atwood - Good Programmers get off their butts https://blog.codinghorror.com/good-programmers-get-off-their-butts/
Yukihiro Matsumoto - Treating Code As an Essay https://www.safaribooksonline.com/library/view/beautiful-code/9780596510046/ch29.html
Code Complete: A Practical Handbook of Software Construction, Second Edition by Steve McConnell: http://a.co/exQvydH
Bartosz Milewski - Category: The Essence of Composition: https://bartoszmilewski.com/2014/11/04/category-the-essence-of-composition/
Joe Armstrong - Why programming is difficult http://joearms.github.io/2014/02/07/why-programming-is-difficult.html
Martin Fowler - Beck Design Rules https://martinfowler.com/bliki/BeckDesignRules.html
Rob C. Martin - Clean Code https://www.amazon.com/dp/0132350882/ref=cm_sw_r_tw_dp_x_g-JXzbJT5GS7X
33. Abstract
There has been a lot of discussion during the last 50 years about the nature of
programming: Is it an art like poetry? Is it craftsmanship like pottery? Is it an
exact science like physics? Or a non exact science like medicine? Is it engineering
like bridge building?
Whatever the nature of software development is: during this time, a lot of tools and
techniques have appeared to make your lazy-developer life more difficult: Coding
conventions, OOP, FP, SOLID, Design Patterns, Tests, TDD, UML, Use-cases, CASE tools,
Refactoring, RUP, Agile, SCRUM, Continuous Integration, Code Complexity Metrics,
Emergent Architecture, DevOps, SCM... and whatnot!
But, sometimes, being a lazy developer makes you do things that seemed
counterintuitive, in order to pursue your main objective: WORK LESS.