SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
A brief introduction
to a "code monkey's" brain
Programmer definition
Programmer is who, through language, has the capability and
the knowledge to write code for any kind of computer.
Some programmer thinks there artist
Programmers often describe code as
being more beautiful or elegant than
other code. Talk to enough
programmers and you'll hear some
piece of code described as beautiful,
sooner or later.
They see what makes it tick,
appreciating the beauty of its
construction.
Seems that they think that code can
have form, pattern and a special
elegance and grace.
You maybe not believe that writing
code is a creative process, let see
Creating a code project requires: an idea and skills.
A code project require skills like programming language, using of
algorithms and design patterns.
Creating a piece of art requires: an idea and skills.
A piece of art could require skills like representational drawing,
perspective, shading, or color theory.
Programming requires creative thinking. You have a problem,
form a hypothesis about a solution, and then figure out how to
test that hypothesis and implement its findings. That all requires
creative thinking.
But, what is art?
The art of cooking.
The art of negotiation.
The art of conversation.
The art of war.
The art of crochet.
But, what is art?
If we go back to Latin roots, we find ars, artis meaning "skill." It is
perhaps significant that the corresponding Greek word was
τεχνη, the root of both "technology" and "technique."
Wikipedia definition said
"Art can also simply refer to the developed and efficient use of a
language to convey meaning with immediacy and or depth."
But, what is art?
Definition
But, what is art?
"After a certain level of technological skill
is achieved, science and art tend to
coalesce in aesthetic plasticity and form.
The greater scientists are artists as well."
Albert Einstein 1923 from Alice Calaprice, The New Quotable Einstein.
+ quotes
Art and Science
. Skill and techniques.
. And efficient use of a language to convey meaning .
. A level of technological skill achieved.
But, what is art?
Then art is...
Then programming can be art!!
Opinions on Art and Programming
"The programmer, like the poet, works only
slightly removed from pure thought-stuff.
He builds his castles in the air, from air,
creating by exertion of the imagination.
Few media of creation are so flexible, so
easy to polish and rework, so readily
capable of realizing grand conceptual
structures."
Frederick P. Brooks, Jr., The Mythical Man Month
Opinions on Art and Programming
"What hackers (hobbyist programmers)
and painters have in common is that
they're both makers. Along with
composers, architects, and writers, what
they are trying to do is make good things."
Paul Graham, Hackers and Painters
"We have seen that computer programming
is an art, because it applies accumulated
knowledge to the world, because it requires
skill and ingenuity, and especially because
it produces objects of beauty. A
programmer who subconsciously views
himself as an artist will enjoy what he does
and will do it better."
Donald Knuth's author The Art of Computer Programming
Opinions on Art and Programming
Opinions on Art and Programming
"I would describe programming as a craft,
which is a kind of art, but not a fine art.
Craft means making useful objects with
perhaps decorative touches. Fine art
means making things purely for their
beauty.
Richard Stallman, founder of the GNU Project and the Free Software
Foundation.
What is art in code?
What is art in code?
Elegant code adopts aesthetics to achieve high maintainability.
Code must be short, simple, easy to read, easy to match to its
business purpose, and doesn't unpleasantly surprise your
teammates.
There are many ways to write a sentence (as a piece of code) to
a machine but not all are art.
Same sentence may be considered a master peace by one programmer
What is art in code?
What is art in code?
... and bullshit by another.
What is not art in code?
What is not art in code?
For some reason, many programmers seem to think their role is
to write code that makes things work. It’s not.
Just like “the grass is green and the sky blue” is not literature,
although it might perfectly describe the environment, coding
something that "just works" is not programming.
Determining what is and is not bad code is often a subjective
judgment, and will often vary by language, developer and
development methodology.
What is not art in code?
We've all heard about the term "spaghetti code" or "code smells"
I want to make art!
I want to make art!
Read books
The Pragmatic Programmer: From Journeyman to Master
Code Complete: A Practical Handbook of Software Construction
Clean Code: A Handbook of Agile Software Craftsmanship
Surf in other code
https://github.com/explore
https://code.google.com/hosting/
http://www.ohloh.net/
I want to make art!
Follow blogs, web and interesting people
Coding Horror
Improve your skills
Learn, code, code, code and have fun.
All that glitters is not gold
All that glitters is not gold
80% of the lifetime cost of a
piece of software goes to
maintenance.
Hardly any software is
maintained for its whole life by
the original author.
We have predefined specs, with fixed deadlines impossible to
modify because that will cause a disturbance in the Force.
All that glitters is not gold
"When programmers work with other
programmers we are bound strongly by
convention, coding standards,
documentation standards and so on.
Programming is definitely a craft requiring
high levels of skill, but IMO it is not art."
Erik de Castro Lopo, coauthor of C for Linux Programming in 21 Days and
developer of Linux audio library libsndfile
All that glitters is not gold
The existence of process in the actual practice of code writing
makes it tempting to dismiss programming as art, but if we
broadly take the process as consisting of idea, design, and
implementation, then we can see that these process are more
like artistic currents for artists.
Like artistic currents programmers have code standards, coding
style, process that over time have changed.
I want to make art at work
too!
I want to make art at work too!
Define coding convention.
Naming, comments, best practices ...
Do not work individually.
Define coding style.
space or tabs, Indent style, ...
Define process to follow.
Testing, documentation, code review, teach / learn from other teammates.
Is not Ithaca, is the road.
What's for sure, is we all need to work with flair, passion and
imagination.
Why do I need to do it?
Why do I need to do it?
Code is read much more often than it is written.
"Always code as if the person who ends up maintaining your
code is a violent psychopath who knows where you live."
Anyway, go make some art. Why
not?!
Bibliography
Art versus Science?
Knuth: Computer Programming as an Art
Art and Computer Programming
Programming is an Art
Software is Art
Code == Art: One Tiny, Simple Supporting Argument
Hackers & Painters Big Ideas from the Computer Age
Forget Passion, Focus on Process
Programmer Is NOT a Poet
Art and code resources
Code art
Raven Kwok’s work
http://abandonedart.org/
Poem code cryptographic method.#songsincodeProgramming-Poetry deviantart
code {poems}
Beautiful Motion Graphics Created With Programming: Showcase, Tools and Tutorials
Hacker Art
Learn
Coding Horror
The Pragmatic Programmer: From Journeyman to Master
Code Complete: A Practical Handbook of Software Construction
Clean Code: A Handbook of Agile Software Craftsmanship
The Art of Computer Programming

