不久前,我还是一名初级编码员,试图找到关于我想学习的语言的好书/教程。即使如此,有时我也需要为我正在从事的新项目相对快速地学习一门语言。这篇文章的重点是记录关于这些语言的一些最好的教程和书籍。我将从我能找到的最好的开始列表,但希望你们能提供更好的建议/新语言。以下是我的发现:

因为现在这是维基可编辑的,我把控制权交给社区。如果你有什么建议,请写在这个部分。我还决定增加一个关于如何成为一个更好的程序员的书籍和在线参考资料的部分。再说一次,欢迎所有的建议。

一般编程

Online Tutorials Foundations of Programming By Karl Seguin - From Codebetter, its C# based but the ideas ring true across the board, can't believe no-one's posted this yet actually. How to Write Unmaintainable Code - An anti manual that teaches you how to write code in the most unmaintable way possible. It would be funny if a lot of these suggestions didn't ring so true. The Programming Section of Wiki Books - suggested by Jim Robert as having a large amount of books/tutorials on multiple languages in various stages of completion Just the Basics To get a feel for a language.

Books Code Complete - This book goes without saying, it is truely brilliant in too many ways to mention. The Pragmatic Programmer - The next best thing to working with a master coder, teaching you everything they know. Mastering Regular Expressions - Regular Expressions are an essential tool in every programmer's toolbox. This book, recommended by Patrick Lozzi is a great way to learn what they are capable of. Algorithms in C, C++, and Java - A great way to learn all the classic algorithms if you find Knuth's books a bit too in depth.

C

在线教程 本教程似乎相当简洁和彻底,看了材料,似乎是相当好的。但不确定它对新程序员是否友好。 书 《K&R C》绝对是经典。有人可能会说,所有程序员都应该阅读它。 C Primer Plus - Imran建议作为初级程序员的终极C书。 C:参考手册- Patrick Lozzi推荐的很好的参考资料。

C++

在线教程 cplusplus.com上的教程似乎是最完整的。我在这里找到了另一个教程,但它不包括多态性等主题,我认为这是必不可少的。如果您来自C语言,本教程可能最适合您。

另一个有用的教程,c++ Annotation。在Ubuntu系列中,您可以通过从Synaptic安装c++-annotation包来获得多种格式(pdf, txt, Postscript和LaTex)的电子书(安装包可以在/usr/share/doc/c++-annotation/中找到)。

Books The C++ Programming Language - crucial for any C++ programmer. C++ Primer Plus - Orginally added as a typo, but the amazon reviews are so good, I am going to keep it here until someone says it is a dud. Effective C++ - Ways to improve your C++ programs. More Effective C++ - Continuation of Effective C++. Effective STL - Ways to improve your use of the STL. Thinking in C++ - Great book, both volumes. Written by Bruce Eckel and Chuck Ellison. Programming: Principles and Practice Using C++ - Stroustrup's introduction to C++. Accelerated C++ - Andy Koenig and Barbara Moo - An excellent introduction to C++ that doesn't treat C++ as "C with extra bits bolted on", in fact you dive straight in and start using STL early on.

出来

书 第四,文本和参考资料。马伦·g·凯利和尼古拉斯 间谍。Isbn 0-13-326349-5 / Isbn 0-13-326331-2。1986 新世纪。里奥·布罗迪的书很好,但是这本书 就更好了。例如,它涵盖了定义单词和 口译员深入讲解。

Java

Online Tutorials Sun's Java Tutorials - An official tutorial that seems thourough, but I am not a java expert. You guys know of any better ones? Books Head First Java - Recommended as a great introductory text by Patrick Lozzi. Effective Java - Recommended by pek as a great intermediate text. Core Java Volume 1 and Core Java Volume 2 - Suggested by FreeMemory as some of the best java references available. Java Concurrency in Practice - Recommended by MDC as great resource for concurrent programming in Java.

Java编程语言

Python

在线教程 Python.org——这门语言的在线文档非常好。如果你知道更好的办法,请告诉我。 潜入Python -由Nickola建议。网上好像有本python书。

Perl

Online Tutorials perldoc perl - This is how I personally got started with the language, and I don't think you will be able to beat it. Books Learning Perl - a great way to introduce yourself to the language. Programming Perl - greatly referred to as the Perl Bible. Essential reference for any serious perl programmer. Perl Cookbook - A great book that has solutions to many common problems. Modern Perl Programming - newly released, contains the latest wisdom on modern techniques and tools, including Moose and DBIx::Class.

Ruby

在线教程 Adam Mika推荐了《Why’s (Poignant) Guide to Ruby》,但在看了之后,我不知道它是否适合每个人。 找到了这个网站,似乎提供了一些Ruby on Rails的教程。 书 Ruby编程-建议作为所有Ruby的很好的参考。

