Por exemplo, como iniciante, encontro muita inspiração e direção ao ler este post de Bryan Woods .
Por exemplo, como iniciante, encontro muita inspiração e direção ao ler este post de Bryan Woods .
Respostas:
Estou surpreso que ninguém tenha mencionado The Pragmatic Programmer . É uma leitura obrigatória se você estiver interessado em seu ofício.
Luvas
Este post do Daily WTF me manteve no caminho certo. Admito que várias vezes comecei a desenvolver algo em que um par de "luvas" era a solução apropriada.
Leia o discurso de Alex Stepanov na Adobe. Ao final de 5 anos, isso separará os GRANDES dos BONS.
Eu sempre achei que Coding Horror e Joel no Software eram inspiradores em certas postagens do blog. Eles também sempre me fizeram sentir bem, porque eu entendi o que eles estavam falando e me fez pensar em mim como programador.
Não acredito que ninguém tenha mencionado isso ainda.
Os escritos de Paul Graham , particularmente:
E um monte de pessoas cujos passos seguir e sobre os ombros (em nenhuma ordem específica e listados como eles vêm à minha mente agora em fluxo livre): Alan Kay , Richard Stallman , Ken Thompson , Dennis Ritchie , Brian Kernighan , Theo de Raadt , Linus Torvalds , Eric S. Raymond , Rob Pike , Bill Gates , Steve Jobs , John MacCarthy , John Conway , Martin Odersky , James Gosling , Guy Steele e Donald Knuth ,Edsger Dijkstra , John Carmack , Peter Molyneux ... Ou suas próprias palavras e obras foram inspiradoras ou suas histórias contadas por outros. Desde que você lembre-se de que suas habilidades e genialidade em algumas áreas não os impedem de ficar cegos por suas próprias crenças em outras. Como qualquer outra pessoa. (Os dois livros listados acima já os cobrirão razoavelmente bem, para a maioria deles!)
Ou tecnólogos menos famosos, mas ativos, interessantes de seguir de longe: Neal Gafter, Martin Fowler , Don Syme , etc.
Fui inspirado pelos trabalhos dessas pessoas e pelas coisas que eles fizeram para alcançar (ou abandonar) seus projetos.
Lendo o 2600 quando criança, quando meu inglês era embyonic, a história de phreakers como Captain Crunch ou o nascimento da era do PC com Wozniak na Apple e a leitura de livros e ensaios de William Gibson e Neil Stephenson também me inspiraram como programador. , embora não tenha relação com a programação diretamente. Nesse sentido, até o Manifesto do Hacker , o Agile Manigesto ou mesmo coisas como o Código de Ética do IEEE foram e ainda são inspiradoras.
The Last Lecture um livro escrito por Randy Pausch, o homem por trás de Alice. Ele acompanha sua última palestra "Realmente Realizando Seus Sonhos de Infância". Sempre tenho que lembrar de ser um tigre.
O livro Os elementos do estilo de programação de Kernighan e Plauger foi muito influente para mim quando eu estava aprendendo C. O livro já era considerado "obsoleto" no momento em que o li, devido ao uso de amostras PL / I e Fortran, mas as dicas transcenderam os dois idiomas.
Antes de ler esse livro, eu estava convencido de que "estilo" era sobre o que agora considero questões triviais, como formatação (quantos espaços para uma guia? Onde você coloca as curvas?). Mas estilo é o que você possui depois de remover as convenções de formatação e nomeação. É mais fácil construir uma string para trás e depois revertê-la? Em seguida, construa-o para trás e inverta-o.
Outro livro de Kernighan e Plauger, Software Tools , também foi útil, mas não tão bom. E o livro muito mais novo, The Practice of Programming , de Kernighan e Pike, também é útil, mas está muito longe de The Elements of Programming Style . Eu gostaria de ainda ter minha cópia. Vale a pena para todo programador ler.
Apreciei os testes e o controle de qualidade depois de ler a arte de Glenford Myers The Art of Software Testing . Mostrou-me que testar era uma atividade criativa real, e não apenas algo para os graduados em ciência da computação que não gostam de programar. Talvez com a crescente popularidade do Desenvolvimento Orientado a Testes, mais pessoas se voltem para o livro de Myers.
E não consigo pensar em uma introdução melhor à noção de abstração do que o livro The Structure and Interpretation of Programs , disponível gratuitamente on-line. Ele introduz a linguagem de programação Scheme, mas aborda muitos outros tópicos em ciência da computação, incluindo programação declarativa.
Na minha carreira acadêmica, fui inspirado pelo conceito de Programação Orientada a Aspectos. Você pode ler alguns dos primeiros artigos sobre AOP e terminar com meia página de anotações para idéias.
Também acho que o progresso de Church e Turing é muito inspirador. Na década de 1930, antes mesmo de os computadores serem fabricados, cientistas e matemáticos estavam programando em uma linguagem de programação de ordem superior: cálculo Lambda. A construção dos números da Igreja e da função predecessora é provavelmente uma das construções de programação mais inteligentes de todos os tempos. Ele mostra como fazer algo de quase nada.
Não é algo que eu li. Em 1984 eu estava conversando com meu vizinho e seu amigo. Eu tinha 16 anos. O amigo me disse que essencialmente o mundo está dividido entre usuários e programadores de computadores. Ele disse que apenas as pessoas mais inteligentes do mundo podem se tornar programadores.
Yeeeeee! Que desafio!
Originalmente Joel on Software , a maneira como ele escreve facilitou a compreensão dos conceitos quando eu estava começando.
Code Complete, Second Edition, de Steve McConnell.
Padrões de Design: Elementos de Software Orientado a Objetos Reutilizáveis por Erich Gamma
Sou totalmente autodidata e tive a sorte de encontrar um artigo (há muito que esqueci onde) desde o início de meu trabalho que me apontava para esses dois livros. A transformação do meu código depois que li esses dois livros foi impressionante. Devo muito a esses autores.
Para inspiração, os blogs de Yegge , os ensaios de Graham e as palestras em vídeo do SICP .
Entre muitas inspirações, a mais recente foi este livro sobre: Padrões de Aprendizagem
Quando li o Design Patterns Book pela primeira vez em 1995, ou algo assim, foi realmente uma grande surpresa para mim como programador.
Hoje em dia, o livro de James Shores sobre desenvolvimento ágil me inspirou muito e, ultimamente, Lyssa Adkins sobre equipes de coaching, as quais são altamente recomendadas se você estiver interessado nessas coisas.
Os de uma inclinação oriental podem desfrutar de um livrinho fofo de koans no transcendente Tao da Programação .
Este foi o meu primeiro passo em direção ao caminho da iluminação e foi a primeira coisa que me incentivou a pensar em programação e trabalho criativo em geral, como uma entidade inquestionável que existe para ser descoberta ao longo do tempo pelo criador. Aqueles que tentam combatê-lo ou entendê-lo certamente falharão.
Eu deveria reler este artigo uma vez a cada seis meses Se nenhum profissional de Shareware é 100 vezes mais inteligente que você, então por que alguns obtêm 100 vezes os resultados? - por Steve Pavlina
O Little LISPer me surpreendeu .
Tomei uma aula de programação pascal da High School. Eu já conhecia o C64 basic muito bem e perguntei ao professor se todas as linguagens de programação eram como Basic e Pascal. Ele me emprestou sua cópia do Little LISPer. Depois de passar o fim de semana lendo, não acreditava que uma linguagem tão estranha pudesse existir ou funcionaria. Quando o vi rodando no mini discador ao qual ele tem acesso, fiquei chocado. Existia.
Depois da minha segunda aula de programação em nível universitário; Algoritmos e estruturas de dados, troquei de majores para ter acesso ao melhor laboratório de informática da CS. Eles tinham máquinas Unix com lisp, schema, prólogo, SmallTalk80 e uma tonelada de outras ferramentas.
Código completo . Ele abrange a maioria dos assuntos básicos que você precisa conhecer como programador e fornece instruções para aprender mais sobre cada um deles. Um primeiro passo muito bom no caminho da aprendizagem. Eu e muitas pessoas que conheço gostariam de lê-lo mais cedo na vida de programadores.
A palestra mais inspiradora que já ouvi foi Richard Gabriel falando sobre o software de escrita ser semelhante a escrever poemas. Os poetas costumam se esforçar muito para obter apenas algumas palavras certas - pense em Haikus - e devemos nos esforçar para alcançar o mesmo tipo de excelência e elegância ao escrever software.
Elegância e concisão são tão importantes na programação quanto na poesia e na matemática e exigem muito esforço para fazê-lo com fluência.
Veja alguns dos pontos em http://www.dreamsongs.com/PoetryOfProgramming.html
Como Alan Kay disse há quase 30 anos , o ponto de vista vale 80 pontos de QI. Livros que mudaram meu ponto de vista:
"Investigações Filosóficas", de Ludwig Wittgenstein
Às vezes pensamos que sabemos, quando na verdade não sabemos. W. mostra como olhar mais de perto.
"Fato, ficção e previsão" de Nelson Goodman
Aqui eu aprendi o que a palavra analítico realmente significa. Além disso, o que a palavra pragmática realmente significa.
"Zen e a arte da manutenção de motocicletas", de Robert M. Pirsig
Como pode haver coisas melhores que outras? Por que não é tudo igual, em termos de qualidade? Uau, o que é que bons filmes, bons carros, boa comida e bom software têm em comum, que os torna bons?
Eu achei Como se tornar um hacker muito inspirador. Ele também fornece um roteiro viável para o desenvolvimento como programador.
Alma de uma nova máquina (inspiração quando eu estava no ensino médio) SICP (provavelmente um dos melhores livros relacionados ao desenvolvimento de software que eu já li)
Marvin Minsky
Computação: Máquinas Finitas e Infinitas
Processamento de informações semânticas
Seth Godin , embora não seja totalmente relacionado à programação, tem algumas postagens inspiradoras para mim como programador e esperançoso empresário (além de Joel on Software).
O livro dos cinco anéis de Myomoto Musasashi.
Alguns destaques.
Não possui uma ferramenta favorita. Aprenda a usar todas as ferramentas, aprenda quando for apropriado, aprenda suas fraquezas e pontos fortes.
Os funcionários cujo trabalho não é perfeito podem ser usados em locais onde a qualidade de seu trabalho está à vista do público. Os pilares que sustentam o piso sob um prédio não precisam ter um acabamento perfeito (eles apenas precisam trabalhar).
Ao fazer uma coisa, faça muitas coisas. Portanto, se houver uma escolha entre fazer A e B, mas B pode ser usado para fazer muitas coisas na próxima semana, faça B se você puder pagar.
Comecei com a programação de jogos. Tudo vem dos dias da NES. Aspirava a ser desenvolvedor de jogos e eu o consegui, mas mudei para Analista de Software / Hardware de Aplicativos para uma carreira melhor, pois meu país para as indústrias de jogos é muito nicho.
Durante meus primeiros dias, senti um pouco de arrependimento por ter assumido essas funções de TI. Mais tarde, porém, fui inspirado e influenciado por meus ex-colegas em suas realizações e eles foram bastante ativos nessas novas áreas de desenvolvimento técnico. Durante o meu tempo livre, vou me misturar com a programação de software para trabalhar em projetos pessoais com meus ex-colegas.
Eu sei que é uma leitura difícil, mas A Arte da Programação por Computador de Knuth é realmente um grande negócio em nosso campo. E Gödel, Escher, Bach: uma eterna trança dourada de Douglas Hofstadter é inspirador para aqueles de nós com uma inclinação matemática ou algorítmica.
Imaginar alguém projetando métodos e algoritmos tão complexos há quase um século me deixa motivado.