Más contenido relacionado

Similar a Lunch & learn code monkey

Programmer(Programming) == Poet(Poetry)
Programmer(Programming) == Poet(Poetry)Programmer(Programming) == Poet(Poetry)
Programmer(Programming) == Poet(Poetry)PETROSNASIS
 
Design Engineering With Swift
Design Engineering With SwiftDesign Engineering With Swift
Design Engineering With SwiftDavid Hoang
 
Mdst3705 2013-01-31-php3
Mdst3705 2013-01-31-php3Mdst3705 2013-01-31-php3
Mdst3705 2013-01-31-php3Rafael Alvarado
 
Learn to Compose: Prompt Artist isn't Real
Learn to Compose: Prompt Artist isn't RealLearn to Compose: Prompt Artist isn't Real
Learn to Compose: Prompt Artist isn't RealJon Radoff
 
Adobe Creative Residency - PaperMata / I Yosun Chang
Adobe Creative Residency - PaperMata / I Yosun ChangAdobe Creative Residency - PaperMata / I Yosun Chang
Adobe Creative Residency - PaperMata / I Yosun ChangYosun Chang
 
Survival Techniques
Survival TechniquesSurvival Techniques
Survival Techniquesugent
 
Physical interaction design
Physical interaction designPhysical interaction design
Physical interaction designargoncobalt
 
Evolving as a professional software developer
Evolving as a professional software developerEvolving as a professional software developer
Evolving as a professional software developerAnton Kirillov
 
Architecture Katas - How can we learn to create better architectures?
Architecture Katas - How can we learn to create better architectures?Architecture Katas - How can we learn to create better architectures?
Architecture Katas - How can we learn to create better architectures?Frank Sons
 
Computational Thinking - 101
Computational Thinking - 101Computational Thinking - 101
Computational Thinking - 101WhizThinkers
 
[Game] Programming I Didn't Learn in School
[Game] Programming I Didn't Learn in School[Game] Programming I Didn't Learn in School
[Game] Programming I Didn't Learn in School💻 Anton Gerdelan
 
API Workshop: Deep dive into code samples
API Workshop: Deep dive into code samplesAPI Workshop: Deep dive into code samples
API Workshop: Deep dive into code samplesTom Johnson
 
Lecture 1 what_is_programming_language
Lecture 1 what_is_programming_languageLecture 1 what_is_programming_language
Lecture 1 what_is_programming_languageeShikshak
 
The Journey to Master Code Design
The Journey to Master Code DesignThe Journey to Master Code Design
The Journey to Master Code DesignAlexandru Bolboaca
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedWojciech Koszek
 
Антон Кириллов, ZeptoLab
Антон Кириллов, ZeptoLabАнтон Кириллов, ZeptoLab
Антон Кириллов, ZeptoLabDiana Dymolazova
 
What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?Syed Hassan Raza
 
