Literatura recomendada pela equipe: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
 
(69 revisões intermediárias por 7 usuários não estão sendo mostradas)
Linha 1: Linha 1:
==C/C++==
Recomendacoes de livros preferidos dos integrantes do [[Lab Macambira]].
===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.


===Bons===
== C/C++ ==
* "'''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.


==Linux==
=== Os Melhores ===


===Os Melhores===
*'''The ANSI-C Programming Language''' - Kernighan & Ritchie (Ricardo Fabbri)
* Também '''The Unix Programming Environment''' - Kernighan & Pike (Ricardo Fabbri), ver secao C/C++.
**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.
* '''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
*'''The Unix Programming Environment''' - Kernighan & Pike (Ricardo Fabbri)
modernos, desde comandos usuais, 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.
**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.
**[http://code.google.com/p/upe-txt/source/browse/ upe-txt project]


==PHP==
=== Bons ===
* '''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)


==HTML5==
*"'''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.


==Literatura Geral==
=== Sites ===
O Crocodilo, Dostoiévsky. (recomendação do Pedro Macambira).
 
*[http://www.ilkda.com/compile/ 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.
** '''Link''' para baixar RunningL. http://www.filesonic.com/file/1299820514/OReilly%20-%20Running%20Linux,%205th%20Edition.chm
 
* O classico é '''The Unix Programming Environment''' - Kernighan & Pike (Ricardo Fabbri), ver secao C/C++. leia se realmente quer ser l33t.
 
==== Demais Referencias ====
* '''Introduction to text-manipulation on Unix based systems''': http://www.ibm.com/developerworks/aix/library/au-unixtext/index.html
** Ótima introdução ao uso de ferramentas como cat/grep/wc/nl/... para manipulação de texto (protocolo padrão) em sistemas Unix
 
* '''The Command Line Crash Course - Controlling Your Computer From The Terminal''': http://learncodethehardway.org/cli/book/cli-crash-course.html
** Livro do ''Programmer, Motherfucker'' Zed Shaw sobre CLI (Command Line Interface)
 
=== Nivel Avancado ===
* [http://www.advancedlinuxprogramming.com Advanced Linux Programming] - livro didatico contendo excelente pratica de programacao mais avancada em Linux, incluindo comunicacao entre processos, threads, seguranca, buffer overflows, etc.
 
== Git ==
 
*[http://progit.org 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)
*http://gitimmersion.com
**Guia interativo introdutório ao Git
 
*http://gitref.org
**Guia de referência GIT (Daniel Pizetta)
 
== 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
**Ótimo livro de Crockford, o principal evangelizador de JS.
**[http://eleventyone.done.hu/OReilly.JavaScript.The.Good.Parts.May.2008.pdf Link para download aqui]
 
*'''JavaScript: The World's Most Misunderstood Programming Language''' - Douglas Crockford
**Artigo de rápida leitura que discute alguns mitos de JS. Altamente recomendado ler os outros artigos do Crockrod disponíveis em: http://javascript.crockford.com
**http://javascript.crockford.com/javascript.html
 
*'''JavaScript MDN Docs''' - Mozilla
**Ótimas referências da linguagem pela "dona" dela: Mozilla.
**https://developer.mozilla.org/en/JavaScript
 
*'''JavaScript Garden''' - Ivo Wetzel & Zhang Yi Jiang
**Um bom guia sobre coisas exóticas de JS (closures, properties, etc)
**http://bonsaiden.github.com/JavaScript-Garden/
 
*'''A re-introduction to JavaScript''' - Simon Willison
**Na mesma linha do artigo anterior, muito bom!
**https://developer.mozilla.org/en/JavaScript/A_re-introduction_to_JavaScript
 
Para os que estão interessados no uso de JavaScript no lado do servidor, não deixem de estudar [http://nodejs.org 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''' [http://html5doctor.com/avoiding-common-html5-mistakes/]
** 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: [http://www.python.org.br/wiki/DocumentacaoPython?action=AttachFile&do=view&target=Como_Pensar_Python]
 
*'''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.
**[http://dimsboiv.uqac.ca/Cours/C2010/SujetSpecial/Python/PyNutshell2e.pdf Link para download aqui]
 
*'''Aprenda a Programar''' - Luciano Ramalho
**Uma introdução à programação usando Python [http://www.python.org.br/wiki/AprendaProgramar]
 
*'''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[http://midas3.kitware.com/midas/folder/5741]
 
*'''Dive into Python''' - Mark Pilgrim
**Disponível em [http://www.diveintopython.org/]
 
*'''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 ==
 
* Tutorial padrao da Oracle: http://docs.oracle.com/javase/tutorial
** Para quem ja sabe C++ da pra seguir esse tutorial completo em ~2h. Pra quem nao sabe, talvez nao seja muito didatico.
 
== 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
 
*'''[http://books.google.com/books?id=OiGhQgAACAAJ&dq=editions:97GV7qegxJ8C&hl=en&ei=iBQZTsKeI6Tz0gHvsL2XBQ&sa=X&oi=book_result&ct=result&resnum=2&ved=0CCwQ6AEwAQ 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/
 
* GNU SIP Witch "GNU SIP Witch is a secure peer-to-peer VoIP server." [http://comments.gmane.org/gmane.comp.voip.sip-communicator.devel/10140]
** http://www.gnutelephony.org/index.php/GNU_Telephony
** http://www.linux.com/learn/tutorials/38070-howto-deploy-sip-witch-clients-and-servers
 
* Asterisk
DaneoShiga: Estou dando uma olhada na diferença do GNU Sip Witch e do Asterisk
 
== LaTeX ==
 
* [ftp://ftp.ams.org/ams/doc/amsmath/short-math-guide.pdf Short Math Guide for LaTeX, de M Downes]. (Renato Fabbri)
* [http://books.google.com.br/books?id=jRNUAAAAMAAJ&q=math+into+latex&dq=math+into+latex&ei=dlqMT9_gM5WGygTVkqWrBw&cd=1&redir_esc=y Math into LaTeX], George A. Grätzer  (Ricardo Fabbri)
* Ver tambem [[Latex]] na wiki.
 
== Arquitetura de Computadores ==
* [http://books.google.com.br/books?id=l0BfQgAACAAJ&dq=computer+systems+programmers+perspective+bryant&ei=9UlaUMqeEZW6zgSGqYC4Bw&cd=1&redir_esc=y 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 [http://uerj.tk]
 
== 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
**http://www.hackerbooks.com/
 
*'''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:''' [http://www.google.com.br/#hl=pt-BR&q=caos+terrorismo+po%C3%A9tico+e+outros+crimes+exemplares&oq=caos+terrorismo&aq=1&aqi=g3&aql=1&gs_sm=c&gs_upl=2653l26748l0l31088l15l15l0l6l6l0l473l2537l0.3.2.2.2l9&bav=on.2,or.r_gc.r_pw.&fp=50106cb2a9b540a&biw=1280&bih=625]
 
* http://audioanarchy.org : textos ativistas anarquistas lidos em voz alta. tem o mesmo acronimo ambiguo (AA)!!
 
== See Also ==
 
* Veja também essa seleção de livros '''Programming, Motherfucker!''' totalmente gratuitos: http://programming-motherfucker.com/become.html
 
[[Category:Lab Macambira]]
[[Category:Java]]
[[Category:Web]]

Edição atual tal como às 11h38min de 23 de setembro de 2014

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