SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Lunch & learn code monkey

Mdst3705 2013-01-31-php3
Mdst3705 2013-01-31-php3Mdst3705 2013-01-31-php3
Mdst3705 2013-01-31-php3
Rafael Alvarado
 
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
Yosun Chang
 
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 ...
Reflections on Morality, Philosophy, and History
 
Lecture 1 what_is_programming_language
Lecture 1 what_is_programming_languageLecture 1 what_is_programming_language
Lecture 1 what_is_programming_language
eShikshak
 
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
Wojciech Koszek
 
Lecture01 ppt
Lecture01 pptLecture01 ppt
Lecture01 ppt
Inho Won
 

Ähnlich wie 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?
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

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