流行语言的语言书籍/教程

249
不久之前,我还是一个初学者程序员,试图找到关于我想学习的编程语言的好书/教程。即使现在,有时候我也需要快速掌握一门新语言,以便在新项目上工作。这篇文章的目的是记录一些最好的教程和书籍,供大家参考。我会从我能找到的最好的开始列出清单,但希望你们能提供更好的建议/新的语言。以下是我找到的内容:
由于这篇文章现在是可编辑的,我将控制权交给社区。如果你有建议,请在本部分提出。我决定还要添加一个关于如何成为更好的程序员的书籍和在线参考的部分。再次强调,欢迎所有推荐。

在线教程
编程基础 由Karl Seguin撰写 - 来自Codebetter,以C#为基础,但其中的思想适用于各种编程语言,真不敢相信还没有人发布过这个。
如何编写难以维护的代码 - 一本反向手册,教你如何以最难以维护的方式编写代码。如果这些建议不是如此贴切,那将会很有趣。
Wiki Books的编程部分 - Jim Robert推荐的,有大量关于多种语言的书籍和教程,处于不同的完成阶段。
只学基础知识 以熟悉一门编程语言。

书籍
《代码大全》 - 这本书不言而喻,它在太多方面都非常出色,无法一一列举。
《实用程序员》 - 和一位大师级编码人员一起工作的次优选择,教会你他们所知道的一切。
《精通正则表达式》 - 正则表达式是每个程序员工具箱中必不可少的工具。这本书是Patrick Lozzi推荐的,是学习正则表达式能力的绝佳途径。
C语言C++语言Java语言中的算法 - 如果你觉得Knuth的书有点过于深入,这是学习所有经典算法的好方法。

C

在线教程
这个教程看起来相当简明扼要,浏览了一下材料,似乎很不错。不确定对新手程序员来说是否友好。
书籍
K&R C - 经典之作。可以说所有程序员都应该阅读它。
C Primer Plus - Imran推荐作为初学者的终极C书籍。
C: A Reference Manual - Patrick Lozzi推荐的一本很好的参考书。

C++

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

另一个有用的教程是C++注释。在Ubuntu系列中,你可以通过在Synaptic中安装c++-annotation软件包来获取多种格式(pdf、txt、Postscript和LaTex)的电子书(已安装的软件包可以在/usr/share/doc/c++-annotation/中找到)。

书籍
《C++程序设计语言》 - 对于任何C++程序员来说都是至关重要的。
《C++ Primer Plus》 - 最初是作为一个打字错误添加的,但是亚马逊的评论非常好,所以我会保留它,直到有人说它不好为止。
《Effective C++》 - 提高你的C++程序的方法。
《More Effective C++》 - 《Effective C++》的延续。
《Effective STL》 - 提高你对STL的使用方法。
《Thinking in C++》 - 由Bruce Eckel和Chuck Ellison编写的两卷巨著。非常好的书。
《Programming: Principles and Practice Using C++》 - Stroustrup对C++的介绍。
《Accelerated C++》 - Andy Koenig和Barbara Moo编写的一本优秀的C++入门书,不将C++视为“在C上添加了额外功能的语言”,实际上你可以直接开始使用STL。

第四章

书籍
《第四章》,一本文本和参考书。马隆·G·凯利和尼古拉斯·斯派斯。ISBN 0-13-326349-5 / ISBN 0-13-326331-2。1986年普林斯顿大学出版社。Leo Brodie的书很好,但这本书更好。例如,它详细介绍了定义词和解释器。

Java

在线教程
Sun的Java教程 - 一个官方教程,看起来很全面,但我不是Java专家。你们知道有更好的吗?
书籍
Head First Java - Patrick Lozzi推荐作为一本很好的入门教材。
Effective Java - pek推荐作为一本很好的中级教材。
Core Java Volume 1Core Java Volume 2 - FreeMemory推荐作为一些最好的Java参考书。
Java Concurrency in Practice - MDC推荐作为Java并发编程的重要资源。

Java编程语言

Python

在线教程
Python.org - 这种语言的在线文档相当不错。如果你知道更好的,请告诉我。
深入Python - Nickola推荐的。似乎是一本在线的Python书。

Perl

在线教程
perldoc perl - 这是我个人入门这门语言的方式,我认为你不可能超越它。
书籍
Learning Perl - 一个很好的介绍这门语言的方式。
Programming Perl - 被广泛称为Perl圣经。对于任何认真的Perl程序员来说,这是必备的参考资料。
Perl Cookbook - 一本很棒的书,其中包含了许多常见问题的解决方案。
Modern Perl Programming - 最新发布的书籍,包含了关于现代技术和工具的最新智慧,包括Moose和DBIx::Class。

Ruby

在线教程
Adam Mika建议《Ruby的(诙谐)指南》,但是看了一下,我不确定它是否适合每个人。 找到了这个网站,似乎提供了几个Ruby on Rails的教程。
书籍
《编程Ruby》 - 被推荐为关于Ruby的绝佳参考。

Visual Basic

在线教程
找到了这个网站,似乎专门致力于Visual Basic的教程。不确定它们的质量如何。

PHP

在线教程
主要的PHP网站 - 一个简单的教程,允许用户对每个页面进行评论,我非常喜欢这个功能。 PHPFreaks教程 - 不同难度和长度的各种教程。 Quakenet/PHP教程 - 从基础开始引导你的PHP教程。

JavaScript

