A Arte de Programar

39
{ A Arte de Programar } /** * @author: Pablo Cabrera <[email protected] > */

description

A disciplina de programação de computadores, apesar de jovem se comparada com as demais disciplinas, têm se tornado de grande importância com o passar dos anos. No entanto, mesmo com os avanços tecnológicos dos computadores, como previsto na lei de Moore, programação destes computadores ainda é uma habilidade difícil de se aprender e praticar. Desde sua concepção até a atualidade, mesmo com inúmeras tentativas tornar programação de computadores em uma atividade de mais fácil entendimento e maior acesso (seja com linguages de programação mais naturais ou com processos de desenvolvimento de software por exemplo), ainda percebe-se que é uma habilidade que poucos a dominam com propriedade, e ainda assim ela é cada vez mais necessária com o passar dos anos. Tendo em vista a crescente necessidade de pessoas com tais habilidades, as oportunidades de mercado são bastante amplas para estes profissionais. Ainda num cenário em que se observa o crescimento nos cursos de capacitação tecnológicos na área de computação, para se sobressair neste emergente mercado, seja em qualquer área de atuação em T.I., é impressindível o domínio da disciplina de programação de computadores. A arte de programar ainda é jovem e tem muito a evoluir. No atual momento, o que podemos fazer para participar dessa evolução, seja como profissionais ou mesmo como entusiastas? Como podemos nos tornar melhores programadores e assim, aprimorar ainda mais a arte em si?

Transcript of A Arte de Programar

Page 1: A Arte de Programar

{ A Arte de Programar}

/** * @author: Pablo Cabrera <[email protected]> */

Page 2: A Arte de Programar

// Programação como Arte

{ Donald Knuth The Art of Computer Programming}

Page 3: A Arte de Programar

// Programação como Arte

{ Do latim ars ou artis quer dizer “habilidade” Do grego τεχνη radical para “técnica” e “tecnologia”}

Page 4: A Arte de Programar

// Programação como Arte

{ Necessita Disciplina, Técnica e Estilo

Produz objetos Complexos, Elegantes e de Valor }

Page 5: A Arte de Programar

{

}

// Computação ubíqua

Page 6: A Arte de Programar
Page 7: A Arte de Programar

{ Vários sistemas falhos e/ou inoperantes

}

// FIXME: Y2K Bug

Page 8: A Arte de Programar

{ Falha por conversão de sistema métrico para imperial

}

// FIXME: Mars Climate Orbiter

Page 9: A Arte de Programar

{ Prejuízo de U$ 440 milhões por conta de um teste que foi para produção

}

// FIXME: Knight Capital

Page 10: A Arte de Programar

{ Parou em alto mar por conta de uma divisão por zero

}

// FIXME: USS Yorktown

Page 11: A Arte de Programar

{ Aplicava dose 100x de radiação devido a uma condição de corrida

}

// FIXME: Therac-25

Page 12: A Arte de Programar

// Crise de Software

{ Edsger Dijkstra The Humble Programmer}

Page 13: A Arte de Programar

// Crise de Software

{

Projetos estourando o orçamento;

Projetos estourando o prazo;

Software de baixa qualidade;

Software não atingiam os requisitos;

Projetos ingerenciáveis;

Código difícil de manter;

}

Page 14: A Arte de Programar

// Inúmeras Metodologias

{

}

Page 15: A Arte de Programar

// Certificações de Qualidade

{

}

Page 16: A Arte de Programar

// Fábrica de Software

{

Linha de Montagem de Software;

Utilização de Frameworks e Processos;

Elimina codificação da camada de aplicação;

}

Page 17: A Arte de Programar

// Disciplina desvalorizada

{

Programação é um mal necessário;

Mão de obra não especializada;

Atividade pouco nobre/segunda classe;

}

Page 18: A Arte de Programar

// Cargos glorificados

{

Consultor, Analista, Arquiteto, Engenheiro…

… Implementador, de Produto, de Software,

de Sistemas, de Processo, Projetista etc

}

Page 19: A Arte de Programar

// Aprendizado banalizado

{

“Teach yourself PHP in 24 hours”

“Teach yourself JavaScript in 21 days”

“Perl for Dummies”

“C Programming in easy steps”

}

Page 20: A Arte de Programar

// Programação é Difícil

{ Peter Norvig Teach Yourself Programming in Ten Years}

Page 21: A Arte de Programar

// Programação é Difícil

{ 10 anos para dominar uma habilidade; 10.000 horas de prática; Exemplos: Mozart praticou durante 13 anos The Beatles tocaram por 10 anos}

Page 22: A Arte de Programar

// Programação é o Principal

{ Steve McConnell Code Complete}

Page 23: A Arte de Programar

// Programação é o Principal

{ Leva de 30% a 80% no projeto; Atividade central; Impacto de produtividade; Código é a melhor descrição formal; Atividade indispensável;}

Page 24: A Arte de Programar

Programming, MotherfuckerDo you speak it?

Our ValuesThey Claim to Value They Really Value We Fucking Do

Individuals and interactions Tons of billable hours Programming,

Motherfucker

Working software Tons of pointless tests Programming, Motherfucker

Customer collaboration Bleeding clients dry Programming,

Motherfucker

Responding to change

Instability and plausible deniability

Programming, Motherfucker

We think the shit on the left, is really just the con in the middle, and that we really need to just do the thing on the right… Programming,

Motherfucker.

Page 25: A Arte de Programar

// Cenário

{ Cada vez mais sistemas; Demanda crescente de profissionais; Escassez de talentos; Profissão do futuro; }

Page 26: A Arte de Programar

// Hello World!

{ Instituição de Ensino; Mentores iniciais; Conhecimento abrangente; Direcionamento inicial; Reconhecimento básico;}

Page 27: A Arte de Programar

// Cursos e Eventos

{ Disciplinas específicas; Baixo custo de aprendizado; Conhecer outros programadores; Marketing pessoal; Fomentar a área;}

Page 28: A Arte de Programar

// Já sei programar...

{ Conceitos são imprescindíveis; Tecnologia é com o que trabalhamos; Disciplinas relacionadas;}

Page 29: A Arte de Programar

// Conceitos

{ Conceitos são perenes; Base das tecnologias; Compartilhados entre arquiteturas e sistemas;}

Page 30: A Arte de Programar

// Tecnologia

{ Ferramentas disponíveis; Aplicações específicas; Diferentes domínios; }

Page 31: A Arte de Programar

// Trabalho em Equipe

{ Aprenda com a experiência; Ensine os mais novos; Discuta alternativas; Peça e dê feedback; Lidere e inspire;}

Page 32: A Arte de Programar

// Projetos distintos

{ Diversifique seus conhecimentos; Diferentes times; Torne-se auto-suficiente;}

Page 33: A Arte de Programar

// Learn by Doing

{ Prática leva a perfeição; Enfrente desafios; Adquira experiência;}

Page 34: A Arte de Programar

// Datilografia

{ Somos digitadores; Interface que usamos; Fácil de aprender;}

Page 35: A Arte de Programar

// Code Heroes

{ Inspire-se neles; Reconheça seu trabalho; Busque ser melhor;}

Page 36: A Arte de Programar

// Programadores influentes

{

}

Page 37: A Arte de Programar

// Orgulho de ser Programador

{ The Humble Programmer}

Page 38: A Arte de Programar

// Evoluir é com a gente

{

}

Page 39: A Arte de Programar

// Então?! Então?!

{

}