Inicialmente devido a diversas recomendações de profissionais da área, sempre indicando e falando muito bem do conteúdo abordado. Outro ponto que me deixou muito curioso foi a questão de que este livro não é sobre uma linguagem X e como utilizar esta linguagem, itens que normalmente uma documentação online resolve muito bem (reconheço o valor de livros técnicos), mas o grande foco neste material é abordar uma forma de programar e de visualizar projetos/problemas como um todo, desde processos de identificação, análise, equipe, comunicação até o código e padrões de desenvolvimento, o que me parece um cinto de utilidades excelente. Como dito no prefácio: "This book is aimed at people who want to become more effective and more productive programmers.", resumidante virar um mestre da programação.
Estou lendo a versão em inglês, para pegar o conhecimento direto da fonte. Farei os resumos em português para que possa ajudar preferencialmente quem está iniciando. Eu gostaria de ter um conteúdo assim então vou criá-lo. O que colocarei aqui são lembretes, exercícios e minha compreensão de cada capítulo para que eu possa fixar o conhecimento. Se ajudar alguém legal 👍
Existem algumas dicas no livro que pretendo manter na tradução mais próxima do apresentado pelos autores, listarei elas no formato de citação:
Dica x: Hello World
- Descobridor / Adaptável: Possui um instinto para novas tecnologias e técnicas, busca sempre testar algo novo que descobre. Quando descobre algo novo consegue se adaptar rapidamente e mesclar ao resto do conhecimento que possui. Sua confiança é criada com experiência.
- Curioso: Faz perguntas com muita frequência. Isso é legal -- Como você fez isso? Você já teve problemas com essa biblioteca? O que é este BeOS que comentaram? Como links simbólicos são implementados? Você busca por pequenos fatos e conhecimentos que podem ser úteis futuramente.
- Pensador crítico: Raramente aceita as coisas sem entender os fatos e porquês. Quando um colega diz "porque é assim que deve ser feito", sem nenhuma explicação ou um vendedor promete a solução para todos os seus problemas, você identifica um desafio e tenta entender o porquê.
- Realista: Tenta entender toda a natureza dos problemas que enfrenta. Esse realismo lhe fornece um bom entendimento de quão difíceis as coisas são e quanto tempo podem demorar. Entender por você mesmo que um processo pode ser díficil e demorar para ser finalizado lhe dá a confiança e vontade de se manter no desafio. Você conhece seu "inimigo" e consegue imaginar o quanto precisa para vencê-lo.
- Jack of all trades (pau para toda obra): Se dedica ao máximo para entender diversas tecnologias e formas de trabalhar para se manter atualizado, nunca fica estagnado. Talvez o seu emprego atual exija que você foque em uma linguagem apenas, mas nada lhe impede de estudar e mudar de área ou encontrar novos desafios.
Dica 1: Preocupe-se com o que você faz
Dica 2: Pense! Sobre o trabalho que você executa
- Responsabilidade.
Seja uma pessoa responsável sobre tudo que você faz, certo ou errado. Devemos ser resposáveis em todos os aspectos, desenvolvimento de testes, boas práticas, código bem produzido, mas além disso assumirmos nossa ignorância em diversos assuntos, erros cometidos e dificuldades enfrentadas.
Evite dar desculpas. Caso tenha feito algo errado (todos erramos), admita honestamente e tente dar opções de solução. Tentar criar desculpas ou esconder o problema será pior para todo mundo.
A responsabilidade se extende em ações com terceiros e com você mesmo. Se seu HD parar de funcionar e você perder todo o código de seu sistema é responsabilidade sua. Por que você não tinha isso em repositórios online? Talvez um backup em outro HD? Esteja a frente de tudo que ocorrer.
Creio que além da programação essa pode ser uma dica para a vida. Seja responsável por suas ações, tudo que acontece no seu dia-a-dia é responsabilidade totalmente sua e de mais ninguém.
Dica 3: Ofereça soluções, não dê desculpas esfarrapadas.
- Como você se sente quando um mecânico, gerente de banco ou balconista vem até você com uma desculpa descarada? O que você pensa sobre ele e a empresa em que ele trabalha?
Observação Se viu algo errado, pode melhorar algum conceito ou deseja me mostrar outra forma de compreensão abre uma issue ou da um commit com a correção. Será muito bem vindo.