在线教程
找到了一个适合非程序员的不错教程这里。还找到了一个更高级的这里。Nickolay建议在这里阅读JavaScript重新介绍

书籍
《Head first JavaScript》
《JavaScript: The Good Parts》(附带作者的Google Tech Talk视频

C#

在线教程
C# Station 教程 - 我找到的一个不错的教程,但我不是C#专家。
C# 语言规范 - tamberg推荐的。虽然不是教程,但是是关于C#所有元素的很好的参考资料。
书籍
C# to the point - tamberg推荐的一本简短但深入解释该语言的书籍。

OCaml

书籍
nlucaroni建议以下书籍:
OCaml for Scientists Introduction to ocaml
Using Understand and unraveling ocaml: practice to theory and vice versa
Developing Applications using Ocaml - O'Reilly
The Objective Caml System - Official Manua

Haskell

在线教程 nlucaroni建议如下: 使用Haskell探索函数式编程 书籍 《真实世界的Haskell》 《完全函数式编程》 LISP/Scheme

书籍
wfarr建议以下书籍:
《小计划者》 - Scheme和函数式编程的入门
《老练的计划者》 - 《小计划者》的后续
《计算机程序的构造和解释》 - Lisp的权威书籍(也可以在线获取
《实用的通用Lisp》 - Lisp的良好入门书籍,包含多个实际应用示例
《关于Lisp》 - Lisp的高级主题
《如何设计程序》 - 计算机和编程的入门
《人工智能编程范例:Common Lisp案例研究》 - 高质量Lisp编程的方法

你们呢?我有没有完全错过一些?我有没有忽略你们最喜欢的语言?我会选择最好的评论,并根据建议修改问题。
53个回答

33

我知道这听起来有些老套,但我不认为使用在线教程学习编程语言或平台是一个好主意。这些通常只能让你对语言略知一二。要真正学习一门语言,你需要相当于“书”的东西,而在很多情况下,这意味着实体的纸质书。

如果你想学习C语言,阅读K&R;如果你想学习C++,阅读Stroustrup;如果你想学习Lisp/Scheme,阅读SICP等等。

如果你不愿意花费超过30美元和几个小时去学习一门语言,那么你可能学不会它。


我认为,如果你真的想深入学习一门语言,书籍通常是最好的途径。然而,从教学角度来看,我认为Stroustrup的书相当糟糕。我对GoF的书提出同样的批评(甚至更强烈)。 - Dónal
我并不是很喜欢Stroustrup的书,我更喜欢Bruce Eckel的《Thinking in C++》。而且我更喜欢电子书,因为我可以使用Ctrl+F。在我上算法课(使用《算法导论》这本书)时,这个功能真的救了我一命。 - Tian Bo
9
我没有反对电子书的意思。重点是它需要是一本真正的“书”,由专家编写并由专家审阅,而不是在某个地方找到的免费的5,000字教程,由一个和你一样并不知道太多的人编写。 - Kristopher Johnson

20

以下都是很好的资源,由学术界提供,并且其中一些是书籍(例如未发表的奥莱利书籍——从法语翻译而来,但我没有找到任何问题)。 我标记了帮助我最多的星号。

OCaml:

  1. *OCaml简介
  2. 使用Understand和Unraveling OCaml:从实践到理论,反之亦然
  3. *使用OCaml开发应用——O'Reilly
  4. Objective Caml系统——官方手册
  5. Objective Caml简明介绍
  6. 实用的OCaml

Haskell:

  1. 使用Haskell探索函数式编程
  2. *现实世界的Haskell
  3. *全面的函数式编程

10

+1 并且在此期间,添加http://www.blackwasp.co.uk/CSharpFundamentals.aspx作为一个非常好的在线参考资料。 - Evan Plaice

8

对于C++,我建议初学者阅读Koenig和Moo的Accelerated C++作为入门教材,尽管我不知道对于完全的新手来说是否合适。该书立即专注于使用STL,这使得完成任务变得更加容易


但我认为《加速学习C++》不适合完全的初学者,我认为《C++ Primer Plus(第五版)》适合完全的初学者。 - Ibn Saeed

7

Haskell:

《O'Reilly》书籍:

  1. Real World Haskell,一本关于Haskell的好教程书,可在线或印刷版获取。

我最喜欢的通俗易懂的在线教程:

  1. Haskell wikibook,其中包含了所有优秀的Yet Another Haskell Tutorial。(例如,该教程有助于设置Haskell发行版和运行示例程序等具体问题。)
  2. Learn you a Haskell for Great Good,类似于Why's Poignant Guide to Ruby,但更加直接。
  3. Write yourself a Scheme in 48 hours。通过一个真实项目来学习Haskell。

关于使用Haskell进行函数式编程的书籍:

  1. λ演算、组合子、更多理论方面的内容,但讲解非常浅显易懂:Davie's Introduction to Functional Programming Systems Using Haskell
  2. 惰性求值和程序正确性,以函数式思维来思考:Bird's Introduction to Functional Programming Using Haskell

5

《Effective Java》是必读的,但我建议先熟悉Java,以便更好地理解示例。


5

4

4

3
对于Lisp和Scheme(甚至是函数式编程),没有比The Little SchemerThe Seasoned Schemer更为坚实的基础。两者都提供了一种非常简单直观的介绍,让新学生或爱好者比任何典型的体积庞大的教材更容易理解,这些教材就像非小说版本的《战争与和平》一样压人。一旦他们超越了Schemer系列,SICP和On Lisp都是非常棒的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接