how and why I created from 0 to C.
this is a 5 minutes presentation for Ignite Amsterdam.
this is the text part. slides available as separate presentation
General Principles of Intellectual Property: Concepts of Intellectual Proper...
Ignite amsterdam from 0 to C
1. since I was a little kid
I had the insane need to take stuff apart.
figure out how and why it worked.
break it down to the point of no return.
needless to say my parents weren't always happy
with this curiosity of mine.
Friday, April 19, 13
2. at a later age school tried to impose weird symbols on me.
but I thought that too many other things
around me were much more interesting:
dj-ing,Vespa engines, soldering stuff together, building things.
Friday, April 19, 13
3. I had also been typing since the age of 10,
this proved to be very helpful because of my hand writing.
in the end I believe it made me
more comfortable around machines,
including computers, which I kept loving.
Friday, April 19, 13
4. this brought me to become a "programmer",
which later became "visual programmer for UIs".
I worked with designers who took care
of concept and look & feel.
I had to write the code to make it happen
and many times I was just executing a task.
Friday, April 19, 13
5. much later i learned I could write my own code
to obtain a physical output.
this initiated my flirt with the world of micro-controllers:
tiny computers with VERY limited resources
Friday, April 19, 13
6. this tiny world that you access, at one point takes you to
see things in different perspectives.
you start digging down, and your thoughts are populated
by bits and bytes.
when you notice this kind of behavior I think it's time to
start worrying
Friday, April 19, 13
7. when you start digging into such things it's hard to stop.
at least I'm not able to.
when your brain is on idle
(for instance while doing the dishes)
you can achieve some sort of “Eureka moment”
in which you realise that those symbols from school
are connected to what you've been doing
for 20 years as a programmer
Friday, April 19, 13
8. at one point I took a whole month off,
away from work and the rest of my world...
well... if you're into that, you end up
connecting more and more dots,
and possibly find better ways to explain
some things to yourself.
in a visual way.
Friday, April 19, 13
9. I thought: "if I can understand it then anyone can".
it just needs to be "interesting" enough.
and "playful" rather than boring.
it has to be “child's play”.
think about it:
"make believe" sounds better than "simulation"
Friday, April 19, 13
10. so in an attempt to explain how easy programming can be,
I decided to create "from 0 to C":
a playful way to learn the basics and concepts of
programming in a more tangible way.
I picked C because it is as powerful as simple
and it's a great bridge to other languages
Friday, April 19, 13
11. I believe the last thing you need,
to learn how a computer works,
is having a screen before your eyes.
I cannot draw, but paper and pen
help me visualize and understand things better.
"seeing" and "touching" are the key.
Friday, April 19, 13
12. this workshop takes you through a journey
which begins with "unlearning numbers":
detaching yourself from the symbols that identify quantities
and concentrating on the quantity itself.
something that can be physically there, and Yummy.
Friday, April 19, 13
13. this slightly changes the way you understand things.
you enter a process of "learning by discovery".
I certainly would have loved studying like this.
a relaxed environment and playing all day long.
and of course... ehm... no tests.
Friday, April 19, 13
14. i introduced pingpong balls, egg cartons,
lasercut boxes, m&m's
as a mean of counting in physical space
and "designing" your own way of doing it.
we even end up playing with mixed numeric systems.
those can be quite interesting.
Friday, April 19, 13
15. to explain how to work with text and
how a computer or a programming language handles it,
I turned to a laser-cut alphabet.
single letters are joined together
by a piece of string and magnets.
this is how I visualized a "string of characters"
Friday, April 19, 13
16. one of the games we play is "the Ice Cream Shop".
it's basically the most efficient yet slowest
ice-cream buying experience.
why?
because to play the game you have to really analyze
everything that happens in matter of interaction between
the customer and the shop staff
Friday, April 19, 13
17. in this Role Playing Game,
we split the interaction into single small parts.
we don't even think about it,
but there's a lot happening when you
- order an ice-cream
- pay for it
- get change back.
Friday, April 19, 13
18. if we were to analyze the game
and the actions we just performed,
we'd realize that we have in turn
called a function passing a list of flavors
called another function passing an amount of cash
got "something" back (change, if any)
Friday, April 19, 13
19. by day 3 this is not jibberish anymore.
the participants understand,
in a practical way, concepts such as:
- boolean algebra
- variables (containers)
- data types,
- return values,
Friday, April 19, 13
20. so that was a sneak peek into "from 0 to C".
sure the concepts and ideas mostly came out of my head,
but this wouldn't have been possible
without the help of these people.
thank you for your time and patience :)
Friday, April 19, 13