Nossas palestras na XIV Semana Tecnológica do IST-Rio

May 31st, 2010

Fala pessoal! Hoje venho pra falar um pouco sobre as palestras que participei na XIV Semana Tecnológica do IST-Rio, junto com o Higor Cesar e a Flavia Fortes, ambos integrantes da equipe do projeto Comperio junto comigo. Nessa semana de apresentação de projetos e mini-cursos, falamos de dois assuntos: Boas práticas de programação Orientada a objeto, em que basicamente enfatizamos a importância dos princípios OO SOLID e conceitos de refatoração;  e desenvolvimento de aplicações web orientadas por testes – Test Driven Development – TDD,  onde comentamos a importância de testes de software e apresentamos alguns códigos de exemplo.

O objetivo desse post também é  responder a comentários, dúvidas e curiosidades sobre as apresentações. Disponibilizarei aqui os slides das palestras e uma lista de livros legais e muito importantes para nossa formação no IST-Rio que estão presentes na biblioteca do nosso instituto. Abaixo as apresentações e logo em seguida uma lista de livros interessantes em nossa biblioteca:


- Programação Extrema (XP) Explicada: Acolha as Mudanças – Kent Beck


- Refatoração: Aperfeiçoando o Projeto de Código Existente – Martin Fowler


- Use a Cabeça! : Padrões de Projetos (Design Patterns) – Elisabeth Freeman


- Code Complete: Guia Prático Para A Construção De Software – Steve Mcconnell


- Uml Essencial – Martin Fowler


- Use a Cabeça! Análise e Projeto Orientado ao Objeto – Gary Pollice


- AJAX – Guia Prático para Windows – Wallace Soares


- Sistemas de Banco de Dados – Elmasri e Navathe


- Design Patterns: Elements of Reusable Object-Oriented Software – Erich Gamma, Richard Helm, Ralph Johnson e John M. Vlissides

obs.: Esses livros foram selecionados segundo minha experiência e indicações em comunidades de desenvolvimento de software na web. Priorizei nessa lista, livros sobre desenvolvimento e banco de dados.

Renan Cabral Evento

Você constrói software para agradar seu gerente ou seus clientes?

May 13th, 2010

Fala pessoal hoje venho aqui para compartilhar uma experiência nova que tive hoje: reunião com clientes numa empresa, a HardMed sobre as funcionalidades do InfoControl, sistema que atualmente estou trabalhando.

A sensação de ver o sistema que você ajuda a construir funcionando e agregando valor para um cliente é fantástica. É nessas horas que você percebe a responsabilidade de construir, testar e entregar software de qualidade. Um cliente disposto a usar o seu sistema, mesmo ele não estando 100%, com certeza te faz rever conceitos sobre entrega de software e, foi o que aconteceu hoje comigo.
Em muitas empresas o que se vê são desenvolvedores preocupados em cumprir prazos estipulados pelos seus gerentes e entregar o que lhe foi mandado logo de uma vez. Agradar o seu gerente com entregas rápidas, normalmente é o que desenvolvedor quer e assim os dois lados ficam felizes. Mas e o cliente? Você trabalha para agradar seu gerente ou os clientes? Deve ser por esses motivos em que alguns programadores escrevem código que simplesmente compila e outros que testam, refatoram, etc. O que vocês acham? Você desenvolve software para agradar seu gerente ou seu cliente?

Renan Cabral Off

Prometo que postarei mais !

May 12th, 2010

Fala pessoal faz um tempo que esse blog não tem um post novo…  Parece que não me acostumei muito com a idéia de escrever aqui né?
Mas prometo que logo terão coisas legais para postar aqui. Uma dessas coisas serão as postagens sobre as palestras que vamos apresentar na  XIV Semana Tecnológia e Cultural do IST-Rio, que acontecerá a partir do dia 24/05 até 28/05
( veja aqui a programação ),  são elas:

Desenvolvimento de aplicações web orientadas por testes – Test Driven Development (TDD)

Objetivo:

Abordar como o desenvolvimento de sistemas guiado por testes culminam em menos tempo dedicado à manutenção,documentação executável, notificação de erros em tempo de desenvolvimento e torna a refatoração de código mais segura de realizar.

Boas práticas de programação orientada a objetos

Objetivo:

Abordar boas práticas de desenvolvimento de sistemas seguindo padrões e princípios OO,
além de enfatizar a importância da construção de uma arquitetura de software sustentável.

Aproveitando esses conteúdos, também farei uns posts relacionados à nossa experiência nos mesmos.

Renan Cabral Off

A programação e seus quatro estágios de aprendizado

December 26th, 2009

