We are still actively working on the spam issue.

Difference between revisions of "Programming resources"

From InstallGentoo Wiki
Jump to: navigation, search
(God-tier books)
(God-tier books)
Line 27: Line 27:
 
* [http://books.cat-v.org/computer-science/unix-programming-environment/ The UNIX Programming Environment, 2nd edition] An excellent introductory *nix book. Written by Brian Kernighan (of K&R) and Rob Pike (Plan9, Golang), both of whom were part of the Unix team at Bell Labs.  
 
* [http://books.cat-v.org/computer-science/unix-programming-environment/ The UNIX Programming Environment, 2nd edition] An excellent introductory *nix book. Written by Brian Kernighan (of K&R) and Rob Pike (Plan9, Golang), both of whom were part of the Unix team at Bell Labs.  
 
* [http://basepath.com/aup/ Advanced UNIX Programming, 2nd Edition] Recommended as a follow on book from The UNIX Programming Environment. Contains information on over 300 syscalls.
 
* [http://basepath.com/aup/ Advanced UNIX Programming, 2nd Edition] Recommended as a follow on book from The UNIX Programming Environment. Contains information on over 300 syscalls.
* [https://en.wikipedia.org/wiki/The_Pragmatic_Programmer The_Pragmatic_Programmer] Cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users.
+
* [https://en.wikipedia.org/wiki/The_Pragmatic_Programmer The Pragmatic Programmer] Cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users.
* [https://en.wikipedia.org/wiki/Introduction_to_Algorithms Introduction_to_Algorithms] The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers.
+
* [https://en.wikipedia.org/wiki/Introduction_to_Algorithms Introduction to Algorithms] The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers.
* [https://en.wikipedia.org/wiki/The_Tao_of_Programming The_Tao_of_Programming] The themes of the book espouse many hacker ideals – managers should leave programmers to their work; code should be small, elegant, and maintainable; corporate wisdom is more often than not an oxymoron; and so on.
+
* [https://en.wikipedia.org/wiki/The_Tao_of_Programming The Tao of Programming] The themes of the book espouse many hacker ideals – managers should leave programmers to their work; code should be small, elegant, and maintainable; corporate wisdom is more often than not an oxymoron; and so on.
 
* [http://www.hackersdelight.org/ Hacker's Delight] It discusses a variety of programming algorithms for common tasks involving integer types, often with the aim of performing the minimum number of operations or replacing slow operations by faster ones.
 
* [http://www.hackersdelight.org/ Hacker's Delight] It discusses a variety of programming algorithms for common tasks involving integer types, often with the aim of performing the minimum number of operations or replacing slow operations by faster ones.
 
* [https://en.wikipedia.org/wiki/Code_Complete Code Complete] A compendium of software construction techniques, from naming variables to deciding when to write a subroutine.
 
* [https://en.wikipedia.org/wiki/Code_Complete Code Complete] A compendium of software construction techniques, from naming variables to deciding when to write a subroutine.

Revision as of 05:28, 24 October 2015

Imbox move.png
Imbox move.png
MOVE CANDIDATE
This page is being proposed to be moved to somewhere else. Relevant discussion may be found on the talk page. Reason: Programming resources as of wikipedia:Wikipedia:Naming conventions (capitalization) and talk page conversation
The principal programming paradigms

The following is a list of recommended books for learning how to program:

First, check GitHub's extensive list of free programming books: https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md

Second, a very comprehensive list: http://programming-motherfucker.com/

The gentoomen have also provided a torrent/magnet link at http://books.gentoomen.org/ which has a metric fuckton of books, and if you prefer actual physical books, you can get them for really cheap from http://abebooks.com

If you don't see the book you're looking for listed, search the following lists for other sources of books:

God-tier books

Read 'em up!

These books are essential books that people should have, or at least have read or know about:

  • Compilers: Principles, Techniques and Tools (a.k.a The Dragon Book). This book is loaded with all the theory and concepts needed to design, implement and optimise a compiler. It's the go-to compiler book.
  • Operating Systems: Design and Implementation (a.k.a the MINIX book). This is one of the books Linus Torvalds used to write the original Linux kernel. This also contains over 500 pages of the entire MINIX source code at the back as an appendix, and if you're lucky, a MINIX installation CD with instructions.
  • The Art of Computer Programming by Donald Knuth (essentially the holy grail of Computer Science literature). Bill Gates said that if anyone can read every volume in TAOCP from cover to cover, then they should definitely send him their CV/Resume.
  • The Mythical Man Month: Essays on Software Engineering. A compilation of essays on what experienced software engineers and programmers have learned from their successes and failures over many years.
  • Design Patterns: Elements of Reusable Object-Oriented Software. Design patterns and principles designed to help object-oriented software.
  • The Cathedral and the Bazaar. Eric S. Raymond's book on Closed-house development (cathedral) vs open-source, distributed development (bazaar), and how the latter is much more effective.
  • The C Programming Language, mentioned below. Also known as K&R because it was written by the founders of C, Brian Kernighan and Dennis Ritchie.
  • Structure and Interpretation of Computer Programs, listed below
  • The UNIX Programming Environment, 2nd edition An excellent introductory *nix book. Written by Brian Kernighan (of K&R) and Rob Pike (Plan9, Golang), both of whom were part of the Unix team at Bell Labs.
  • Advanced UNIX Programming, 2nd Edition Recommended as a follow on book from The UNIX Programming Environment. Contains information on over 300 syscalls.
  • The Pragmatic Programmer Cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users.
  • Introduction to Algorithms The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers.
  • The Tao of Programming The themes of the book espouse many hacker ideals – managers should leave programmers to their work; code should be small, elegant, and maintainable; corporate wisdom is more often than not an oxymoron; and so on.
  • Hacker's Delight It discusses a variety of programming algorithms for common tasks involving integer types, often with the aim of performing the minimum number of operations or replacing slow operations by faster ones.
  • Code Complete A compendium of software construction techniques, from naming variables to deciding when to write a subroutine.

Ada

  • Programming in Ada 2012 by John Barnes

C

C++

C#

Forth

Java

  • Thinking in Java by Bruce Eckel
  • Head First Java, Second Edition by Kathy Sierra & Bert Bates
  • Effective Java by Joshua Bloch

Haskell

Lisp

Scheme

Common Lisp

Pascal

Ruby

  • The Ruby Programming Language by David Flanagan and Yukihiro Matsumoto
  • Ruby In A Nutshell by Yukihiro Matsumoto
  • Programming Ruby 1.9 & 2.0 (4th edition) (a.k.a. The Pickaxe) by Dave Thomas, Chad Fowler and Andy Hunt
  • Metaprogramming Ruby by Paolo Perrotta
  • Eloquent Ruby by Russ Olsen
  • The Well-Grounded Rubyist by David A. Black

Python