You build a house with Legos, and you're really proud of it.
Your friend Johnny comes over for a playdate and he adds another level to the house, and a different color door.
The next day your friend Oscar comes over and he changes the walls of the building to make it look better.
Your friends Sophie and Alex come over to the day after that, and Sophie builds a new, nicer-looking building and connects it to yours. Alex fixes a few stray blocks in Sophie's new building.
A month passes, and so many of your friends have come over and changed the buildings and added buildings of their own. The original small building you were proud of has now become a city!
And that's all because you worked with your friends to build it.
When your friend Johnny comes over, he has an exact copy of your house built using his own Legos. Johnny makes some changes to his copy and shows you what he did. You can then add those to your house, allow Johnny to add them or discard them and keep the left over Legos for free.
One of the most salient features of our Tech Hiring culture is that there is so much bullshit. Everyone knows this. Each of us contributes his share. But we tend to take the situation for granted.
It's like cooking.
We sell our food to customers,
but we also share our recipes between us,
some follow the recipe line by line,
others interpret it in their own way
Contributing to Open-Source feels like dancing Tango:
it feels weird to interact like this with a total stranger
keep it simple and focus on making a connection
to really understand that social dance, be both a contributor and a maintainer
When mommy wants you to share your legos with your siblings, and you have to let them change or add things, even if you build something, and you can't cry about it.
I've been a professional C, Perl, PHP and Python developer.
I'm an ex-sysadmin from the late 20th century.
These days I do more Javascript and CSS and whatnot, and promote UX and accessibility.
I feel these explanations are too optimistic. When simplifying something like "open source" down, we end up missing out important distinctions, and people say things like, "anyone can use it" or "anyone can contribute to it", which isn't always the case.
More importantly - and this is critical to the formative years of a 5-year-old - "Lego" is its own plural. Grr.
With GPL if they want to redistribute they have to, the owner can choose not to take it, but they do have to share it. Of course you can change it and keep it to yourself without sharing but is a tree falls ...
Senior Software Engineer started programming over 20 years ago.
C C++ python
flask QT django
AWS GCP Airflow
k8s terraform
JS CloudDB's
rust vue TS
API backend dev
#Intp #mathematics #nerd
Well open-source kido is a way for software engineers programmers to collaborate online with other like minded people that they might never met in person but they do still choose to work on same project which is a common ground for them both.
Also kido there are no bosses here there are people who work more on the project and they usually regulate contributions but in anyway in open source you are always encouraged that if you want to make your own spinoff you just do it take a source code fork it and continue in your direction.
(might work for 5 year olds with long attention spans or who are very interested)
fyo: what is open source? Is it like ketchup?
me: No, open source is a way programmers allow people to use their work. Do you remember what a programmer is?
fyo: someone who makes a computer do different things than it already can?
me: that's right, and we do it by writing code. Do you know what code is?
fyo: no
me: code is a special way of writing instructions for a computer to follow.
fyo: ok
me: We call the code that makes up an app "source code", or just "source".
fyo: so the apps on a phone are made of source?
me: exactly. So, as you know my job is a programmer, so I write code for a company. When I write code for them, I have agreed that they own the code, so I can't share it with other people. When someone won't let you see the code for an app, that is called "closed source".
fyo: ok
me: The company doesn't have to hide the code, though. They can let other people outside the company see and use the code to make their own apps. Then the code is "open source".
you OPEN the SOURCE code for others to see, change and develop upon.
There are two types of people:
Who like to create
Who like to contribute
Also, a third type who do both.
For people who like to create
It gives them ability to showcase their code, let other people help them in building it and let other people have their own version of your app
For people who like to contribute
it gives them ability to contribute to their favorite apps/libraries.
cool part?
it doesn't ask for experience or no need to go through hectic interviews! just write code and submit it and boom! the new shiny cool famous library would have your code in it!!!
You build a house with Legos, and you're really proud of it.
Your friend Johnny comes over for a playdate and he adds another level to the house, and a different color door.
The next day your friend Oscar comes over and he changes the walls of the building to make it look better.
Your friends Sophie and Alex come over to the day after that, and Sophie builds a new, nicer-looking building and connects it to yours. Alex fixes a few stray blocks in Sophie's new building.
A month passes, and so many of your friends have come over and changed the buildings and added buildings of their own. The original small building you were proud of has now become a city!
And that's all because you worked with your friends to build it.
— Gabriel
When your friend Johnny comes over, he has an exact copy of your house built using his own Legos. Johnny makes some changes to his copy and shows you what he did. You can then add those to your house, allow Johnny to add them or discard them and keep the left over Legos for free.
Best answer to the OP's question :)
Okay but can we talk about the beauty that is this analogy?
It's like cooking.
We sell our food to customers,
but we also share our recipes between us,
some follow the recipe line by line,
others interpret it in their own way
Contributing to Open-Source feels like dancing Tango:
Contributing to open-source is like dancing Tango
Jean-Michel Fayard (fr/en/es/de) ・ Oct 11 ・ 6 min read
When mommy wants you to share your legos with your siblings, and you have to let them change or add things, even if you build something, and you can't cry about it.
😂 Legos are great to use for explaining this concept!
Except that what you built is still sitting in your hands. Mommy gave each sibling an entire new box of legos.
I feel these explanations are too optimistic. When simplifying something like "open source" down, we end up missing out important distinctions, and people say things like, "anyone can use it" or "anyone can contribute to it", which isn't always the case.
More importantly - and this is critical to the formative years of a 5-year-old - "Lego" is its own plural. Grr.
Do something and show how you did it so others can learn and fix it if something is wrong or even making it better.
They have to share what they did, which is great!, they are making your stuff better, for free!.
They do not have to share what they did. They can share it, and you can choose to ignore it and keep what you built.
With GPL if they want to redistribute they have to, the owner can choose not to take it, but they do have to share it. Of course you can change it and keep it to yourself without sharing but is a tree falls ...
Well open-source kido is a way for software engineers programmers to collaborate online with other like minded people that they might never met in person but they do still choose to work on same project which is a common ground for them both.
Also kido there are no bosses here there are people who work more on the project and they usually regulate contributions but in anyway in open source you are always encouraged that if you want to make your own spinoff you just do it take a source code fork it and continue in your direction.
(might work for 5 year olds with long attention spans or who are very interested)
fyo: what is open source? Is it like ketchup?
me: No, open source is a way programmers allow people to use their work. Do you remember what a programmer is?
fyo: someone who makes a computer do different things than it already can?
me: that's right, and we do it by writing code. Do you know what code is?
fyo: no
me: code is a special way of writing instructions for a computer to follow.
fyo: ok
me: We call the code that makes up an app "source code", or just "source".
fyo: so the apps on a phone are made of source?
me: exactly. So, as you know my job is a programmer, so I write code for a company. When I write code for them, I have agreed that they own the code, so I can't share it with other people. When someone won't let you see the code for an app, that is called "closed source".
fyo: ok
me: The company doesn't have to hide the code, though. They can let other people outside the company see and use the code to make their own apps. Then the code is "open source".
fyo: oh. thanks.
you OPEN the SOURCE code for others to see, change and develop upon.
There are two types of people:
For people who like to create
It gives them ability to showcase their code, let other people help them in building it and let other people have their own version of your app
For people who like to contribute
it gives them ability to contribute to their favorite apps/libraries.
cool part?
it doesn't ask for experience or no need to go through hectic interviews! just write code and submit it and boom! the new shiny cool famous library would have your code in it!!!
It’s like sharing your candy with your class and everyone says it’s yucky
Infinite lego.
It's like ideas. Sometimes free, sometimes not.
Modern version:
Like sandbox at the park.
Clean up, clean up. Everybody everywhere. Clean up, clean up. Everybody do your share!