Lecture01 ppt
Lecture01 pptLecture01 ppt
Lecture01 pptInho Won
 
What is a creative technologist?
What is a creative technologist?What is a creative technologist?
What is a creative technologist?Sermad Buni
 

Similar a Lunch & learn code monkey (20)

Programmer(Programming) == Poet(Poetry)
Programmer(Programming) == Poet(Poetry)Programmer(Programming) == Poet(Poetry)
Programmer(Programming) == Poet(Poetry)
 
Design Engineering With Swift
Design Engineering With SwiftDesign Engineering With Swift
Design Engineering With Swift
 
Mdst3705 2013-01-31-php3
Mdst3705 2013-01-31-php3Mdst3705 2013-01-31-php3
Mdst3705 2013-01-31-php3
 
Learn to Compose: Prompt Artist isn't Real
Learn to Compose: Prompt Artist isn't RealLearn to Compose: Prompt Artist isn't Real
Learn to Compose: Prompt Artist isn't Real
 
Adobe Creative Residency - PaperMata / I Yosun Chang
Adobe Creative Residency - PaperMata / I Yosun ChangAdobe Creative Residency - PaperMata / I Yosun Chang
Adobe Creative Residency - PaperMata / I Yosun Chang
 
Survival Techniques
Survival TechniquesSurvival Techniques
Survival Techniques
 
Physical interaction design
Physical interaction designPhysical interaction design
Physical interaction design
 
Evolving as a professional software developer
Evolving as a professional software developerEvolving as a professional software developer
Evolving as a professional software developer
 
Architecture Katas - How can we learn to create better architectures?
Architecture Katas - How can we learn to create better architectures?Architecture Katas - How can we learn to create better architectures?
Architecture Katas - How can we learn to create better architectures?
 
Computational Thinking - 101
Computational Thinking - 101Computational Thinking - 101
Computational Thinking - 101
 
Is AI More Artificial Than Intelligent? Is Wikipedia Better Than AI Chatbots ...
Is AI More Artificial Than Intelligent? Is Wikipedia Better Than AI Chatbots ...Is AI More Artificial Than Intelligent? Is Wikipedia Better Than AI Chatbots ...
Is AI More Artificial Than Intelligent? Is Wikipedia Better Than AI Chatbots ...
 
[Game] Programming I Didn't Learn in School
[Game] Programming I Didn't Learn in School[Game] Programming I Didn't Learn in School
[Game] Programming I Didn't Learn in School
 
API Workshop: Deep dive into code samples
API Workshop: Deep dive into code samplesAPI Workshop: Deep dive into code samples
API Workshop: Deep dive into code samples
 
Lecture 1 what_is_programming_language
Lecture 1 what_is_programming_languageLecture 1 what_is_programming_language
Lecture 1 what_is_programming_language
 
The Journey to Master Code Design
The Journey to Master Code DesignThe Journey to Master Code Design
The Journey to Master Code Design
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
 
Антон Кириллов, ZeptoLab
Антон Кириллов, ZeptoLabАнтон Кириллов, ZeptoLab
Антон Кириллов, ZeptoLab
 
What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?
 
Lecture01 ppt
Lecture01 pptLecture01 ppt
Lecture01 ppt
 
