Construindo uma Carreira em Software
Um guia completo para ter sucesso no mercado de software
Descrição do livro
A formação em engenharia de software tem um problema: universidades e cursos intensivos ensinam os aspirantes a engenheiros a escrever código, mas deixam a cargo dos próprios alunos conhecer as inúmeras ferramentas de apoio necessárias para prosperar nas verdadeiras empresas de software. Construindo uma Carreira em Software é a solução – um guia completo para as habilidades essenciais que os professores não precisam e os profissionais jamais pensam em ensinar: encontrar empregos, escolher equipes e projetos, fazer boas perguntas, conduzir reuniões, estar de plantão, depurar problemas de produção, escrever um texto técnico, tirar o máximo proveito de um mentor e muito mais.
Por mais de uma década desenvolvendo software em empresas como Apple e Uber, Daniel Heller foi mentor e gerenciou dezenas de engenheiros com vários tipos de formação, e esses engenheiros, com suas centenas de perguntas relacionadas à carreira e a problemas do cotidiano, o inspiraram a escrever este livro. Organizado para permitir tanto uma consulta aleatória como uma leitura do início ao fim, o livro apresenta abordagens concisas sobre praticamente todos os desafios que não são de caráter técnico, mas com os quais você vai deparar nos cinco primeiros anos de sua carreira, além de incluir um conjunto de tópicos técnicos, com vistas ao mercado, raramente abordados em treinamentos.
Independentemente de sua formação acadêmica ou de sua especialização técnica, Construindo uma Carreira em Software pode fazer você evitar anos de tentativas e erros, e ajudá-lo a ter sucesso como profissional de software no mundo real.
Ver menos ▲Sumário
- Sobre o autor
- Agradecimentos
- Introdução
- Carreira
- Visão geral
- Se você aprender somente uma lição
- O que é o emprego?
- O que significa crescer
- Dez princípios
- Relacionamento com o seu empregador
- Encontrando um emprego
- Processo de recrutamento
- Avaliações técnicas por telefone
- Entrevistas presenciais
- Exercício de programação para ser feito em casa
- Decisão
- Oferta e negociação
- Referências
- Currículos
- Ordem das seções
- Formatação
- Conte uma história
- Exemplo
- Passando nas entrevistas de engenharia
- O que eles procuram
- Como ter sucesso nas entrevistas técnicas
- Preparação
- No dia da entrevista
- Passando nas outras entrevistas
- Leituras complementares
- Recrutadores
- O que você precisa saber como um colega
- O que você precisa saber como um candidato
- Encaminhamento apropriado
- Fazendo perguntas
- Níveis, cargos e remuneração em empresas de tecnologia
- Nível e cargo
- Remuneração
- você deve considerar exercê-las logo)
- Compartilhe informações sobre salário o máximo possível
- Negociando
- Aprendendo e crescendo
- Leia diariamente: a prática do estudo
- Mentoria
- Tirando o máximo de proveito de seu mentor
- Síndrome do impostor é subestimado
- Tendo as próprias ideias para projetos
- Avaliações de desempenho
- Autoavaliações
- Pare de se preocupar com o cargo
- Mudanças
- Medo, confusão e autodepreciação: começando em novos empregos
- Integração na prática
- Quando mudar de emprego
- Como mudar de emprego: saindo com estilo
- Manutenção é para os perdedores: escolhendo equipes e projetos
- Transição para a gerência
- Capacidade de adaptação é tudo
- Burnout, recuperação e equilíbrio
- O modelo
- A luta é constante
- Protegendo um canto da sua vida
- Não dar demasiada importância
- Recuperando-se
- Minha experiência
- Dia a dia na empresa
- Habilidades profissionais
- Dia a dia na empresa
- Gerenciamento de projetos
- Motivação
- Básico: uma lista e um grafo
- Mantendo os stakeholders informados
- Mantendo os colaboradores próximos informados
- Cronogramas e estimativas
- Liderando um projeto
- A bela arte da cobrança
- Pagando por informações
- Reuniões eficazes
- O tempo todo: um responsável
- Antes: agenda
- Durante: pontualidade
- Durante: comece revendo a agenda
- Durante: foco em chegar às conclusões
- Durante: revisar a lista de ações
- Depois: notas da reunião
- Observação sobre a etiqueta em reuniões
- Produtividade e organização
- Calendário eficaz
- Acumulando conhecimento
- Criando scripts para tudo
- Vivendo na nuvem
- Simplesmente faça algo
- Mantenha um registro de trabalho
- Contratando engenheiros: entrevistas quando se está do outro lado da mesa
- Áreas de foco da entrevista
- Aspectos práticos das entrevistas
- Decisões
- Metodologias de software e os aspectos gerais de uma boa engenharia
- Desenvolvimento Ágil de Software
- Scrum
- Trabalhando com pessoas
- Habilidades sociais genéricas
- Reconhecendo o trabalho
- Uma palavrinha sobre charme e positividade
- Humildade versus autodepreciação
- Dando feedback
- Quando
- Princípios básicos para dar feedback
- Empatia: demonstre sua confiança
- Reconheça o que é bom
- Expresse o feedback como uma oportunidade
- Qualifique sua certeza
- Ofereça ajuda
- Dê seu feedback em particular
- Controle seu tom de voz
- Esqueça o feedback e ofereça apoio
- Amor exigente
- Recebendo feedback
- Trabalhando com o seu gerente
- Natureza do relacionamento
- Gerentes têm os próprios problemas: melhorando a cooperação
- Feedback para os níveis superiores
- Recorrendo ao nível acima de seu gerente
- Assuntos complicados
- Trabalhando com responsáveis por plataformas
- Requisição de funcionalidades
- Depuração e perguntas técnicas
- Relatórios de bug
- Destacando-se em uma empresa de engenharia
- Reputação e marca pessoal
- Disposição para ajudar
- Correndo em direção ao fogo
- Política e capital político
- Forma necessária
- Capital político
- Forma maligna
- dos acionistas… às vezes
- Não é seu trabalho dizer não
- Confiança pessoal
- Conhecendo nossos limites: a epistemologia da engenharia de software
- Liderando outras pessoas
- Visão e identidade
- Garantia de qualidade das equipes
- Gerenciamento de projetos
- Comunicação
- Atribuição de tarefas
- Harmonia
- Mentoria
- Seu propósito como mentor
- Um modelo para o seu orientando
- Ferramentas para se organizar
- Ferramentas para aproveitar ao máximo as reuniões de 1:1
- Ferramentas para explorar áreas mais específicas
- Juntando tudo
- Integração dos engenheiros
- Estagiários
- Adversidades
- Administrando suas emoções
- Sim, haverá problemas (não é possível corrigir tudo em seu primeiro dia)
- Resolução de conflitos e como lidar com pessoas difíceis
- Conversando em particular
- Plano D
- Lidando com o RH
- Cometendo erros
- Conduta Profissional
- Uma palavrinha sobre reclamações
- Uma palavrinha sobre fofocas
- Uma palavrinha sobre namoros na empresa
- Escolhendo as palavras com cuidado
- Beber com os colegas
- Comunicação
- Uma visão holística da comunicação na engenharia
- Comunicação
- Recepção
- Transmissão
- Relevância
- Contexto
- Clareza
- Eficiência
- Sensibilidade
- Escolhendo um meio de comunicação
- Chat/mensagens instantâneas
- Perguntas feitas pessoalmente (indo até a mesa de alguém)
- Reuniões agendadas
- SMS
- Telefonemas síncronos
- Escrita técnica
- Uma observação sobre a estrutura
- Revisão
- Remoção de palavras
- Simplificação de frases
- Fornecendo o contexto apropriado
- Ortografia, gramática, uso de letras maiúsculas e pontuação
- Email eficaz
- A arte de enviar e não enviar um email
- Estrutura
- Saudações
- Assinaturas
- Importância do TL;DR
- Resposta condizente com o assunto
- Listas de distribuição extensas
- Etiqueta, formalidade e educação
- Importância dos links
- “Remova-me desta lista”
- Arquétipos de email
- Anúncio técnico
- Pergunta técnica
- Risco operacional
- Atualização sobre o status do projeto
- Solicitando uma reunião
- Email de apresentação
- Estratégia para emails
- Mantenha sua caixa de entrada vazia
- Reduza a sua caixa de entrada
- Pastas (na maioria das vezes) não ajudam
- Emails e listas de tarefas
- Cadência para os emails: a eficácia e o custo das respostas rápidas
- Descrevendo problemas e fazendo perguntas
- Template mágico: pedindo ajuda para depuração
- Template mágico: pedindo ajuda para um problema de produção
- Template mágico: demais casos
- Falando em público
- Habilidades técnicas
- Código de nível profissional
- Domine as convenções da linguagem
- Nomenclatura
- Siga a base de código
- Comentários
- Mensagens de commit são subestimadas
- Testes
- Esperteza
- Duplicação versus reutilização
- Não verifique condições sem sentido
- Conservadorismo quanto a um open source
- Testes devem ser rápidos (nunca utilize sleep)
- Testes de unidade versus testes de integração
- Injeção de dependências
- Performance por último, ou uma lista de prioridades para o seu código
- Revisão de código
- Solicitando revisões de código
- Revisando um código
- Além do código
- Depuração
- Filosofia da depuração
- Simplesmente faça algo, ou “Depurar, no entanto, é difícil”
- Opções para depuração
- Fazendo experimentos
- Desenvolvendo com vistas à confiabilidade
- Pense no futuro
- Design com vistas a falhas
- Planeje-se para uma perda de dados
- Desenvolvendo com vistas à depuração (ou observabilidade é tudo)
- Desenvolvendo com vistas à intervenção do operador
- Desenvolvendo com vistas a um rollback
- Não ordene as dependências: espere
- Planeje-se para uma sobrecarga
- nosso maior problema)
- Dominando a linha de comando
- nosso maior problema)
- Shell
- Descoberta de informações e manipulação de texto
- Seção especial para a melhor ferramenta que existe
- Rede
- Sessões locais e remotas
- Execução de processos e estado do host
- Bancos de dados
- Miscelânea
- Operando um software real
- Respeite a produção
- Plantão
- Um exemplo básico
- Por que nos importamos
- Cinco princípios
- Simplesmente faça um rollback
- Resposta a incidentes
- Exemplo de um manual para resposta a incidentes
- Medo, empolgação e aprendizado
- Gestão de incidentes em detalhes
- Fator ônibus > 1
- Exemplo: um novo componente
- Exemplo: mudanças operacionais
- Testes devem funcionar sempre
- Carreira
- Índice remissivo
Sobre o autor
Daniel Heller é Staff Software Engineer na área de infraestrutura em uma empresa de software sediada em San Francisco. No passado, trabalhou com confiabilidade no Uber Eats, desenvolveu sistemas de monitoração na AppDynamics, ajudou a portar o iOS para a arquitetura ARM64 na Apple, esteve à frente de respostas a dezenas de situações de falhas… Ver perfil completo ▶
Livros relacionados
Recursos
Opinião dos leitores
Marcelo A
Excelente livro para trazer profissionalismo ao desenvolvimento de software. Excelentes as parte em que aborda a comunicação com a equipe e com as lideranças.






