Sobre este livro
Todo autor estabelece, de forma explícita ou implícita, alguns objetivos ao escrever um livro. Embora não seja necessário conhecê-los para acompanhar o conteúdo, acredito que compreender as intenções por trás da escrita pode ajudar o leitor a avaliar se este material é adequado às suas expectativas. Assim, esta seção existe para esclarecer quais foram as ideias que guiaram a construção deste livro.
Não espero (nem recomendo) que este livro seja utilizado como a única fonte de aprendizado sobre computação. Caso ele seja suficiente, ótimo; porém, incentivo fortemente a consulta às referências indicadas ao final deste tópico, bem como a busca por outros materiais complementares.
Meu objetivo principal é guiar o leitor, de forma teórica e prática, pelo funcionamento dos computadores. Busquei tornar essa experiência o mais envolvente possível, apresentando conceitos fundamentais e, sempre que viável, demonstrando como ideias abstratas se manifestam no mundo real. A intenção é que o leitor consiga construir a capacidade de imaginar sobre como os computadores funcionam, sendo capaz de explicar, representar graficamente e, sobretudo, seguir aprendendo de forma autônoma.
Para atingir esse propósito, alguns objetivos adicionais orientaram todo o processo de escrita:
- 1Abrangente
Meu desejo é que o conteúdo seja abrangente. Claro que não é possível criar um único documento que cubra todos os tópicos sobre computação. De qualquer forma, espero conseguir englobar o suficiente para uma boa base, ou um bom suporte para seu aprendizado.
- 2Clareza e simplicidade
Criar um recurso abrangente é legal, porém acredito que seja ainda melhor o manter compreensível e acessível. Sempre que possível evito jargões técnicos que sei que posteriormente o leitor pode aprender sozinho ao longo de sua jornada. Entretando quando for invitável farei o possível para explica-los e preencher o espaço que geralmente o achismo preenche.
- 3Justificativas
Também acho importante entender a razão por trás das coisas serem como são. Enquanto escrevia, tentei antecipar algumas questões que eu teria feito anos atrás se estivesse lendo este material.
- 4Imagens e recursos do site
Gosto muito de desenhar enquanto explico e é claro, que fiz o mesmo aqui. Apesar do dito popular "vou desenhar para você entender" sugerir uma certa arrogância, eu vejo mais como um sinal de dedicação. Além disso, com frequência tento extrair o máximo dos recursos que um website pode prover (como tabs, links, a barra de conteúdos nas laterais, etc.), tentando deixar o mais dinâmico possível.
- 5Confortável e user-friendly
Intencionalmente quebrei várias regras de um livro convencional ao criar um documento que usa uma conversa no estilo de primeira pessoa, e sem economia de senso de humor. Isso, com o objetivo de fazer com que se sinta em casa, conversando com um amigo, ao passo de que não te deixo esquecer que este é um assunto sério e entendê-lo fará com que colha frutos no futuro.
- 6Organização e conexão
E aqui vem onde eu passei grande parte do meu tempo. Saber qual tema deve vir antes de outro e como eles se conectam foi uma das minhas prioridades. Não quis apenas descrever um conceito e passar para o próximo e sim criar uma linha clara de como eles se relacionam.
Para quem esse livro é destinado
Seria tentador afirmar que este livro se destina a qualquer pessoa. No entanto, reconheço que minha abordagem exige um certo grau de curiosidade e persistência. O público-alvo são leitores dispostos a insistir um pouco mais quando o conteúdo se torna desafiador (e isso acontecerá). Nesses momentos, recomendo pesquisar, discutir com outras pessoas e explorar diferentes fontes, sem desistir do processo.
O autor deste material não possui formação acadêmica formal em ciência ou engenharia da computação. Possui, entretanto, familiaridade com matemática básica e sempre teve interesse por computadores, celulares e videogames enquanto objetos técnicos e culturais. Não é necessário mais do que isso para acompanhar o conteúdo apresentado. Para aqueles que ainda não se sentem confortáveis com o tema, o convite é simples: dê uma chance.
Este material foi concebido para permitir que o estudante compreenda, tanto na teoria quanto na prática, como um computador funciona. Se você busca entender como uma máquina que opera sobre zeros e uns se torna uma ferramenta tão poderosa e essencial para a sociedade, este livro foi escrito para você. Por outro lado, se o objetivo for apenas aprender a utilizar um computador de forma prática, este provavelmente não será o recurso mais adequado.
Visão geral do conteúdo
Vou preencher aqui apenas quando estiver finalizado.
Referencias
Consumi diversos conteúdos ao longo da minha jornada, aqui eu destaco alguns deles:
Ao longo da minha jornada de aprendizado, consultei diversos livros, cursos e materiais técnicos. Abaixo destaco algumas referências que influenciaram diretamente a construção deste conteúdo e que podem servir como material complementar ao leitor:
- How Computers Really Work - Visão introdutória e conceitual sobre o funcionamento interno dos computadores.
- Tanenbaum, A. S.; Bos, H. - Sistemas Operacionais Modernos.
- Merces, Fernando - Coleção de livros disponíveis no projeto Mente Binária: https://www.mentebinaria.com.br/files/category/12-livros/
- Merces, Fernando - Engenharia Reversa: https://mentebinaria.gitbook.io/engenharia-reversa/
- Charles Petzold - Code: The Hidden Language of Computer Hardware and Software
- Brian Kernighan - Understanding the Digital World
- Alan Turing - Computing Machinery and Intelligence
- Zhirkov, Igor - Programação em Baixo Nível: C, Assembly e execução de programas na arquitetura Intel 64.
- John von Neumann - textos sobre arquitetura de computadores
- NAND2Tetris (The Elements of Computing Systems)
- Petzold, Charles. Code: The Hidden Language of Computer Hardware and Software. Microsoft Press, 2000.
- Kernighan, Brian W. Understanding the Digital World. Princeton University Press, 2017.