Aprendendo a
Aprender
Fabio Akita @akitaonrails
http://u.akita.ws/montesclaros
?
+Fácil
+Elegante
Ciência da
Computação
Charles Babbage (1791-1871)
John von Neumann (1903 – 1957)
Alan Mathison Turing (1912 – 1954)
“The Imitation Game" (2014 - Benedict Cumberbatch)
people = 20	
count = 0	
people.times do |person_a|	
people.times do |person_b|	
count += 1 if person_b > person_a	
end	
en...
people = 20	
count = 0	
people.times do |person_a|	
people.times do |person_b|	
count += 1 if person_b > person_a	
end	
en...
people = 20	
count = 0	
people.times do |person_a|	
people.times do |person_b|	
count += 1 if person_b > person_a	
end	
en...
people = 20	
puts (people * (people - 1) / 2) # => 190
require 'benchmark'	
people = 10_000	
Benchmark.bm do |x|	
x.report do	
count = 0	
people.times do |person_a|	
people.time...
require 'benchmark'	
people = 10_000	
Benchmark.bm do |x|	
x.report do	
count = 0	
people.times do |person_a|	
people.time...
require 'benchmark'	
people = 10_000	
Benchmark.bm do |x|	
x.report do	
count = 0	
people.times do |person_a|	
people.time...
require 'benchmark'	
people = 10_000	
Benchmark.bm do |x|	
x.report do	
count = 0	
people.times do |person_a|	
people.time...
user system total real	
190	
0.000000 0.000000 0.000000 ( 0.000043)	
190	
0.000000 0.000000 0.000000 ( 0.000008)
user system total real	
190	
0.000000 0.000000 0.000000 ( 0.000043)	
190	
0.000000 0.000000 0.000000 ( 0.000008)
user system total real	
190	
0.000000 0.000000 0.000000 ( 0.000043)	
190	
0.000000 0.000000 0.000000 ( 0.000008)
user system total real	
49995000	
6.310000 0.000000 6.310000 ( 6.354882)	
49995000	
0.000000 0.000000 0.000000 ( 0.000011)
user system total real	
49995000	
6.310000 0.000000 6.310000 ( 6.354882)	
49995000	
0.000000 0.000000 0.000000 ( 0.000011)
user system total real	
49995000	
6.310000 0.000000 6.310000 ( 6.354882)	
49995000	
0.000000 0.000000 0.000000 ( 0.000011)
“The Social Network" (2010)
http://u.akita.ws/naousesqllike
“I made up the term
‘object-oriented’,
and I can tell you
I didn’t have
C++ in mind”
- Alan Kay
soma = 1 + 2
soma = 1 + 2
soma = 1.+(2)
soma = 1 + 2
soma = 1.+(2)
soma = 1.send(:+, 2)
Ole-Johan Dahl e Kristen Nygaard
require 'prime'	
gerador_de_primos = Fiber.new do	
numero = 1	
loop do	
Fiber.yield(numero) if numero.prime?	
numero += 1	...
require 'prime'	
gerador_de_primos = Fiber.new do	
numero = 1	
loop do	
Fiber.yield(numero) if numero.prime?	
numero += 1	...
require 'prime'	
gerador_de_primos = Fiber.new do	
numero = 1	
loop do	
Fiber.yield(numero) if numero.prime?	
numero += 1	...
require 'prime'	
gerador_de_primos = Fiber.new do	
numero = 1	
loop do	
Fiber.yield(numero) if numero.prime?	
numero += 1	...
Gordon Moore - Intel co-founder
Gordon Bell - DEC early employee
Vaticano 2005
Vaticano 2013
Vaticano 2005
Vaticano 2013
Douglas Engelbart - 1925 a 2/Jul/2013
Douglas Engelbart - 1925 a 2/Jul/2013
Pablo Picasso
Bons artistas Copiam
Grandes artistas Roubam
Ciência da
Computação
OBRIGADO!
slideshare.net/akitaonrails
codeminer42.com
@akitaonrails
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Aprendendo a Aprender - Alagoas Dev Day
Upcoming SlideShare
Loading in …5
×

Aprendendo a Aprender - Alagoas Dev Day

2,366 views

Published on

"Escrever código não é a mesma coisa que programar, do mesmo jeito que jogar ingredientes numa panela não é culinária". Hoje em dia parece que temos uma montanha de opções, guerras religiosas, opiniões de gurus, astrologia e horóscopo para definir tecnologias. Está errado. É hora de voltarmos às raízes: a "Ciência" da Computação.

Published in: Technology

