Envie um E-mail para o autor
You can use this page to email Márcio Torres about Programador Profissional.
Sobre o Livro
Programador Profissional
Técnicas e Práticas de Programação
Se eu fosse resumir o objetivo deste livro em uma linha ela seria
`` Como construir software de qualidade dando atenção especial ao código-fonte. ``
Aprendizes e iniciantes na área da programação, ou desenvolvimento de software, como preferir, podem usar este livro como referência para o exercício da profissão.
Nesta obra há uma compilação de conhecimentos e habilidades necessárias para te ajudar a fazer boas decisões quando estás programando. O livro todo é sobre programar melhor.
Contudo, é importante dizer que de jeito nenhum se pretende esgotar o tema. Grande parte das ideias presentes aqui não vieram totalmente da minha cabeça. Ao contrário, as ideias são baseadas em grandes obras, as referências na área, escritas por excelentes profissionais, como Martin Fowler, Kent Beck, Joshua Bloch, entre outros.
Abordagem
Tenha em mente que este livro foi escrito a partir de notas de aula usadas no ensino de tópicos avançados de programação, tais como: técnicas, princípios e padrões de projeto de softwares, práticas específicas, etc. Esta origem deu ao livro as seguintes características:
- Dedicado ao ensino: foi projetado para ser didático, "digerível", simples -- mesmo que explique conceitos complexos;
- Focado na prática: foi pensando para o exercício do ofício, para trabalhar mesmo, e por isso é povoado de estudos de caso, exemplos e muitos códigos;
- No nosso idioma e cultura: não foi escrito para ser uma obra erudita e sim para ser simples de ler, acessível às pessoas que falam e/ou entendem português -- com um leve sotaque gaúcho;
Códigos dos exemplos
A maior parte dos códigos está disponível na linguagem de programação Java. Ela é a linguagem mais usada na grande maioria dos livros de técnicas, práticas e padrões, isto é, sempre que a linguagem não é o foco do livro. Java também é bastante usada pelas faculdades e escolas técnicas, dado o suporte avançado aos conceitos de programação orientada a objetos e alinhamento com linguagens de modelagem visual, como a UML.
De fato, 97.312% do conteúdo deste livro é implementável em qualquer linguagem de programação, com poucos ajustes. O foco nunca é a linguagem, senão as técnicas! Para complementar, sempre que cabível, existem códigos de exemplo em outras linguagens como: C, PHP, Ruby, etc.
Organização dos capítulos
O livro está organizado tanto para cobrir a escrita de códigos novos como também a reescrita (refatoração) de códigos existentes. Portanto, resulta nos seguintes capítulos:
- Capítulo 000 – O Programador Profissional: oferece uma introdução ao tema central deste livro: códigos.
- Capítulo 001 – Boas Práticas de Codificação: apresenta as melhores práticas usadas pelos profissionais para escrever códigos de alta qualidade técnica.
- Capítulo 010 - Técnicas Avançadas de Codificação: mostra as técnicas aplicadas por programadores experientes para escrever códigos sofisticados e elegantes.
- Capítulo 011 - Melhorando Códigos Existentes: apresenta técnicas e práticas usadas para melhorar uma lógica e códigos que já existem (o famoso código legado).
- Capítulo 100 - Cenas dos Próximos Capítulos: faz uma análise do que foi visto e traz um resumo do que ficou para próximas publicações.
Para quem é este livro
Este é um livro destinado à Educação Profissional. Foi testado em sala de aula e usado nas disciplinas de Aspectos Avançados de Programação, Arquitetura e Projeto de Software e Tópicos Avançados, nos cursos de Análise e Desenvolvimento de Sistemas e Técnico em Informática para Internet, ambos do Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul (IFRS).
É uma obra útil para estudantes que já passaram pelas disciplinas iniciais de seus cursos (como Lógica ou Introdução à Programação e Programação Orientada a Objetos) e que pretendem escrever códigos profissionalmente, para ingressar e obter êxito no mundo de trabalho.
Também pode atender programadores formados e mesmo aqueles que nunca fizeram um curso, mas que já trabalham na área e buscam um material técnico especializado que vá além do básico, com uma abordagem direta e aplicação prática.
Líderes Técnicos ou Gerentes de Projeto podem usar este livro para treinar suas equipes. Programadores experientes podem achar os tópicos muito básicos, afinal já passaram pelas armadilhas e intempéries que motivam estas práticas, isto é, já são profissionais. Talvez, ainda possam encontrar algumas coisinhas interessantes.
Academicamente, este livro é adequado ao ensino em cursos voltados para a Educação Profissional, Técnica e Tecnológica, tais como: Técnico em Informática, Técnico em Informática para Internet, Tecnologia em Análise e Desenvolvimento de Sistemas, Tecnologia em Sistemas para Internet, além de cursos de formação inicial e continuada na área de desenvolvimento de sistemas.
Para quem não é este livro
Não cobre construções básicas de programas. O livro não tem o objetivo de ensinar a programar do zero. Ao contrário, é um livro para ensinar a programar melhor. Se não sabes programar, se não passaste por uma disciplina introdutória à programação, é bem provável que não seja muito útil.
Não é sobre algoritmos e estruturas de dados. Embora algumas técnicas sejam relacionadas à performance, o livro não aborda técnicas de escrita de algoritmos para obter eficiência computacional.
Não é teórico. Não espere deste livro uma abordagem teórica. Ele foi escrito por um praticante para praticantes.
Sobre o Autor
Atualmente sou Professor no IFRS, atuo no curso Técnico em Informática para Internet e no curso superior em Tecnologia em Analise e Desenvolvimento de Sistemas.
Meus alunos perguntam: "professor, tu trabalha ou só dá aula?"
É a vida de quem ensina, ter que ouvir isso ?♂️. Enfim, **trabalho** em sala de aula, sou um educador, e ainda participo de projetos internos e dou uns _pitacos_ em sistemas alheios (atividade conhecida como consultoria :).
Anterior a isto, tenho uma história longa. Eu passei por vários marcos na linha do tempo da evolução da computação (é, eu sou velho). Para me conheceres melhor vou contar um pouco dessa história a seguir:
Eu nasci a dez mil anos atrás. Comecei programando na linguagem Basic, num CP500 da prológica. Não havia Internet naquela época. Se aprendia lendo revistas técnicas, transcrevendo códigos e fazendo experiências de tentativa-e-erro. Mais tarde comecei a desenvolver em dBase e depois Clipper, ambos sobre a plataforma MS-DOS. Joguei Prince of Persia, Wolfenstein e o primeiro DOOM - tinha que usar o DOS/4GW para liberar a memória estendida (mais que os 640KB usuais). Já montei meu próprio computador -- quando ainda tinha que selecionar IRQ através de jumpers ou switches. Vivenciei a ascensão da interface gráfica - que bom, pois não aguentava mais ver caracteres em fósforo verde. Instalei o Windows 95 - trocando malditos 13 disquetes um-a-um. Meu computador tinha um Kit Multimídia da Creative - e uma placa de vídeo Voodoo. Migrei meus sistemas de Clipper para Visual Basic e mais tarde Delphi. Usei a Internet quando só existia HTML e "meia dúzia" de tags - sem CSS ou JavaScript. Acompanhei a ascensão da Internet e da Web. Presenciei o início do Linux, sua evolução e sua importância para a consolidação dos sistemas online - junto com Perl, Apache, MySQL, PHP e outras várias tecnologias e ferramentas pioneiras. Já instalei o Conectiva Linux e então conheci o que é uma linha de comando de verdade. Comecei a programar em Java a partir da versão 1.3 e Java Enteprise (EE) a partir do 1.4. Ainda lembro como sofri para entender o que era Orientação a Objetos - velhos hábitos procedurais são difíceis de perder. Acompanhei a Googlificação e o crescimento do comércio eletrônico - e também o estouro da bolha da Internet.
Não tenho dúvidas que sou um programador que ensina ao mesmo tempo que um professor que programa.