SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
12 Things Every Programmer
       Should Know
      by Samnang Chhun



                         Barcamppp 2010
About Me
•   samnang.chhun@gmail.com
•   @samnangchhun
•   http://wowkhmer.com
•   Ruby and Rails Developer
•   .NET Developer (MCTS)
•   Yoolk Inc.
•   Share Vision Team Core Member
1   Be Passionate
          •   Love what you are doing
          •   Be creative
          •   Want to do it best
          •   Better than yesterday

“Programmers are a subset of creators have the
    responsibility to shape the new world”,
         @steveklabnik and @judofyr
2
Love Your Codes
    • Write codes for human, but bad
      programmers write codes for machine
    • Every programmer loves to work with
      Clean Code
3   Version Control
      •   Backup your codes
      •   Tracking changes (who, what, when)
      •   Work in parallel
      •   Commit often
      •   Never commit when your build fail
4   Read Codes
     • Before you become a good writer,
       you have to be a good reader
     • Day and day programmers working
       hours: 70% reading and 30% writing
     • Take notes on ideas or tricks of the
       author
5   Practice, Practice,
       Practice
      •   Small exercises, isolated problems
      •   Practice on outside company projects
      •   Do your best as you can(no pressure)
      •   Practice to become a master
      •   CodeKata, Pair with Me, Fixing bugs in
          an OSS that you are using
6   Refactoring
     • Improve quality of your codes, without
       changing system behavior
     • Make it easy to understand, maintain,
       and extend
     • “Always check a module in cleaner than
       when you checked it out”, Uncle Bob
     • Intension-Revealing Names, Small
       Method, Compose Method, …
7
 Follow Patterns
and Best Practices

    •   Object Oriented Design Principles
    •   SOLID
    •   GRASP
    •   DRY
    •   KISS
    •   Don’t Tell Us
    •   Design Patterns
8   TDD/BDD
    • Tests are specifications what the system
      does
    • Tests are your first user
    • Short development iteration
    • Is a design process
    • Write just enough codes to pass the
      tests
9   Automation
     • Make your manual tasks are
       automatable
     • Command line are your friend
     • Make a shortcut of your repeated tasks
     • Continuous Integration
     • Automation Deployment
Understand
10   Your Domain
     • Domain-specific won’t be outdate soon,
       but technologies will
     • “You can’t creatively help a business
       until you know how it works.” Chad
       Fowler
Continuous
11     Learning
     • You need to keep learning to stay
       marketable
     • “Be the worst,” Chad Fowler
     • Read books, blogs, Twitters feeds, and
       websites
     • Listen to podcasts
     • Sharpening your tools
Participate in
12   Communities
     • A good way to learn something is to
       teach or speak about it
     • Join or start a study group or a local
       user group for a language, technology,
       or discipline you are interested in.
     • Contribute to OSS
+1
         What I have
         leanred
     • Be Prepared To Unlearn
     • Validate assumptions about your skillset
     • Do less reading about what others are
       doing, and more doing of things that
       others may want to read about
     • Good Artists Copy, Great Artists Steal
References
Q&A

Más contenido relacionado

La actualidad más candente

Open Agile Romania 2011/Catalin Sindelaru - Scrum Pain
Open Agile Romania 2011/Catalin Sindelaru  - Scrum PainOpen Agile Romania 2011/Catalin Sindelaru  - Scrum Pain
Open Agile Romania 2011/Catalin Sindelaru - Scrum PainMozaic Works
 
Be a passionate Programmer!
Be a passionate Programmer!Be a passionate Programmer!
Be a passionate Programmer!Neo Chen
 
The State of Frontend
The State of FrontendThe State of Frontend
The State of FrontendJimit Shah
 
Improve performance of developer - Khodak
Improve performance of developer  - KhodakImprove performance of developer  - Khodak
Improve performance of developer - KhodakIgor Bronovskyy
 
Intro to the creative writing process web
Intro to the creative writing process webIntro to the creative writing process web
Intro to the creative writing process webSandra Barkevich
 
