SlideShare a Scribd company logo
Learning by contributing
to Open-Source Software
stephane.ducasse@inria.fr

https://github.com/pharo-project/pharo
z. zidane
Practiced
football?
z. zidane
Practiced
football? Yes
z. zidane
r. federer
Practiced
tennis?
r. federer
Practiced
tennis? Yes
r. federer
k. buniatishvili
Practiced
Piano?
k. buniatishvili
Practiced
Piano? Yes
k. buniatishvili
Did you see the
pattern?
How to practice
software skills?
How to practice software
skills?
• Program (but how to get feedback) code
reviews are precious but difficult to get

• Code katas (always fun)

• Participate to sprints - Pair program

• Participate to open-source
But I’m a noob
And the world is
complex
Wait wait wait…
We are all noobs!
The solution is just
some clicks away…
Take any opportunity
to read code
Take any opportunity
to contribute
Contributing is easy &
simple
Possible contributions
• Read/answer newbie questions
• Participate to the wiki
• Review bug entry description
• Review bug fixes
• Write tests for bug entries
• Improve test coverage
• Improve comments
Newbie Questions
• I learned a lot answering them :)

• When I did not know I looked for the answers

• Try and learn
Read discord
Answer questions
• On discord 

• Mailing-list
Take any opportunity
to contribute
[ how did we meet
with Marcus D.? ]
[ we reviewed squeak
bug issues ]
Bug issue contribution
• Can you understand it?

• else ask for precision

• Can you repeat the problem mentioned?

• report it. This is a valuable
information
Bug issue contribution
•Write a test to show the problem?

•If the contributor provides a test, is it
sounds?
Join/read bug issue
discussion
What if you do not know?
What if you do not
understand?
Easy! Drop it and pick
the next one
Read tests to learn
• Tests are cool to learn

• Tests can be improved, so you can
improve them
Improve test coverage
• It is often easier to write tests than the
code :)

• Grab an object and inspect it 

• Turn this in a test
Add executable comments
[ Free side effect ]
When you contribute to open-source you
improve your visibility
[ Remember ]
Every thing you do today has an impact
on your tomorrow!
[Personal note]
• My objective is to read (and understand) all Pharo source
code :)

• So I take any opportunity to read code

• I even read closed issues
Do not miss a great
opportunity to grow your
knowledge
Join and invent the future

More Related Content

PPTX
RVCE hands-on
PPTX
Coding Introductory Lesson Lower Elementary
PPT
eTwinning_Webinar 5
PPTX
JavaScript Debugging Tips and Tricks
PPTX
Level Up Your Automated Tests
PDF
Ielts coaching
PPTX
Good programming practices updated
PPTX
Lập trình hướng kiểm thử - Test Driven development
RVCE hands-on
Coding Introductory Lesson Lower Elementary
eTwinning_Webinar 5
JavaScript Debugging Tips and Tricks
Level Up Your Automated Tests
Ielts coaching
Good programming practices updated
Lập trình hướng kiểm thử - Test Driven development

What's hot (6)

PDF
XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...
PPTX
How to successfully grow a code review culture
PPTX
9th octoberalg2
PPTX
Multimedia a3
PDF
T.u1.p9 reflection pp
PDF
Level Up Your Automated Tests
XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...
How to successfully grow a code review culture
9th octoberalg2
Multimedia a3
T.u1.p9 reflection pp
Level Up Your Automated Tests
Ad

Similar to Learning by contributing to Open-Source Software (20)

PPTX
How I switched to automation testing?
PPTX
Make a better with clean code
PPTX
Developers Best Practices
PPTX
2013 09-11 java zone - extreme programming live
PDF
NUS Hackers Project Intern 2016
PPTX
WeActuallyBuildStuff - Extreme Programming Live
PPTX
Recipes to Get Started in Open Source
PPTX
Contributing to WordPress
PPT
Welcometo imscomputers7
PDF
How to Effectively Lead Focus Groups: Presented at Product School NYC
PDF
Contributing to Pharo
PDF
iOS Test-Driven Development
PDF
Meaningful code - BeCode Brussels - August 2018
PDF
Invisible Tech: Go APE in the Classroom (Extended Version)
PPTX
Agile Practices
PDF
How to become Softwar Enginneer
ZIP
Technology-Based Reference Interview Workshop
PDF
NLJUG speaker academy 2022 - session 1
PPTX
Confessions of a Senior Mind
PDF
Kata Your Way to SW Craftsmanship
How I switched to automation testing?
Make a better with clean code
Developers Best Practices
2013 09-11 java zone - extreme programming live
NUS Hackers Project Intern 2016
WeActuallyBuildStuff - Extreme Programming Live
Recipes to Get Started in Open Source
Contributing to WordPress
Welcometo imscomputers7
How to Effectively Lead Focus Groups: Presented at Product School NYC
Contributing to Pharo
iOS Test-Driven Development
Meaningful code - BeCode Brussels - August 2018
Invisible Tech: Go APE in the Classroom (Extended Version)
Agile Practices
How to become Softwar Enginneer
Technology-Based Reference Interview Workshop
NLJUG speaker academy 2022 - session 1
Confessions of a Senior Mind
Kata Your Way to SW Craftsmanship
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)

Recently uploaded (20)

PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Transform Your Business with a Software ERP System
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Essential Infomation Tech presentation.pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Introduction to Artificial Intelligence
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Design an Analysis of Algorithms II-SECS-1021-03
Design an Analysis of Algorithms I-SECS-1021-03
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Navsoft: AI-Powered Business Solutions & Custom Software Development
Transform Your Business with a Software ERP System
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Odoo Companies in India – Driving Business Transformation.pdf
Operating system designcfffgfgggggggvggggggggg
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
How Creative Agencies Leverage Project Management Software.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Essential Infomation Tech presentation.pptx
Upgrade and Innovation Strategies for SAP ERP Customers
VVF-Customer-Presentation2025-Ver1.9.pptx
Wondershare Filmora 15 Crack With Activation Key [2025
Introduction to Artificial Intelligence
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Design an Analysis of Algorithms II-SECS-1021-03

Learning by contributing to Open-Source Software