Aprendendo a Aprender - Alagoas Dev Day

  1. 1. Aprendendo a Aprender Fabio Akita @akitaonrails
  2. 2. http://u.akita.ws/montesclaros
  3. 3. ?
  4. 4. +Fácil
  5. 5. +Elegante
  6. 6. Ciência da Computação
  7. 7. Charles Babbage (1791-1871)
  8. 8. John von Neumann (1903 – 1957)
  9. 9. Alan Mathison Turing (1912 – 1954)
  10. 10. “The Imitation Game" (2014 - Benedict Cumberbatch)
  11. 11. people = 20 count = 0 people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a end end puts count # => 190
  12. 12. people = 20 count = 0 people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a end end puts count # => 190
  13. 13. people = 20 count = 0 people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a end end puts count # => 190
  14. 14. people = 20 puts (people * (people - 1) / 2) # => 190
  15. 15. require 'benchmark' people = 10_000 Benchmark.bm do |x| x.report do count = 0 people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a end end puts count end x.report do puts (people * (people - 1) / 2) end end
  16. 16. require 'benchmark' people = 10_000 Benchmark.bm do |x| x.report do count = 0 people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a end end puts count end x.report do puts (people * (people - 1) / 2) end end
  17. 17. require 'benchmark' people = 10_000 Benchmark.bm do |x| x.report do count = 0 people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a end end puts count end x.report do puts (people * (people - 1) / 2) end end
  18. 18. require 'benchmark' people = 10_000 Benchmark.bm do |x| x.report do count = 0 people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a end end puts count end x.report do puts (people * (people - 1) / 2) end end
  19. 19. user system total real 190 0.000000 0.000000 0.000000 ( 0.000043) 190 0.000000 0.000000 0.000000 ( 0.000008)
  20. 20. user system total real 190 0.000000 0.000000 0.000000 ( 0.000043) 190 0.000000 0.000000 0.000000 ( 0.000008)
  21. 21. user system total real 190 0.000000 0.000000 0.000000 ( 0.000043) 190 0.000000 0.000000 0.000000 ( 0.000008)
  22. 22. user system total real 49995000 6.310000 0.000000 6.310000 ( 6.354882) 49995000 0.000000 0.000000 0.000000 ( 0.000011)
  23. 23. user system total real 49995000 6.310000 0.000000 6.310000 ( 6.354882) 49995000 0.000000 0.000000 0.000000 ( 0.000011)
  24. 24. user system total real 49995000 6.310000 0.000000 6.310000 ( 6.354882) 49995000 0.000000 0.000000 0.000000 ( 0.000011)
  25. 25. “The Social Network" (2010)
  26. 26. http://u.akita.ws/naousesqllike
  27. 27. “I made up the term ‘object-oriented’, and I can tell you I didn’t have C++ in mind” - Alan Kay
  28. 28. soma = 1 + 2
  29. 29. soma = 1 + 2 soma = 1.+(2)
  30. 30. soma = 1 + 2 soma = 1.+(2) soma = 1.send(:+, 2)
  31. 31. Ole-Johan Dahl e Kristen Nygaard
  32. 32. require 'prime' gerador_de_primos = Fiber.new do numero = 1 loop do Fiber.yield(numero) if numero.prime? numero += 1 end end
  33. 33. require 'prime' gerador_de_primos = Fiber.new do numero = 1 loop do Fiber.yield(numero) if numero.prime? numero += 1 end end gerador_de_primos.resume => 2
  34. 34. require 'prime' gerador_de_primos = Fiber.new do numero = 1 loop do Fiber.yield(numero) if numero.prime? numero += 1 end end gerador_de_primos.resume => 2 gerador_de_primos.resume => 3
  35. 35. require 'prime' gerador_de_primos = Fiber.new do numero = 1 loop do Fiber.yield(numero) if numero.prime? numero += 1 end end gerador_de_primos.resume => 2 gerador_de_primos.resume => 3 gerador_de_primos.resume => 5
  36. 36. Gordon Moore - Intel co-founder
  37. 37. Gordon Bell - DEC early employee
  38. 38. Vaticano 2005
  39. 39. Vaticano 2013
  40. 40. Vaticano 2005
  41. 41. Vaticano 2013
  42. 42. Douglas Engelbart - 1925 a 2/Jul/2013
  43. 43. Douglas Engelbart - 1925 a 2/Jul/2013
  44. 44. Pablo Picasso Bons artistas Copiam Grandes artistas Roubam
  45. 45. Ciência da Computação
  46. 46. OBRIGADO! slideshare.net/akitaonrails codeminer42.com @akitaonrails

×