Better Software Through User Research
Better Software Through User ResearchBetter Software Through User Research
Better Software Through User ResearchAlexandra Leisse
 
Play to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DicePlay to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DiceMike Clement
 
Intro to our Agile Release Planning workshop
Intro to our Agile Release Planning workshopIntro to our Agile Release Planning workshop
Intro to our Agile Release Planning workshopLeanAgileTraining
 
Remote team building- eng version
Remote team building- eng versionRemote team building- eng version
Remote team building- eng versionDavide Mezzetti
 
Intro to our CSM Course & Agile Release Planning workshop
Intro to our CSM Course & Agile Release Planning workshopIntro to our CSM Course & Agile Release Planning workshop
Intro to our CSM Course & Agile Release Planning workshopLeanAgileTraining
 
Applying Patterns to Mobile Design
Applying Patterns to Mobile DesignApplying Patterns to Mobile Design
Applying Patterns to Mobile DesignSteven Hoober
 
RDVO - Building UX Pattern Libraries
RDVO - Building UX Pattern LibrariesRDVO - Building UX Pattern Libraries
RDVO - Building UX Pattern LibrariesBen Zipkin
 
Learning how to teach Ops.
Learning how to teach Ops.Learning how to teach Ops.
Learning how to teach Ops.John Contad
 
Building a real time html5 app for mobile devices
Building a real time html5 app for mobile devicesBuilding a real time html5 app for mobile devices
Building a real time html5 app for mobile devicesTony Abou-Assaleh
 
How to manage remote teams 101 (keynote at Conector Barcelona)
How to manage remote teams 101 (keynote at Conector Barcelona)How to manage remote teams 101 (keynote at Conector Barcelona)
How to manage remote teams 101 (keynote at Conector Barcelona)MarsBased
 
Golden rules for JS introduction to your EE project
Golden rules for JS introduction to your EE projectGolden rules for JS introduction to your EE project
Golden rules for JS introduction to your EE projectImre Fazekas
 
Dealing with adversity (as a Game Dev Student)
Dealing with adversity (as a Game Dev Student)Dealing with adversity (as a Game Dev Student)
Dealing with adversity (as a Game Dev Student)Vlad Micu
 
Good, Fast, and Cheap: How Modular Design Improves Our Projects
Good, Fast, and Cheap: How Modular Design Improves Our ProjectsGood, Fast, and Cheap: How Modular Design Improves Our Projects
Good, Fast, and Cheap: How Modular Design Improves Our ProjectsJeremy Ward
 
Game Development Careers
Game Development CareersGame Development Careers
Game Development CareersJesse Schell
 

La actualidad más candente (20)

Open Agile Romania 2011/Catalin Sindelaru - Scrum Pain
Open Agile Romania 2011/Catalin Sindelaru  - Scrum PainOpen Agile Romania 2011/Catalin Sindelaru  - Scrum Pain
Open Agile Romania 2011/Catalin Sindelaru - Scrum Pain
 
Be a passionate Programmer!
Be a passionate Programmer!Be a passionate Programmer!
Be a passionate Programmer!
 
The State of Frontend
The State of FrontendThe State of Frontend
The State of Frontend
 
Improve performance of developer - Khodak
Improve performance of developer  - KhodakImprove performance of developer  - Khodak
Improve performance of developer - Khodak
 
Intro to the creative writing process web
Intro to the creative writing process webIntro to the creative writing process web
Intro to the creative writing process web
 
Better Software Through User Research
Better Software Through User ResearchBetter Software Through User Research
Better Software Through User Research
 
Play to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DicePlay to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and Dice
 
Intro to our Agile Release Planning workshop
Intro to our Agile Release Planning workshopIntro to our Agile Release Planning workshop
Intro to our Agile Release Planning workshop
 
Remote team building- eng version
Remote team building- eng versionRemote team building- eng version
Remote team building- eng version
 
Intro to our CSM Course & Agile Release Planning workshop
Intro to our CSM Course & Agile Release Planning workshopIntro to our CSM Course & Agile Release Planning workshop
Intro to our CSM Course & Agile Release Planning workshop
 
