Aprendendo a Aprender - Alagoas Dev Day

Post on 18-May-2015

1.640 views 0 download

Tags:

description

"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.

Transcript of Aprendendo a Aprender - Alagoas Dev Day

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 = 20count = 0people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a endendputs count # => 190

people = 20count = 0people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a endendputs count # => 190

people = 20count = 0people.times do |person_a| people.times do |person_b| count += 1 if person_b > person_a endendputs count # => 190

people = 20puts (people * (people - 1) / 2) # => 190

require 'benchmark'people = 10_000Benchmark.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) endend

require 'benchmark'people = 10_000Benchmark.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) endend

require 'benchmark'people = 10_000Benchmark.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) endend

require 'benchmark'people = 10_000Benchmark.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) endend

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 real49995000 6.310000 0.000000 6.310000 ( 6.354882)49995000 0.000000 0.000000 0.000000 ( 0.000011)

user system total real49995000 6.310000 0.000000 6.310000 ( 6.354882)49995000 0.000000 0.000000 0.000000 ( 0.000011)

user system total real49995000 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 endend

require 'prime'gerador_de_primos = Fiber.new do numero = 1 loop do Fiber.yield(numero) if numero.prime? numero += 1 endend

gerador_de_primos.resume=> 2

require 'prime'gerador_de_primos = Fiber.new do numero = 1 loop do Fiber.yield(numero) if numero.prime? numero += 1 endend

gerador_de_primos.resume=> 2gerador_de_primos.resume=> 3

require 'prime'gerador_de_primos = Fiber.new do numero = 1 loop do Fiber.yield(numero) if numero.prime? numero += 1 endend

gerador_de_primos.resume=> 2gerador_de_primos.resume=> 3gerador_de_primos.resume=> 5

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