Lendo uns dos capítulos do livro “O monge  e o executivo – Uma história sobre a essência da liderança“, encontrei algo muito interessante sobre aprendizado e disciplina. No capítulo 6 o autor define o processo de aprendizado em quatro estágios, os quais descrevo abaixo:

O aprendiz:

1) Estágio: Inconsciente e sem habilidade
2) Estágio: Consciente e sem habilidade
3) Estágio: Consciente e habilidoso
4) Estágio: Inconsciente e habilidoso

A partir disso, me arrisquei a fazer uma relação desses estágios de aprendizado com os níveis de conhecimento em que se enquadram os profissionais de desenvolvimento de software, que são: Estagiário, Júnior, Pleno e Sênior. Sendo assim, agora relaciono e digo o porque da classificação abaixo:

1) Estágio: Inconsciente e sem habilidade – Estagiário

É quando estamos apenas iniciando o processo de aprendizado na informática, em um curso profissionalizante ou
bem no início da graduação. Nessa etapa o fator mais importante para o aprendiz engressar na carreira, é a reflexão sobre sua vocação tentando exergar as suas possibilidades de sucesso, já que este aprendiz é totalmente inconsciente do que é desenvolvimento de sotftware e ainda por cima não tem habilidade alguma para programar. Em suma o seu futuro na programação se resume a conhecer uma nova experiência, sem saber muito onde vai chegar.

2) Estágio: Consciente e sem habilidade – Junior

Esta é a etapa em que o aprendiz já tem alguma noção do que é desenvolver software, mas sua habilidade em exercer tal profissão não é a ideal. Nessa etapa eu considero a crucial, pelo fato em que as falhas são inevitáveis dentro de
uma profissão que na maioria das vezes exercemos sob pressão. Nesta etapa o aprendiz deve ser forte para não se abater com as falhas frequentes(que é algo natural), estudando mais e seguindo em frente. Em suma o aprendiz sabe que tem que ser feito mas não tem muita idéia de como fazer; a força de vontade nesse estágio é indispensável.

3) Estágio: Consciente e habilidoso – Pleno

Esta é a etapa que nós sabemos o que tem que ser feito para atingir o sucesso e sabemos como. Na minha opinião o fator mais relevante nesta e etapa é a disciplina. É traçar as metas com firmeza e partir pra cima delas com garra e
determinação. Mas ainda falta algo para se tornar um sênior… Em suma, por mais que o profissional seja consciente e
habilidoso no que faz, ele ainda não atingiu o “estado da arte”, que explico o que é na última etapa.

4) Estágio: Inconsciente e habilidoso  – Sênior

Nessa etapa o desenvolvedor de software é e tem todas as características de um pleno mas com uma diferença:
esse profissional se “livra” da “obrigação” de desenvolver software e fazer disso totalmente um hobbie, que por acaso lhe faz ganhar dinheiro. Nessa etapa o desenvolvedor sabe(ou deveria saber) todos os conceitos base pra desenvolver um software de qualidade na sua plataforma(.net, java, etc). E por se “livrar” da “obrigação” de desenvolver software, se inspira mais rapidamente em seus trabalhos e resolve problemas com maestria. Em suma, programação para esses profissionais é como acordar todo o dia de manhã e ir ao banheiro de olhos fechados. Programar não tem hora nem lugar… o dever dar lugar ao entusiasmo…

Renan Cabral Conceito

“A cabeça de Steve Jobs” – Recomendo!!

November 8th, 2009

Recomendo este livro para profissionais de TI por falar do feito de umas das empresas mais revolucionárias da história da informática. O livro conta como surgiu a Apple(na garagem da casa de Steve Jobs com seus amigos da Universidade de Havard, entre eles o gênio do hardware Steve Wozniak) e a construção o primeiro computador pessoal acessível para a sociedade(o Apple II) e como a empresa se coloca no mercado hoje em dia, depois do fenômeno iPod, iPhone e dos MacBooks.

Nesta biografia aponta também a importância da maneira “Steve” de comandar a Apple(que já esteve a beira da falência depois da saída de Jobs no início dos anos 90), falando das jogadas de marketing da empresa, sobre a como os traços da personalidade de Steve estão presente nos processos de produção da empresa(o elitismo, perfeccionismo, etc ), sobre a contratação dos profissionais mais talentosos do planeta como alta prioridade e por aí vai. Realmente um livro muito bom que fala de maneira interessante como os computadores pessoais mudaram o mundo desde seu aparecimento na década de 70 até os dias de hoje. Esse livro também acrescenta aos leitores umas lições de empreendedorismo muito legais. Boa leitura! Postem aqui a opinão de vocês sobre o livro hein!