Applying Patterns to Mobile Design
Applying Patterns to Mobile DesignApplying Patterns to Mobile Design
Applying Patterns to Mobile Design
 
What is devops
What is devopsWhat is devops
What is devops
 
RDVO - Building UX Pattern Libraries
RDVO - Building UX Pattern LibrariesRDVO - Building UX Pattern Libraries
RDVO - Building UX Pattern Libraries
 
Learning how to teach Ops.
Learning how to teach Ops.Learning how to teach Ops.
Learning how to teach Ops.
 
Building a real time html5 app for mobile devices
Building a real time html5 app for mobile devicesBuilding a real time html5 app for mobile devices
Building a real time html5 app for mobile devices
 
How to manage remote teams 101 (keynote at Conector Barcelona)
How to manage remote teams 101 (keynote at Conector Barcelona)How to manage remote teams 101 (keynote at Conector Barcelona)
How to manage remote teams 101 (keynote at Conector Barcelona)
 
Golden rules for JS introduction to your EE project
Golden rules for JS introduction to your EE projectGolden rules for JS introduction to your EE project
Golden rules for JS introduction to your EE project
 
Dealing with adversity (as a Game Dev Student)
Dealing with adversity (as a Game Dev Student)Dealing with adversity (as a Game Dev Student)
Dealing with adversity (as a Game Dev Student)
 
Good, Fast, and Cheap: How Modular Design Improves Our Projects
Good, Fast, and Cheap: How Modular Design Improves Our ProjectsGood, Fast, and Cheap: How Modular Design Improves Our Projects
Good, Fast, and Cheap: How Modular Design Improves Our Projects
 
Game Development Careers
Game Development CareersGame Development Careers
Game Development Careers
 

Destacado

Nine inspirational quotes from mark zuckerberg a boy genius
Nine inspirational quotes from mark zuckerberg  a boy geniusNine inspirational quotes from mark zuckerberg  a boy genius
Nine inspirational quotes from mark zuckerberg a boy geniusNews World India
 
Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)Pete Goodliffe
 
Programming languages
Programming languagesProgramming languages
Programming languagesAkash Varaiya
 
Presentation on generation of languages
Presentation on generation of languagesPresentation on generation of languages
Presentation on generation of languagesRicha Pant
 
Top Ten Internet Uses in Education
Top Ten Internet Uses in EducationTop Ten Internet Uses in Education
Top Ten Internet Uses in Educationdeand73
 
Bangladesh final ppt
Bangladesh final pptBangladesh final ppt
Bangladesh final pptJosephite
 

Destacado (6)

Nine inspirational quotes from mark zuckerberg a boy genius
Nine inspirational quotes from mark zuckerberg  a boy geniusNine inspirational quotes from mark zuckerberg  a boy genius
Nine inspirational quotes from mark zuckerberg a boy genius
 
Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Presentation on generation of languages
Presentation on generation of languagesPresentation on generation of languages
Presentation on generation of languages
 
Top Ten Internet Uses in Education
Top Ten Internet Uses in EducationTop Ten Internet Uses in Education
Top Ten Internet Uses in Education
 
Bangladesh final ppt
Bangladesh final pptBangladesh final ppt
Bangladesh final ppt
 

Similar a 12 Things Every Programmer Should Know

Becoming a Web Design Champion
Becoming a Web Design ChampionBecoming a Web Design Champion
Becoming a Web Design ChampionMeagan Fisher
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL DevelopersIke Ellis
 
Running a Successful Open Source Project
Running a Successful Open Source ProjectRunning a Successful Open Source Project
Running a Successful Open Source ProjectRob Reynolds
 
Essential programmer library
Essential programmer libraryEssential programmer library
Essential programmer libraryAndrew Hunt
 
Write code and find a job
Write code and find a jobWrite code and find a job
Write code and find a jobYung-Yu Chen
 
Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Derek Jacoby
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL DevelopersIke Ellis
 