Visual Basic

在线教程 发现这个网站,似乎致力于可视化基本教程。但不确定它们有多好。

PHP

在线教程 主要的PHP站点——一个简单的教程,允许用户对每个页面进行评论,我非常喜欢。 PHPFreaks教程-不同难度长度的各种教程。 Quakenet/PHP教程- PHP教程将指导你从头开始。

JavaScript

在线教程 在这里找到了一个适合非程序员的教程。在这里找到了另一个更高级的。Nickolay建议在这里重新介绍javascript。

书 头部优先JavaScript JavaScript:好的部分(作者的谷歌Tech Talk视频)

C#

在线教程 c#站点教程——似乎是我挖出来的一个不错的教程,但我不是一个c#的人。 c#语言规范-由tamberg建议。算不上真正的教程,但它是关于c#所有元素的很好的参考 书 c#的要点-由tamberg建议作为一个简短的文本,以惊人的深度解释语言

奥卡姆

书 Nlucaroni建议如下: 科学家OCaml ocaml简介 运用理解和阐释ocaml:实践到理论,反之亦然 使用Ocaml - O'Reilly开发应用程序 目标Caml系统-官方Manua

Haskell

在线教程 Nlucaroni建议如下: 探索用Haskell进行函数式编程 书 真实世界Haskell 全面函数式编程

LISP /计划

Books wfarr suggested the following: The Little Schemer - Introduction to Scheme and functional programming in general The Seasoned Schemer - Followup to Little Schemer. Structure and Interpretation of Computer Programs - The definitive book on Lisp (also available online). Practical Common Lisp - A good introduction to Lisp with several examples of practical use. On Lisp - Advanced Topics in Lisp How to Design Programs - An Introduction to Computing and Programming Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp - an approach to high quality Lisp programming

你们呢?我是不是有些地方说错了?我是不是漏掉了你最喜欢的语言?我会把最好的意见和建议修改问题。


当前回答

对于Lisp和Scheme(见鬼,一般的函数式编程)来说,很少有比《小策划者》和《经验丰富的策划者》更坚实的基础了。这两本书都对Scheme和函数式编程进行了非常简单而直观的介绍,对于新学生或业余爱好者来说,这比任何典型的书籍都要简单得多,这些书籍就像《战争与和平》的非虚构版本。

一旦他们超越了Schemer系列,SICP和On Lisp都是很棒的选择。

其他回答

我推荐一些关于Java的书籍:

对于初学者:Head First Java是一个很好的语言入门。 我还必须提到头部优先设计模式,这对学习者来说是一个很好的资源,可以帮助他们掌握一些非常具有挑战性的概念。这些书的轻松有趣的风格是理想的ppl新编程。

Bruce Eckel的《Thinking In Java v4》是一本关于Java SE的真正全面的书籍。(这本书不到1500页,对举重训练也很有用!)对于我们这些没有丰厚的银行奖金的人来说,还有更老的版本可供免费下载。

当然,正如许多人已经提到的,Josh Bloch的Effective Java v2是任何Java开发人员库的重要组成部分。

我支持Real World Haskell。在访问#stackoverflow IRC频道(irc.freenode.net)之后,到目前为止,我已经与两位作者交谈过,一位在Reddit上,另一位在与SO频道同一服务器上的#haskell频道,他们在我学习haskell的过程中除了帮助什么都没有。这是我第一次向任何人强烈推荐一本关于编程的书。

对于PHP,我推荐George Schlossnagle的《高级PHP编程》。如果您刚刚开始学习PHP,那么这本书可能不是最好的入门读物,但是在您对正在做的事情有了大致的了解之后,这本书(在我看来)会告诉您许多您可能会错过的最佳实践和技巧。

为了学习Lisp,我被推荐阅读Peter Seibel的Practical Common Lisp。这个可以在http://www.gigamonkeys.com/book/上找到。

对于Lua,我推荐Roberto Ierusalimschy的《Programming in Lua》。这本书不是最好的编程书,但在目前的Lua书籍中,这将是最好的。这本书的第一版也可以在http://www.lua.org/pil/上找到。正如书的封底所提到的,这本书是面向那些已经在另一种语言中有一些编程经验的人。

对于Java,我强烈推荐Core Java。这是一本大部头(或两本大部头),但我发现它是我读过的关于Java的最好的参考资料之一。

我想加上Bruce Eckel的编程书籍:

Java思维(印刷版:第4版;3日。编辑在线:http://www.mindview.net/Books/TIJ/) 用c++思考(第二版,在线免费下载:http://mindview.net/Books/TICPP/ThinkingInCPP2e.html

总的来说,他的“书籍”页面(http://mindview.net/Books/)是一个很好的资源。这些免费的书籍也可以在http://www.ibiblio.org/pub/docs/books/eckel/上找到