cabeca-de-steve-jobs

Renan Cabral Uncategorized

Refatorar ou desenvolver?

October 14th, 2009

Olá pessoal! Hoje falarei sobre um assunto legal para quem está aprendendo a refatorar. Esse assunto é a noção de quando estamos desenvolvendo código e quando estamos refatorando. De fato, o que no meio de um desses processos, acabamos trocando as “cartolas” sem perceber, isso acontece muito quando te vem uma idéia legal na mente e por impulso e/ou medo de esquecê-la, aplicamos essa idéia sem planejamento e análise necessária do código. Digo isso porque já escrevi muito código sem pensar 100% e isso, claro, trás sérios problemas.

Um dos “problemas” que podem acontecer quando aprendemos a distinguir código ruim do bom, enfim refatorar, ficamos (pelo menos eu ficava e ainda fico) um tanto paranóicos com nosso código, ao ponto de desejar que a solução de um problema saia de nossas mentes e se transformem em código perfeito, refatorado. Sabemos que isso é muito difícil (praticamente impossível), porque nem sempre nosso raciocínio está totalmente claro e organizado. E eu, paranóico, me prejudicava a ponto de não escrever uma linha de código se quer, sempre achando que ia escrever código ruim e procurando o melhor, ao qual não encontrava com facilidade. Até que um dia, depois de perder um bom tempo na escrita de um código, me lembrei do título do livro de refatoração de Martin Fowler: “Refatoração: Aperfeiçoando o projeto de código existente

Daí pensei, me achei um idiota e conclui que realmente o processo de desenvolvimento de qualquer coisa é incremental. Sendo assim, sempre temos que ter em mente que algo que existe pode ser aprimorado (no nosso caso, a missão de desenvolver software sempre melhorando um código que está ruim). A partir disso, me fiz as seguintes perguntas: “Como vou aprimorar um código que sem quer existe? Como vou aprimorar algo que é tão abstrato, como um raciocínio?”

Então pessoal aqui fica a dica: escrevam o que estão pensando primariamente, de preferência com um comentário que delineie parte do código a ser escrito. Provavelmente o código escrito de primeira não será dos melhores, com certeza ele terá duplicação, Ifs desnecessários, etc que são coisas que nem todas as pessoas conseguem identificar assim logo de cara. Contanto que você mesmo entenda seu código, não se perca nele e tenha noção da obrigação de modificá-lo depois, não se preocupe com isso. No início, não deixe que a obrigação de escrever bom código sufoque sua forma de pensar. Saiba quando é hora de desenvolver e quando refatorar código e raciocínio. Raramente o conhecimento é atingido de primeira (no nosso caso, código escrito). “A imaginação é mais importante que o conhecimento”, dizia Albert Einstein. Esse ensinamento serve para qualquer atividade do nosso dia-a-dia, como por exemplo, escrevo este post sem muita preocupação em escrever um português totalmente correto mas sem que tive a obrigação de revisá-lo para publica-lo aqui. Faça o simples e deixe a complexidade pra depois, logo você percebe que a complexidade não era tão complexa quanto parecia.

Renan Cabral Conceito

Apresentação do Comperio no Seminário de Iniciação Científica do IST-Rio

July 13th, 2009

Nesta quarta feira passada (08/07/2009) houve no Instituto superior de Tecnologia o  Seminário de Iniciação Científica onde vários projetos seriam apresentados, e como podemos presumir, a equipe do Comperio foi escalada para fazermos uma apresentação… (a segunda em menos de uma semana! rsrs). Eram duas apresentações na verdade: uma à noite e outra de manhã. Logo nem todos os componentes da equipe estavam com tempo disponível para fazer tais apresentações. No entanto, pra mim não tinha problema em tentar vir nas duas apresentações (já que tenho um horário flexível no trabalho). Ok, tudo certo. Eu e mais uma componente do grupo marcamos pra fazer a apresentação de manhã… Divimos nosso slides, dediquei um bom tempo para me preparar pessoal e tecnicamente (já que na última apresentação que fizemos, travei!! Simplesmente deu branco!!) e tentei ter uma noite de sono mais tranqüila possível.

No dia seguinte lá estava eu, ansioso claro mas tentando ficar o mais tranqüilo possível, e fiquei. O horário da apresentação estava chegando, ao contrário do outro componente do grupo. O que aconteceu? Tive que apresentar o projeto sozinho. O.O. Nossa, eram uns 12 slides… E eu nem tinha visto e estudado todos eles. E agora? Simplesmente, respirei fundo e falei. Nada mal! Falei razoavelmente bem. Fiquei tranqüilo… Acho o que me sustentou mais foi toda experiência que tive na Faetec (que não é pouca). Temer? De quê? Eu estava praticamente em casa! Rsrsrs