Becoming A Technical Project Manager
Becoming A Technical Project ManagerBecoming A Technical Project Manager
Becoming A Technical Project ManagerScott Massey
 
How to be a contributor to Drupal by Drupalista.me
How to be a contributor to Drupal by Drupalista.meHow to be a contributor to Drupal by Drupalista.me
How to be a contributor to Drupal by Drupalista.meJose palala
 
What every successful open source project needs
What every successful open source project needsWhat every successful open source project needs
What every successful open source project needsSteven Francia
 
Becoming A Technical Project Manager - Capital Camp
Becoming A Technical Project Manager - Capital CampBecoming A Technical Project Manager - Capital Camp
Becoming A Technical Project Manager - Capital CampScott Massey
 
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprisecyberzeddk
 
Developers Best Practices
Developers Best PracticesDevelopers Best Practices
Developers Best Practicesaqib javaid
 
Agile forthelongrun lesfurets
Agile forthelongrun lesfuretsAgile forthelongrun lesfurets
Agile forthelongrun lesfuretsDimitri Baeli
 
Android Developer Training
Android Developer TrainingAndroid Developer Training
Android Developer Trainingfaizrashid1995
 
Avoiding the Heuristic Solution: Moving past functional and correct to joyful...
Avoiding the Heuristic Solution: Moving past functional and correct to joyful...Avoiding the Heuristic Solution: Moving past functional and correct to joyful...
Avoiding the Heuristic Solution: Moving past functional and correct to joyful...Steven Hoober
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022 Michael Yagudaev
 
MagmaRails - Passionate Programmer
MagmaRails - Passionate ProgrammerMagmaRails - Passionate Programmer
MagmaRails - Passionate ProgrammerEdwin Cruz
 

Similar a 12 Things Every Programmer Should Know (20)

Becoming a Web Design Champion
Becoming a Web Design ChampionBecoming a Web Design Champion
Becoming a Web Design Champion
 
OpenSource и Вы
OpenSource и ВыOpenSource и Вы
OpenSource и Вы
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
Running a Successful Open Source Project
Running a Successful Open Source ProjectRunning a Successful Open Source Project
Running a Successful Open Source Project
 
Essential programmer library
Essential programmer libraryEssential programmer library
Essential programmer library
 
Write code and find a job
Write code and find a jobWrite code and find a job
Write code and find a job
 
Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
Becoming A Technical Project Manager
Becoming A Technical Project ManagerBecoming A Technical Project Manager
Becoming A Technical Project Manager
 
How to be a contributor to Drupal by Drupalista.me
How to be a contributor to Drupal by Drupalista.meHow to be a contributor to Drupal by Drupalista.me
How to be a contributor to Drupal by Drupalista.me
 
What every successful open source project needs
What every successful open source project needsWhat every successful open source project needs
What every successful open source project needs
 
Becoming A Technical Project Manager - Capital Camp
Becoming A Technical Project Manager - Capital CampBecoming A Technical Project Manager - Capital Camp
Becoming A Technical Project Manager - Capital Camp
 
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprise
 
Developers Best Practices
Developers Best PracticesDevelopers Best Practices
Developers Best Practices
 
Agile forthelongrun lesfurets
Agile forthelongrun lesfuretsAgile forthelongrun lesfurets
Agile forthelongrun lesfurets
 
Android Developer Training
Android Developer TrainingAndroid Developer Training
Android Developer Training
 
Avoiding the Heuristic Solution: Moving past functional and correct to joyful...
Avoiding the Heuristic Solution: Moving past functional and correct to joyful...Avoiding the Heuristic Solution: Moving past functional and correct to joyful...
Avoiding the Heuristic Solution: Moving past functional and correct to joyful...
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
MagmaRails - Passionate Programmer
MagmaRails - Passionate ProgrammerMagmaRails - Passionate Programmer
MagmaRails - Passionate Programmer
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 

Más de Samnang Chhun

Software developer career growth
Software developer career growthSoftware developer career growth
Software developer career growthSamnang Chhun
 
Why i love ruby than x
Why i love ruby than xWhy i love ruby than x
Why i love ruby than xSamnang Chhun
 
