Sobre este livro
É fácil se perder no caminho vasto e, por vezes, tempestuoso do mundo da computação. Há inúmeros conteúdos sobre programação, ciência da computação, eletrônica, sistemas operacionais, redes de computadores, entre muitos outros temas. Essa abundância é positiva, mas também pode ser confusa. Por onde começar? Como os diferentes tópicos se conectam entre si?
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 de cada capítulo, 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 um modelo mental sólido 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.
- 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 entende-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
- Introdução - afinal, o que são os computadores para os seres humanos? O que é computar? Neste capítulo eu busco introduzir o termo "computação" mais do ponto de vista filosófico do que técnico. Também desmistifico alguns conceitos iniciais sobre a computação.
- Computadores - agora com um viés técnico, explico sobre o computador enquanto máquina, tecnologia e ferramenta do qual se usa esperando que cumpra algum propósito prático.
- Números - se com o capítulo anterior foi entendido que computadores nada mais fazem do que realizar tarefas com números, é necessário então ter um bom entendimento do que é um número!
- Sistemas de Numeração - Em breve
Referências
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 (mais filosófico)
- John von Neumann - textos sobre arquitetura de computadores
- NAND2Tetris (The Elements of Computing Systems)