Foi uma experiência muito boa. Aquela sensação de um peso enorme saindo de minhas costas meu deu um pouco mais de coragem! Mas quero deixar claro que eu preciso melhorar muuuito ainda rsrsr. Então é isso pessoal, coragem, calma e contem com seus imprevistos! Até a próxima!

Renan Cabral Evento

Apresentação do Comperio no FOCO

July 4th, 2009

Fala pessoal! Como foi anunciado no post anterior, nós do projeto Comperio fomos convidados a apresentar nossa proposta  no Fórum de Formação Continuada da Faetec, no Palácio Gustavo Capanema aqui no centro do Rio. Foi nossa primeira experiência em um evento fora do IST-Rio, e como toda primeira vez, ficamos agitados e nervosos mas mesmo assim nossa missão de divulgar bem nossas idéias entre os profissionais de educação que lá nos assistiam foi cumprida de maneira razoável, levando em consideração que não conheciamos bem o nosso auditório e muito menos o lugar onde faríamos a apresentação…rsrs. Fiquei feliz ao final da apresentação quando alguns educadores nos abordaram e nos elogiaram, gostando da idéia mesmo sem ver um protótipo funcionando. Apesar de que alguns outros saíram pela porta lateral apressados para seu horário de almoço sem nada a perguntar ou sugerir… Mas entendemos e aceitamos esse tipo de atitude, já que afinal de contas não mostramos nossa solução computacional na prática. Ambas as situações com certeza nos incentiva a estudar e nos aplicarmos cada vez mais.

Nessa apresentação fizemos uma versão menos técnica e mais voltada para educação, sendo assim então tivemos uma experiência onde deixamos de lado nossos conhecimentos sobre códigos e tecnologias web para simplesmente falarmos fluentemente. É nesse ponto onde queria compartilhar uma experiência não muito agradável que tive nessa apresentação e que com certeza acontece com todos: “Deu Branco!”… Como assim? Se conteúdo foi trabalhado diária e cuidadosamente? É isso mesmo pessoal… As vezes isso acontece sem muita explicação. Presumo que esse tipo de dificuldade ainda seja inerente à maioria dos profissionais de informática. Mas qual seria a solução? Como falar fluentemente diante de um auditório desconhecido? Simplesmente, treine! Treine no seu dia-a-dia com seus amigos, familiares ou com qualquer tipo de pessoal; seja na faculdade (de preferência na aula, encha o seu professor de perguntas de maneira que as mesmas sejam ouvidas por toda a turma…), na rua onde mora, no trabalho, onde quer que seja tente falar de maneira que as pessoas que estão te ouvindo consigam enxergar o que está se passando dentro da sua mente através do que você fala; falar em tons diferentes também pode lhe ajudar nessa tarefa. Enfim o grande lance é nunca ter vergonha de mostrar o que você pensa e também imagem que você está passando aos outros em volta sendo por motivo de algo que gosta. Com certeza você se sentirá muito mais leve depois de seguir essas dicas, que por sinal, as vezes esqueço de segui-las mas que comigo muitas vezes deram certo. Depois de começar a vencer essa dificuldade de falar em público, muito provavelmente você ficará mais feliz e verá que desafios, por maior que sejam, podem ser vencidos… e depois disso meus caros, é como se um caminhão tanque saísse de cima de suas costas. Para o pessoal que se interessar mais, sugiro que leiam sobre o Dale Carnegie autor do livro “Como falar em público e influenciar pessoas no mundo dos negócios”( 43° edição).  Então é isso pessoal! Até a próxima!

Renan Cabral Evento

Apresentação FOCO

June 28th, 2009

Prezados, está aqui o motivo de tanto atraso no desenvolvimento.. Fomos convidados para participar do forum de formação continuada da FAETEC. Todos já estão convidados a participar, segue abaixo as informações:

Local: Palácio gustavo capanema, salão Gilberto freire

Endereço: Av Graça Aranha sem número-Centro-Rio de Janeiro

Horário: Quinta-Feira dia 2 de julho as 12horas

Informações: desup@faetec.rj.gov.br

Higor Evento

Desenvolvimento #semana4

June 28th, 2009

Fala Galera,  o desenvolvimento nesta semana foi fraco. Tivemos que preparar uma apresentação(ppt) e estudamos para provas. No meio de tudo isso deu para salvar pouco.. O principal foi a preocupação com os princípios OO, os principais foram:

Composição sobre herança

Princípio de liskov

É isso galera.. até mais

Higor Andamento