What is a creative technologist?
What is a creative technologist?What is a creative technologist?
What is a creative technologist?
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Lunch & learn code monkey

  • 1. A brief introduction to a "code monkey's" brain
  • 2. Programmer definition Programmer is who, through language, has the capability and the knowledge to write code for any kind of computer.
  • 3. Some programmer thinks there artist
  • 4. Programmers often describe code as being more beautiful or elegant than other code. Talk to enough programmers and you'll hear some piece of code described as beautiful, sooner or later. They see what makes it tick, appreciating the beauty of its construction. Seems that they think that code can have form, pattern and a special elegance and grace.
  • 5. You maybe not believe that writing code is a creative process, let see Creating a code project requires: an idea and skills. A code project require skills like programming language, using of algorithms and design patterns. Creating a piece of art requires: an idea and skills. A piece of art could require skills like representational drawing, perspective, shading, or color theory. Programming requires creative thinking. You have a problem, form a hypothesis about a solution, and then figure out how to test that hypothesis and implement its findings. That all requires creative thinking.
  • 7. The art of cooking. The art of negotiation. The art of conversation. The art of war. The art of crochet. But, what is art?
  • 8. If we go back to Latin roots, we find ars, artis meaning "skill." It is perhaps significant that the corresponding Greek word was τεχνη, the root of both "technology" and "technique." Wikipedia definition said "Art can also simply refer to the developed and efficient use of a language to convey meaning with immediacy and or depth." But, what is art? Definition
  • 9. But, what is art? "After a certain level of technological skill is achieved, science and art tend to coalesce in aesthetic plasticity and form. The greater scientists are artists as well." Albert Einstein 1923 from Alice Calaprice, The New Quotable Einstein. + quotes Art and Science
  • 10. . Skill and techniques. . And efficient use of a language to convey meaning . . A level of technological skill achieved. But, what is art? Then art is... Then programming can be art!!
  • 11. Opinions on Art and Programming "The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures." Frederick P. Brooks, Jr., The Mythical Man Month
  • 12. Opinions on Art and Programming "What hackers (hobbyist programmers) and painters have in common is that they're both makers. Along with composers, architects, and writers, what they are trying to do is make good things." Paul Graham, Hackers and Painters
  • 13. "We have seen that computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better." Donald Knuth's author The Art of Computer Programming Opinions on Art and Programming
  • 14. Opinions on Art and Programming "I would describe programming as a craft, which is a kind of art, but not a fine art. Craft means making useful objects with perhaps decorative touches. Fine art means making things purely for their beauty. Richard Stallman, founder of the GNU Project and the Free Software Foundation.
  • 15. What is art in code?
  • 16. What is art in code? Elegant code adopts aesthetics to achieve high maintainability. Code must be short, simple, easy to read, easy to match to its business purpose, and doesn't unpleasantly surprise your teammates. There are many ways to write a sentence (as a piece of code) to a machine but not all are art.
  • 17. Same sentence may be considered a master peace by one programmer What is art in code?
  • 18. What is art in code? ... and bullshit by another.
  • 19. What is not art in code?
  • 20. What is not art in code? For some reason, many programmers seem to think their role is to write code that makes things work. It’s not. Just like “the grass is green and the sky blue” is not literature, although it might perfectly describe the environment, coding something that "just works" is not programming. Determining what is and is not bad code is often a subjective judgment, and will often vary by language, developer and development methodology.
  • 21. What is not art in code? We've all heard about the term "spaghetti code" or "code smells"
  • 22. I want to make art!
  • 23. I want to make art! Read books The Pragmatic Programmer: From Journeyman to Master Code Complete: A Practical Handbook of Software Construction Clean Code: A Handbook of Agile Software Craftsmanship Surf in other code https://github.com/explore https://code.google.com/hosting/ http://www.ohloh.net/
  • 24. I want to make art! Follow blogs, web and interesting people Coding Horror Improve your skills Learn, code, code, code and have fun.
  • 25. All that glitters is not gold
  • 26. All that glitters is not gold 80% of the lifetime cost of a piece of software goes to maintenance. Hardly any software is maintained for its whole life by the original author. We have predefined specs, with fixed deadlines impossible to modify because that will cause a disturbance in the Force.
  • 27. All that glitters is not gold "When programmers work with other programmers we are bound strongly by convention, coding standards, documentation standards and so on. Programming is definitely a craft requiring high levels of skill, but IMO it is not art." Erik de Castro Lopo, coauthor of C for Linux Programming in 21 Days and developer of Linux audio library libsndfile
  • 28. All that glitters is not gold The existence of process in the actual practice of code writing makes it tempting to dismiss programming as art, but if we broadly take the process as consisting of idea, design, and implementation, then we can see that these process are more like artistic currents for artists. Like artistic currents programmers have code standards, coding style, process that over time have changed.
  • 29. I want to make art at work too!
  • 30. I want to make art at work too! Define coding convention. Naming, comments, best practices ... Do not work individually. Define coding style. space or tabs, Indent style, ... Define process to follow. Testing, documentation, code review, teach / learn from other teammates.
  • 31. Is not Ithaca, is the road.
  • 32. What's for sure, is we all need to work with flair, passion and imagination.
  • 33. Why do I need to do it?
  • 34. Why do I need to do it? Code is read much more often than it is written. "Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live."
  • 35. Anyway, go make some art. Why not?!
  • 36. Bibliography Art versus Science? Knuth: Computer Programming as an Art Art and Computer Programming Programming is an Art Software is Art Code == Art: One Tiny, Simple Supporting Argument Hackers & Painters Big Ideas from the Computer Age Forget Passion, Focus on Process Programmer Is NOT a Poet
  • 37. Art and code resources Code art Raven Kwok’s work http://abandonedart.org/ Poem code cryptographic method.#songsincodeProgramming-Poetry deviantart code {poems} Beautiful Motion Graphics Created With Programming: Showcase, Tools and Tutorials Hacker Art Learn Coding Horror The Pragmatic Programmer: From Journeyman to Master Code Complete: A Practical Handbook of Software Construction Clean Code: A Handbook of Agile Software Craftsmanship The Art of Computer Programming