SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante 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
 

Semelhante 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

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

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