The visitor design pattern
The visitor design patternThe visitor design pattern
The visitor design patternSamnang Chhun
 
Peforming Code Katas
Peforming Code KatasPeforming Code Katas
Peforming Code KatasSamnang Chhun
 
Introduction To Share Vision
Introduction To Share VisionIntroduction To Share Vision
Introduction To Share VisionSamnang Chhun
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentSamnang Chhun
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With SubversionSamnang Chhun
 
NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)Samnang Chhun
 

Más de Samnang Chhun (10)

Find your passion
Find your passionFind your passion
Find your passion
 
Software developer career growth
Software developer career growthSoftware developer career growth
Software developer career growth
 
Why i love ruby than x
Why i love ruby than xWhy i love ruby than x
Why i love ruby than x
 
The visitor design pattern
The visitor design patternThe visitor design pattern
The visitor design pattern
 
Peforming Code Katas
Peforming Code KatasPeforming Code Katas
Peforming Code Katas
 
Introduction To Share Vision
Introduction To Share VisionIntroduction To Share Vision
Introduction To Share Vision
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
 
Layering
LayeringLayering
Layering
 
NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)
 

Último

Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 

Último (20)

Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 

12 Things Every Programmer Should Know

  • 1. 12 Things Every Programmer Should Know by Samnang Chhun Barcamppp 2010
  • 2. About Me • samnang.chhun@gmail.com • @samnangchhun • http://wowkhmer.com • Ruby and Rails Developer • .NET Developer (MCTS) • Yoolk Inc. • Share Vision Team Core Member
  • 3. 1 Be Passionate • Love what you are doing • Be creative • Want to do it best • Better than yesterday “Programmers are a subset of creators have the responsibility to shape the new world”, @steveklabnik and @judofyr
  • 4. 2 Love Your Codes • Write codes for human, but bad programmers write codes for machine • Every programmer loves to work with Clean Code
  • 5. 3 Version Control • Backup your codes • Tracking changes (who, what, when) • Work in parallel • Commit often • Never commit when your build fail
  • 6. 4 Read Codes • Before you become a good writer, you have to be a good reader • Day and day programmers working hours: 70% reading and 30% writing • Take notes on ideas or tricks of the author
  • 7. 5 Practice, Practice, Practice • Small exercises, isolated problems • Practice on outside company projects • Do your best as you can(no pressure) • Practice to become a master • CodeKata, Pair with Me, Fixing bugs in an OSS that you are using
  • 8. 6 Refactoring • Improve quality of your codes, without changing system behavior • Make it easy to understand, maintain, and extend • “Always check a module in cleaner than when you checked it out”, Uncle Bob • Intension-Revealing Names, Small Method, Compose Method, …
  • 9. 7 Follow Patterns and Best Practices • Object Oriented Design Principles • SOLID • GRASP • DRY • KISS • Don’t Tell Us • Design Patterns
  • 10. 8 TDD/BDD • Tests are specifications what the system does • Tests are your first user • Short development iteration • Is a design process • Write just enough codes to pass the tests
  • 11. 9 Automation • Make your manual tasks are automatable • Command line are your friend • Make a shortcut of your repeated tasks • Continuous Integration • Automation Deployment
  • 12. Understand 10 Your Domain • Domain-specific won’t be outdate soon, but technologies will • “You can’t creatively help a business until you know how it works.” Chad Fowler
  • 13. Continuous 11 Learning • You need to keep learning to stay marketable • “Be the worst,” Chad Fowler • Read books, blogs, Twitters feeds, and websites • Listen to podcasts • Sharpening your tools
  • 14. Participate in 12 Communities • A good way to learn something is to teach or speak about it • Join or start a study group or a local user group for a language, technology, or discipline you are interested in. • Contribute to OSS
  • 15. +1 What I have leanred • Be Prepared To Unlearn • Validate assumptions about your skillset • Do less reading about what others are doing, and more doing of things that others may want to read about • Good Artists Copy, Great Artists Steal
  • 17. Q&A