Programming explained to my grand-mother
Bruno Bord
25 october 2009 - OggCamp
Programming explained to my grand-mother
Well... it's a replay
- This talk has already been given
- the first BasqueCamp (barcamp) in Bidart, France
- in October last year.
Well... it's a replay
- It was basically in French
- Simultaneously translated in Basque.
- Why not in English and here?
The title
La programmation expliquée à ma grand-mère
The title
Programming explained to my grand-mother
The title
Programming explained to my grand-mother
Explain the "unexplainable"
Programmers have psychosis,
Artists have neurosis.
-- Max
Why trying to explain it?
- Because I love to chat
- Because most people don't know about our job ("the computer guy")
- Because my mother always want to know everything - hi mum.
Why do we write software?
Why do we write software?
- Because we love problems?
- Because a customer is asking us?
- Because we're a bunch of geeks?
Why do we write software?
- Because we love to solve problems.
- Because a customer is asking us?
- Because we're a bunch of geeks?
Why do we write software?
- Because we love to solve problems.
- Because a customer is
askingpaying us? - Because we're a bunch of geeks?
Why do we write software?
- Because we love to solve problems.
- Because a customer is
askingpaying us? - Because we're REALLY a bunch of geeks!
Why the computing?
- large amount of data (banks, military...)
- high frequency of data process
Why the computing?
Truth: We're lazy
How to explain?
Cooking?
I am an expert
Jam
Fruits
Jam
Ingredients
Jam
What can we do with it
Jam
Recipe
Jam
Recipe
- indicates the quantities of ingredients
- adding them in the right order
- what to do with them
- when shall we stop
- well... the whole thing...
Jam
What to do with the result?
Programming
- the ingredients == data
- the recipe == the program
- the jam jars == database
Let's go back to the start
Expected result: the program
Programming
Raw data
Programming
Refined data
Programming
Process, scenario, what to do next
Programming
Specifications
Programming
Scope and Specs documents
- which data we're processing
- how to transform them
- for what?
- study the different scenarios
- well... the whole thing.
Programming
Storing: databases
Can we cook Free Software?
What is software?
What is software?
What do programmers do?
They write code
What is code?
- Texts written by human beings (yes, I tell you...)
- Gives orders to the computer
- faffing with the data in many ways...
- ... sends back a result
What do we do with code?
Binary
Jam?
The code
Jam?
Binary
When my mum has a new recipe for jam
Two distribution modes
Mrs Smith wants some jam?
- Some full jars
- Some full jars and the recipe
But that's not the end
What could Mrs Smith do with it?
- Put jam on toast and eat it
- Use the recipe to make the same jam
- Change / adapt the recipe
- Give it back...
What can Mrs Smith redistribute?
Same!
- Some full jars
- Some full jars and the recipe
ad infinitum...
Back on Mrs Smith's rights
- Put jam on toast and eat it
- Use the recipe to make the same jam
- Change / adapt the recipe
- Give it back...
Back on Mrs Smith's rights
- Run the program
- Use the recipe to make the same jam
- Change / adapt the recipe
- Give it back...
Back on Mrs Smith's rights
- Run the program
- Access source code and educate yourself
- Change / adapt the recipe
- Give it back...
Back on Mrs Smith's rights
- Run the program
- Access source code and educate yourself
- Edit source code / adapt it to needs
- Give it back...
Back on Mrs Smith's rights
- Run the program
- Access source code and educate yourself
- Edit source code / adapt it to needs
- Redistribute it (modified or unchanged copies)
Back on Mrs Smith's rights
- Run the program
- Access source code and educate yourself
- Edit source code / adapt it to needs
- Redistribute it (modified or unchanged copies)
... Now you see what I mean!
That's it!
But it's not too bad, innit?
Other fields to translate in "regular guy" language
- Why so many programming languages?
- Which language to pick when you want to learn?
- Programming is not sorcery
- Write specs in different languages (customer / programmer)
- Managing projects
But also...
- Test-driven development
- Source code management (revisions)
- Tools that help building tools (framework)
Colophon
- Cliparts: from the Creative Commons collection, Public Domain,
- Cooking 02, by Eric Schmuttenmaer, CC-BY-SA
- Bonne Maman, by Marc Mateus, CC-BY-NC-SA
- jam session: the first batch, by "audinou", CC-BY
- Les mûres pour la confiture, by "wisemandarine", CC-BY-SA
- Love Love, by Prakhar Amba, CC-BY-NC
Grab this talk
On Je Hais Le Printemps
http://jehaisleprintemps.net/talks/
... but it's not yet ready.
THE END
Now bugger off
... and educate your neighbours.