Lunch & learn code monkey


Published on

As a programmer to often I have felt that my passion for code is similar to what an artist feel about their art work.

Published in: Technology, Education
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Lunch & learn code monkey

  1. 1. A brief introduction to a "code monkey's" brain
  2. 2. Programmer definition Programmer is who, through language, has the capability and the knowledge to write code for any kind of computer.
  3. 3. Some programmer thinks there artist
  4. 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. 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.
  6. 6. But, what is art?
  7. 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. 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. 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. 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. 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. 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. 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. 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. 15. What is art in code?
  16. 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. 17. Same sentence may be considered a master peace by one programmer What is art in code?
  18. 18. What is art in code? ... and bullshit by another.
  19. 19. What is not art in code?
  20. 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. 21. What is not art in code? We've all heard about the term "spaghetti code" or "code smells"
  22. 22. I want to make art!
  23. 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
  24. 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. 25. All that glitters is not gold
  26. 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. 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. 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. 29. I want to make art at work too!
  30. 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. 31. Is not Ithaca, is the road.
  32. 32. What's for sure, is we all need to work with flair, passion and imagination.
  33. 33. Why do I need to do it?
  34. 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. 35. Anyway, go make some art. Why not?!
  36. 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. 37. Art and code resources Code art Raven Kwok’s work 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