Slide 1

Slide 1 text

Ruby vs Python

Slide 2

Slide 2 text

OU

Slide 3

Slide 3 text

Como conduzir sua carreira num mundo de hypes e flamewars

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Lucas Arruda @lucasarruda

Slide 6

Slide 6 text

EX Avenue Code ThoughtWorks

Slide 7

Slide 7 text

ATUAL
 Desenvolvedor Independente Consultor etc

Slide 8

Slide 8 text

MakeSchool

Slide 9

Slide 9 text

Curso de Computação na prática

Slide 10

Slide 10 text

2 meses Para aprender a fazer apps 2 anos Pra aprender computação de forma prática

Slide 11

Slide 11 text

mas…

Slide 12

Slide 12 text

Python ou Ruby?

Slide 13

Slide 13 text

Faz diferença?

Slide 14

Slide 14 text

Chuck Norris desarmado ou humano armado?

Slide 15

Slide 15 text

Pitfalls
 Armadilhas

Slide 16

Slide 16 text

Toda linguagem tem sua curva de aprendizado

Slide 17

Slide 17 text

Toda linguagem tem suas ferramentas específicas
 DSL's
 libs
 etc

Slide 18

Slide 18 text

Ou seja… Toda linguagem tem suas particularidades E também seus casos de uso mais apropriados

Slide 19

Slide 19 text

Python, Ruby, PHP Java, C# Go, Elixir C/C++, Rust, Nim

Slide 20

Slide 20 text

o/a programador(a) faz a diferença

Slide 21

Slide 21 text

Exemplo

Slide 22

Slide 22 text

User.all.map(&:meals) User Load (0.2ms) SELECT "users".* FROM "users" Meal Load (0.2ms) SELECT "meals".* FROM "meals" WHERE "meals"."user_id" = ? [["user_id", 2]] Meal Load (0.1ms) SELECT "meals".* FROM "meals" WHERE "meals"."user_id" = ? [["user_id", 3]] Meal Load (0.2ms) SELECT "meals".* FROM "meals" WHERE "meals"."user_id" = ? [["user_id", 4]] Meal Load (0.1ms) SELECT "meals".* FROM "meals" WHERE "meals"."user_id" = ? [["user_id", 5]]
 …

Slide 23

Slide 23 text

User.includes(:meals) .all
 .map(&:meals) User Load (0.2ms) SELECT "users".* FROM "users" Meal Load (0.4ms) SELECT "meals".* FROM "meals" WHERE "meals"."user_id" IN (2, 3, 4, 5, …)

Slide 24

Slide 24 text

O que diria um dev: Junior: faço o que eu sei fazer Não junior: eager load em tudo!

Slide 25

Slide 25 text

E o experiente?

Slide 26

Slide 26 text

Depende…

Slide 27

Slide 27 text

Porque?

Slide 28

Slide 28 text

E se houver cache das Meals???

Slide 29

Slide 29 text

Em que situação, view, estamos? Quem consome os dados?

Slide 30

Slide 30 text

Cada caso deve ser avaliado com suas particularidades

Slide 31

Slide 31 text

Não pode haver pré- conceito na computação

Slide 32

Slide 32 text

Tudo pode mudar com o contexto

Slide 33

Slide 33 text

Tudo é um tradeoff entre Tempo x Dinheiro x Necessidade

Slide 34

Slide 34 text

Sharp Knife

Slide 35

Slide 35 text

"Se eu tivesse apenas seis horas para derrubar uma árvore, passaria as primeiras quatro afiando meu machado"
 
 —Abraham Lincoln

Slide 36

Slide 36 text

Você realmente domina suas ferramentas?

Slide 37

Slide 37 text

Usa scripts?
 Automatiza?

Slide 38

Slide 38 text

Domina seu editor predileto? 
 mais um rant: Vi x Emacs x Sublime x XPTO

Slide 39

Slide 39 text

Conhece ou estuda as últimas tecnologias e ferramentas?

Slide 40

Slide 40 text

Domina git e o processo de deploy? ou seja, cuida da
 confecção até entrega?

Slide 41

Slide 41 text

Isso é responsabilidade sua
 
 e da sua equipe não vale repassar para chefe, cliente / outros

Slide 42

Slide 42 text

Carreira

Slide 43

Slide 43 text

Sua carreira é sua
 Não é da sua empresa
 Não é do seu chefe

