Literatura recomendada pela equipe

De Pontão Nós Digitais
Revisão de 12h38min de 23 de setembro de 2014 por V1z (discussão | contribs) (Principais Referencias Recomendadas)

(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Recomendacoes de livros preferidos dos integrantes do Lab Macambira.

C/C++

Os Melhores

  • The ANSI-C Programming Language - Kernighan & Ritchie (Ricardo Fabbri)
    • Classico absoluto. Exercicios muito bons. Precisa ser acompanhado de um colega mais experiente pois este livro não explica como configurar um ambiente de programacao.
  • The Unix Programming Environment - Kernighan & Pike (Ricardo Fabbri)
    • Outro grande classico e ainda o melhor livro para aprender comandos, sistema de arquivos, a pratica de programacao e desenvolvimento em UNIX/Linux e sua filosofia. Escrito pelos caras que fizeram parte da programacao e concepcao do UNIX original e da linguagem C, portanto eles explicam o por que de diversos conceitos chave. A leitura deste livro também deve ser acompanhada de um colega mais experiente pois alguns detalhes mudaram desde os anos 70, porem os conceitos permaneceram. O livro tambem contem exemplos e exercicios muito bem bolados. Os capitulos mais avancados mostram a utilidade e tradicao do pessoal de UNIX em escrever mini-linguagens e varios conceitos valiosos de engenharia de software prática.
    • upe-txt project

Bons

  • "C++ Primer" - Lippman (Ricardo Fabbri)
    • Muito bom o livro, escrito por um cara da Bell Labs tb o qual teve contato direto com a linguagem e os fatores que a motivam. Este livro, por vezes, pode ser acompanhado de um livro menos conceitual e mais prático. Nao tente entender tudo de C++ numa primeira leitura.
  • "C++" - Stroustrup (Ricardo Fabbri)
    • Otima referencia e tambem pode vir a ser uma otima leitura uma vez que voce ja passou pelos livros basicos e ja pegou alguma pratica.

Sites

  • How to Compile C Code - Alan Pae
    • Tutorial didático de compilação para programas em C, aborda todas etapas da compilação explicando de forma sucinta conteúdos envolvidos como bibliotecas dinâmicas, estáticas e dinamicamente ligadas (dll).

Linux/Unix

Nivel Introdutorio

Os Melhores

  • Running Linux, Fifth Edition - A Distribution-Neutral Guide for Servers and Desktops, Matthias Kalle Dalheimer, Matt Welsh. Este livro e' extremamente bom, cobrindo uso e conceitos de Linux mais modernos, desde comandos usuais, conceitos de particao, até redes, programacao em bash, um tour de linguagens típicas em ambientes GNU/Linux tais como tcl/tk, python, bibliotecas para GUI, etc. Vai bem nos conceitos.
  • O classico é The Unix Programming Environment - Kernighan & Pike (Ricardo Fabbri), ver secao C/C++. leia se realmente quer ser l33t.

Demais Referencias

Nivel Avancado

  • Advanced Linux Programming - livro didatico contendo excelente pratica de programacao mais avancada em Linux, incluindo comunicacao entre processos, threads, seguranca, buffer overflows, etc.

Git

  • Pro Git - progit.org.
    • An extensive book about git. Online version is available. Read all of it, esp. chapters 2 and 3, skimming through the last chapters (Ricardo Fabbri)

PHP

  • Programando para a internet com PHP, Odemir Bruno, Leandro Estrozi, Joao Batista Neto, http://mandelbrot.ifsc.usp.br/programandophp/ (Ricardo Fabbri)
    • Aprendi PHP numa versao "alfa" desse livro, escrito por professores do ICMC e por um grande amigo com grande clareza. Muitos exemplos práticos de sistemas reais. Porém, eu não sou desenvolvedor web hardcore então não sei dizer como este livro se compara com outras referencias (Ricardo Fabbri)

JavaScript

  • JavaScript: The Good Parts - Douglas Crockford

Para os que estão interessados no uso de JavaScript no lado do servidor, não deixem de estudar node.js.


HTML5

  • HTML5: Up and Running - Mark Pilgrim
    • Livro bem interessante que mostra as novidades do HTML5, dando exemplos de como utilizar as novas tags e suas vantagens. além de um breve histórico do html e noções dos codecs de áudio e vídeo.
  • Avoiding common HTML5 mistakes [1]
    • Dá umas dicas para evitar os erros mais comuns de html5

Python

  • Como pensar como um cientista da computação - Allen Downey, Jeffrey Elkner e Chris Meyers
    • Muito bom. Os exemplos são simples mas interessantes para quem está começando a aprender. Abrange estruturas de dados fundamentais (filas, listas, pilhas, árvores, ...) em Python.
    • Tradução pela comunidade Python Brasil: [2]
  • Python in a Nutshell - Alex Martelli
    • Avançado. Aborda recursos de metaprogramação em Python. Alguns gurus de Python o consideram o melhor livro de Python. Um dos livros recomendados pelo pessoal do Google.
    • Link para download aqui
  • Aprenda a Programar - Luciano Ramalho
    • Uma introdução à programação usando Python [3]
  • Scientific Python for Matlab Users - Kitware & Google, CVPR 2012 tutorial (recomendacao v1z)
    • Slides extremamente uteis para aprender python cientifico rapidamente
    • Boa visao geral do Python cientifico, iPython, PyLab, NumPy, SciPy, Spyder
    • Complementos ao final com processamento de imagens e processamento paralelo
    • Baixe o arquivo tutorial_slides.pdf[4]
  • Dive into Python - Mark Pilgrim
    • Disponível em [5]
  • Python Essential Reference - David Beazley
    • Avançado. Para alguns, o segundo melhor livro de Python.

Outras boas referências compiladas pela comunidade Python Brasil: http://www.python.org.br/wiki/AprendaMais e http://www.python.org.br/wiki/DocumentacaoPython

Java

Algoritmos

  • Structure and Interpretation of Computer Programs (SICP), Abelson & Sussman
    • Leitura obrigatória! Um clássico. O livro apresenta conceitos fundamentais sobre abstração através de procedimentos, dados e linguagens. Utiliza o dialeto de Lisp, Scheme, para criar várias pequenas linguagens (Prolog, simulador de circuitos digitais, ...) e fazer compreender closures, meta-avaliadores, interpretadores, linguagens de domínio específico, ...
    • A versão em html: http://mitpress.mit.edu/sicp/full-text/book/book.html
    • Aulas em vídeo de 1986 para alunos da disciplina 6.001: http://www.youtube.com/playlist?list=PLE18841CABEA24090
  • Algorithm design, Jon Kleinberg, Éva Tardos (Ricardo Fabbri)
    • Passei no Gggl estudando este livro, dentre outros... excelente, tudo o q vc gostaria que os outros livros de algoritmos tivessem. Otima abordagem de dynamic programming, grafos, etc. (Ricardo Fabbri)

IRC

VOIP

http://www.voip-info.org/

  • Asterisk

DaneoShiga: Estou dando uma olhada na diferença do GNU Sip Witch e do Asterisk

LaTeX

Arquitetura de Computadores

  • Computer Systems: A Programmer's perspective - entenda como funciona os stack frames, como funciona o cache e como usar esse conhecimento para escrever programas mais eficientes. Para mais informacoes e copias, veja a biblioteca digital em [7]

Teoria da Computação e Afins

  • Feynman Lectures on Computation

Literatura Geral

  • Just for Fun, Linus Torvalds (Ricardo Fabbri)
    • Descreve a verdadeira cultura moderna de software livre - fazer tudo por diversão em primeiro lugar.
  • O Crocodilo, Dostoiévsky. (recomendação do Pedro Macambira).
  • Uma lista/sistema de busca de bons livros citados no Stack Overflow e Hacker News, classificados pela quantidade de vezes que foram citados
  • EMERGENCIA: A DINAMICA DE REDE EM FORMIGAS, CEREBROS, CIDADES E SOFTWARES ,Steven Johnson
  • CAOS – TERRORISMO POÉTICO & OUTROS CRIMES EXEMPLARES - Hakim Bey
    • link de busca: [8]

See Also