Slide 44

Slide 44 text

Sua carreira vai ser conduzida por você Sem mimimi

Slide 45

Slide 45 text

Invista na sua habilidade técnica

Slide 46

Slide 46 text

Não tenha preconceito com outras linguagens

Slide 47

Slide 47 text

Na nossa área tudo pode ser muito relevante!

Slide 48

Slide 48 text

Meu exemplo:

Slide 49

Slide 49 text

PHP Amigos, comunidade, contatos Cursar Computação

Slide 50

Slide 50 text

Ubuntu Comunidade BR
 Ubuntu MG
 Amigos

Slide 51

Slide 51 text

Java Avenue Code Inglês bom

Slide 52

Slide 52 text

DevIsland
 (C#) Testes, Dojo
 ThoughtWorks Aprimorar minha técnica

Slide 53

Slide 53 text

Ruby Independência
 Trabalho remoto
 Oportunidades fora do BR

Slide 54

Slide 54 text

Python Meetups, amigos

Slide 55

Slide 55 text

RubyConf
 DevDay QCon
 FISL Amigos
 Contatos Trabalhos

Slide 56

Slide 56 text

Enfim… 
 saia da toca, corra atrás Ninguém vai fazer isso por você

Slide 57

Slide 57 text

Não tenha preconceitos

Slide 58

Slide 58 text

Nem com Javascript


Slide 59

Slide 59 text

Quem aqui gosta de Javascript?

Slide 60

Slide 60 text

mas…

Slide 61

Slide 61 text

Você nunca sabe quando pode conseguir aquela oportunidade foda só por que sabe NodeJS ou ES6

Slide 62

Slide 62 text

não se esqueça também

Slide 63

Slide 63 text

das “soft skills”

Slide 64

Slide 64 text

Você sabe se vender para o seu
 
 chefe
 cliente
 colega de trabalho?

Slide 65

Slide 65 text

Você é aquele cara foda tecnicamente mas que não cresce?

Slide 66

Slide 66 text

Enquanto seus colegas menos técnicos parecem estar numa posição melhor?

Slide 67

Slide 67 text

Você já se questionou se você sabe conversar bem, explicar para uma pessoa não técnica? 
 Se tem paciência se faz mais do que é pedido?

Slide 68

Slide 68 text

e não somente se seu código é o(log n) ao invés de o(n)

Slide 69

Slide 69 text

O cliente/chefe não quer só desempenho, mas principalmente se você entende ele.
 
 Se sabe resolver o problema dele.
 
 Se fala a língua dele.

Slide 70

Slide 70 text

Você está insatisfeito com sua carreira… mas não procura ativamente mudar isso?

Slide 71

Slide 71 text

Ou então procura… mas seu currículo é uma sopa de termos técnicos
 
 não explica bem suas habilidades reais e suas conquistas

Slide 72

Slide 72 text

É muito provável que alguém não técnico vá ler seu currículo e descartar assim que não entender nada.

Slide 73

Slide 73 text

Você tem referências ou testemunhos do seu trabalho numa página, portfólio, LinkedIn ou no próprio currículo?

Slide 74

Slide 74 text

A maioria das contratações se baseia muito mais em
 
 “conheço ele e sei que ele é bom”
 
 do que 
 
 “nossa, ele programa à 8 anos e sabe 4 linguagens e 6 frameworks"

Slide 75

Slide 75 text

Ou seja:
 
 Contatos e referências são imprescindíveis

Slide 76

Slide 76 text

Portanto…
 
 Você precisa sair da toca
 
 Aprender a conversar, perguntar, questionar, procurar, ao invés de esperar oportunidades surgirem

Slide 77

Slide 77 text

Se você não o fizer, alguma situação da sua vida irá te obrigar que você mude forçadamente

Slide 78

Slide 78 text

Exemplos
 
 ser demitido
 
 downsizing (acabou a grana)
 ser jogado para escanteio
 (projeto ruim)
 
 etc

Slide 79

Slide 79 text

The Pragmatic Programmer
 Andy Hunt 
 The Passionate Programmer (My Job Went to India)
 Chad Fowler
 
 Don’t Call Yourself A Programmer, And Other Career Advice
 Patrick Mackenzie Referências

Slide 80

Slide 80 text

Perguntas?

Slide 81

Slide 81 text

Obrigado!