249

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

由于现在这是 wiki 可编辑的,我将控制权交给社区。如果您有任何建议,请在此部分提出。我决定还添加一个部分,以便成为更好的程序员书籍和在线参考资料。再次,欢迎所有建议。

一般编程

在线教程
编程基础,作者:Karl Seguin - 来自 Codebetter,它基于 C#,但其想法在所有方面都是正确的,不敢相信实际上还没有人发布此内容。
How to Write Unmaintainable Code - 一本反手册,教你如何以最不可维护的方式编写代码。如果这些建议中的很多都不是那么真实,那就太有趣了。
Wiki Books 的编程部分- Jim Robert 建议在完成的不同阶段有大量关于多种语言的书籍/教程。
Just the Basics来感受一种语言。

Books
Code Complete - 这本书不言而喻,它在很多方面都非常出色。
The Pragmatic Programmer - 与编码大师一起工作的下一个最好的事情,教你他们所知道的一切。
掌握正则表达式- 正则表达式是每个程序员工具箱中必不可少的工具。这本书由 Patrick Lozzi 推荐,是了解他们能力的好方法。
Algorithms in C , C++ , and Java - 如果你觉得 Knuth 的书有点太深入的话,这是学习所有经典算法的好方法。

C

在线教程
这个教程看起来非常简洁和透彻,查看了材料并且似乎非常好。不过不确定它对新程序员有多友好。
书籍
K&R C - 肯定是经典之作。有人可能会争辩说所有程序员都应该阅读它。
C Primer Plus - 由 Imran 推荐为初级程序员的终极 C 书籍。
C: A Reference Manual - Patrick Lozzi 推荐的一个很好的参考。

C++

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

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

书籍
C++ 编程语言- 对任何 C++ 程序员都至关重要。
C++ Primer Plus - 最初是作为错字添加的,但亚马逊的评论非常好,我将把它留在这里,直到有人说它是一个哑弹。
Effective C++ - 改进 C++ 程序的方法。
更有效的 C++ - 有效 C++ 的延续。
有效的 STL - 改进 STL 使用的方法。
Thinking in C++ - 好书,两卷。由布鲁斯·埃克尔和查克·埃里森撰写。
Programming: Principles and Practice Using C++ - Stroustrup 对 C++ 的介绍。
加速 C++- Andy Koenig 和 Barbara Moo - 对 C++ 的精彩介绍,它不会将 C++ 视为“附加了额外位的 C”,事实上,您可以直接潜入并尽早开始使用 STL。

向前

书籍
FORTH,文本和参考。Mahlon G. Kelly 和 Nicholas Spies。国际标准书号 0-13-326349-5 / 国际标准书号 0-13-326331-2。1986 年普伦蒂斯霍尔。Leo Brodie 的书很好,但这本书更好。例如,它深入涵盖了定义单词和解释器。

爪哇

在线教程
Sun 的 Java 教程- 一个看起来很全面的官方教程,但我不是 Java 专家。大家知道有没有更好的?
Books
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 - 该语言的在线文档非常好。如果你知道更好的让我知道。
Dive Into Python - 由 Nickola 建议。好像是网上的python书。

Perl

在线教程
perldoc perl - 这是我个人开始使用该语言的方式,我认为您无法击败它。
Books
Learning Perl - 一种向自己介绍该语言的好方法。
Programming Perl - 被称为 Perl 圣经。任何认真的 perl 程序员的基本参考。
Perl Cookbook - 一本很好的书,可以解决许多常见问题。
现代 Perl 编程- 新发布,包含现代技术和工具的最新智慧,包括 Moose 和 DBIx::Class。

红宝石

在线教程
Adam Mika 推荐了Why's (Poignant) Guide to Ruby,但看了之后,不知道是否适合所有人。发现这个站点似乎提供了几个关于 Ruby on Rails 的教程。
Books
Programming Ruby - 建议作为所有 ruby​​ 的重要参考。

视觉基础

在线教程
找到这个似乎致力于视觉基础教程的网站。不知道他们有多好。

PHP

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

JavaScript

在线教程在这里找到了一个适合非程序员
的不错的教程。在这里找到另一个更高级的。Nickolay 建议在这里重新介绍 javascript作为一个很好的读物。

Books
Head first JavaScript
JavaScript: The Good Parts(附有作者的Google Tech Talk 视频

C#

Online Tutorials
C# Station Tutorial - 似乎是我挖出来的一个不错的教程,但我不是 C# 人。
C# 语言规范- 由 tamberg 建议。不是真正的教程,而是对 C#
书籍
C# 的所有元素的很好的参考- tamberg 建议作为一个简短的文本,以惊人的深度解释语言

ocaml

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

哈斯克尔

在线教程
nlucaroni 建议如下:用 Haskell书籍
探索函数式编程真实世界的 Haskell总函数式编程


LISP/方案

书籍
wfarr 建议如下:
The Little Schemer - 介绍 Scheme 和一般
的函数式编程 经验丰富的 Schemer - Little Schemer 的后续。
Structure and Interpretation of Computer Programs - 关于 Lisp 的权威书籍(也可在线获得)。
Practical Common Lisp - 一个很好的 Lisp 介绍,有几个实际使用的例子。
关于 Lisp - Lisp 中的高级主题
如何设计程序-
人工智能编程的计算和编程范式简介:Common Lisp 中的案例研究- 一种高质量 Lisp 编程的方法

你们呢?我完全不喜欢那里的一些吗?我遗漏了你最喜欢的语言吗?我会采纳最好的意见并根据建议修改问题。

4

53 回答 53

33

我知道这会显得过时,但我不认为使用在线教程来学习编程语言或平台。这些通常只给你一点语言的味道。要真正学习一门语言,你需要相当于一本“书”,在很多情况下,这意味着一本真正的枯树书。

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

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

于 2008-08-22T17:18:47.033 回答
20

这些都非常好,由学术界和(一些)书籍(例如,一本未出版的 oreilly 书籍——翻译自法语,但我没有发现任何问题)。我已经*了我最喜欢的对我帮助最大的人。

ocaml:

  1. * ocaml简介
  2. 使用理解和解开 ocaml:从实践到理论,反之亦然
  3. *使用 Ocaml 开发应用程序 - O'Reilly
  4. Objective Caml 系统 - 官方手册
  5. Objective Caml 的简明介绍
  6. 实用奥卡姆

哈斯克尔:

  1. 使用 Haskell 探索函数式编程
  2. *真实世界的 Haskell
  3. *总函数式编程
于 2008-08-22T17:19:38.407 回答
10

对于 C#

在此处输入图像描述

在此处输入图像描述

于 2008-09-02T07:40:10.410 回答
8

对于C++,我建议将 Koenig 和 Moo 的Accelerated C++作为开始文本,尽管我不知道对于绝对新手来说会如何。它专注于立即使用 STL,这使完成工作变得更加容易。

于 2008-08-28T18:36:54.410 回答
7

哈斯克尔

奥莱利书:

  1. Real World Haskell,一本很棒的 Haskell 教程型书籍,可在线获取和印刷版。

我最喜欢的一般性、学术性较低的在线教程:

  1. Haskell wikibook包含所有优秀的 Yet Another Haskell 教程。(例如,本教程有助于设置 Haskell 发行版和运行示例程序的细节。)
  2. 本着Why's Poignant Guide to Ruby 的精神,向你学习一个 Haskell for Great Good ,但更重要的是。
  3. 在 48 小时内为自己编写一个方案。用一个真实的项目来学习 Haskell。

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

  1. Lambda 演算,组合器,更具理论性,但以一种非常脚踏实地的方式:戴维对使用 Haskell 的函数式编程系统的介绍
  2. 懒惰和程序正确性,函数式思考:Bird 的 Haskell 函数式编程简介
于 2008-08-30T00:09:40.737 回答
5

有效的 Java 是必须的,但我建议首先熟悉 Java 以充分理解这些示例。

于 2008-08-25T18:07:50.887 回答
5

红宝石

于 2008-08-30T10:55:13.023 回答
4

I'd add Bruce Eckel's programming books:

In general, his "Books" page (http://mindview.net/Books/) is a good resource. The freely availabe books can also be found at http://www.ibiblio.org/pub/docs/books/eckel/

于 2008-09-26T10:34:25.893 回答
4

不敢相信没有人提到Perl Best Practices。还有一个Twitter 提要每天提供一个 PBP。

我从我推荐的 Robert 的 Perl 教程中学习了 Perl,但它自 1999 年以来一直没有更新。推荐的更新的教程是Steve 的 Perl 教程

对于使用 Perl 进行 Web 开发,明显的赢家是Catalyst,而Catalyst wiki是学习的起点。

于 2009-07-19T11:43:19.483 回答
3

C++

第一个适合初学者,第二个需要更高级的 C++ 水平。

于 2008-08-27T16:19:11.863 回答
3

对于 Lisp 和 Scheme(地狱,一般来说是函数式编程),很少有东西比The Little SchemerThe Seasoned Schemer提供更坚实的基础。两者都提供了对 Scheme 和函数式编程的非常简单和直观的介绍,对于新生或业余爱好者来说,这比任何一本像非小说类《战争与和平》翻版的经典书籍都要简单得多。

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

于 2008-08-25T16:30:23.817 回答
3

查看wikibooks 的编程部分

其中许多已经完全形成,并且相当多的部分在特定功能上具有更高级的部分(处于不同的完成状态)。

此外,w3 学校有一个很棒的 php 教程和参考部分

他们的htmlcss部分也很适合参考。

于 2008-08-26T14:56:51.537 回答
3

对于 Javascript:

对于 PHP:

对于 OO 设计和编程,模式:

对于重构:

对于 SQL/MySQL:

于 2008-09-04T09:19:10.420 回答
3
  • C - The C Programming Language - 显然我必须参考 K&R,这是目前最好的编程书籍之一。
  • C++ - Accelerated C++ - 这篇清晰、编写良好的 C++ 介绍直接使用 STL,并提供了漂亮、清晰、实用的示例。名副其实。
  • C# - Pro C# 2008 和 .NET 3.5 平台- 有点拗口,但写得很精彩,深度很大。
  • F# -专家 F# - 旨在将经验丰富的程序员从零到 F# 专家。写得很好,作者发明的 F# 之一,所以你不会出错!
  • Scheme - The Little Schemer - 非常独特的编程语言教学方法做得非常好。
  • Ruby - Programming Ruby - 被亲切地称为“pick axe”书,这是对 Ruby 的事实上的介绍。写的很好,清晰,详细。
于 2008-08-30T19:00:39.427 回答
2

蟒蛇:http ://diveintopython.net/

JS:对 JavaScript 的重新介绍是对程序员的语言(不是浏览器细节)的介绍。不知道浏览器中 JS 的好教程。

顺便说一句,好主意!

于 2008-08-22T17:13:27.173 回答
2

Head First Javascript是对初级程序员的一个很好的 JS 介绍 - 它创造性地解释了使用 JS 语法的基本编程概念。Head First 系列基于帮助您学习和记住新信息的研究技术。他们让你做很多看似幼稚的练习和谜题,但确实有助于巩固你大脑中的知识。

我真正喜欢的一个练习是在他们解释了数据类型之后,他们展示了一张城市街道的图片,并说“标记你可以在这张图片中找到的所有数据类型”。所以汽车上的闪光灯是一个布尔值,商店上的标志是一个字符串,地址是一个数字。这帮助我了解了如何将真实信息转化为程序。

仅基于这本书,我会说 Head First 系列是第一次学习一些东西的好方法,但是它们具有的类似故事的格式会使它们难以用作参考。

于 2008-09-12T18:26:52.657 回答
2

让我们不要忘记Head First Java,它可以被认为是该语言必不可少的第一步,或者可能是 Sun 在线教程之后的一步。它非常适合简洁地掌握语言,同时增加一点乐趣,作为已经提到的更深入书籍的垫脚石。

Sedgewick 提供了有关算法的精彩系列,如果您发现 Knuth 的书过于深入,那么这些系列是必不可少的。除了 Knuth,Sedgewick 为该领域带来了可靠的方法,他提供了CC++Java方面的书籍。C++ 书籍可以在 C 上向后使用,因为他在演示文稿中没有对这两种语言进行很大区分。

每当我在编写 C 时,Harbison 和 Steele 的 C:A 参考手册都会随身携带。它简洁高效,同时非常彻底,使其无价(无论如何对我来说)。

抛开语言不谈,如果这个线程要成为参考文献的首选,我认为由于可靠贡献的数量而朝着这个方向发展,请包括Mastering Regular Expressions,原因我认为我们大多数人都知道.. . 有些人还会说正则表达式本身可以被视为一种语言。此外,它在多种语言中的实用性使其非常宝贵。

于 2008-08-29T07:45:37.557 回答
2

C Primer Plus,第 5 版- 如果您在没有任何编程经验的情况下学习 C,则可以获得 C 书籍。当我从这本书中学习编程时,这是我个人最喜欢的。它具有一本适合初学者的书应具备的所有品质:

  • 不假设任何事先接触过编程
  • 阅读愉快(不会像 For Dummies /
  • 不会过于简单化
于 2008-08-25T16:02:00.593 回答
2

通用 Lisp

有关 CL 的良好参考,请查看Common Lisp the Language, 2nd Edition

于 2008-08-30T18:48:40.140 回答
2

对于目标 C:

Cocoa Programming for Mac OSX - 第三版 Aaron Hillegass 由 Addison Wesley 出版

Objective C 编程,Stephen G Kochan,

于 2008-09-11T01:00:17.920 回答
2

Hal Fulton的红宝石之路

红宝石之路封面 http://rubyhacker.com/trw2cover.gif

于 2008-09-13T21:35:38.280 回答
2

鉴于最近的发展,我认为重要的是包括最近大学和私营公司提供的免费在线课程的爆炸式增长。新波士顿是我多年来一直使用多种语言的教程网站,非常适合初学者。

http://www.udacity.com/

https://www.coursera.org/

http://www.coursehero.org/

http://www.codecademy.com/

http://mitx.mit.edu/

http://www.khanacademy.org/

http://thenewboston.org/

于 2012-04-25T11:54:40.437 回答
1

对于 J2EE,您有一个非常全面的教程:http: //java.sun.com/javaee/5/docs/tutorial/doc/

于 2008-08-24T15:45:45.743 回答
1

C#

Hanspeter Mössenböck的 C#到点。在仅 200 页的篇幅中,他以惊人的深度解释了 C#,着重于基本概念和简明示例,而不是挥手和 Visual Studio 屏幕截图。

有关特定语言功能的更多信息,请查看C# 语言规范 ECMA-334

微软的 Krzysztof Cwalina 和 Brad Abrams 所著的《框架设计指南》提供了对 .NET 库背后的主要设计决策的进一步洞察。

于 2008-08-29T08:11:06.560 回答
1

学习 Grails 的事实标准是Jason Rudolph的出色Grails 入门。您可以讨论它是在线教程还是书籍,因为它可以购买但可以免费下载。有更多“真正的”书籍正在出版,我推荐开始 Groovy 和 Grails。

于 2008-08-26T14:49:56.110 回答
1

我赞同 Kristopher 对 K&R 对 C 的推荐。

我发现“Essential Actionscript 2.0”一书对于 AS 编码非常有用(我相信现在有一个 AS3 版本)。

我发现在某些情况下,翻阅真正的书籍比在线参考更有帮助。虽然不太清楚为什么。

于 2008-08-22T17:37:25.727 回答
1

嗯,我不知道我是否会说在线资料是无用的,但我确实同意书籍有一些东西。也许它们写得更好,或者也许是花 50 美元以上的行为让你更倾向于研究这些材料。

无论哪种方式,我都同意书籍应该是这个问题的一部分。如果有人对语言书籍有任何建议,我会用最好的建议编辑帖子。

于 2008-08-22T17:41:51.487 回答
1

您为 Ruby 列出的参考是针对 Ruby on Rails 的。虽然仍然深入人心,但对于想要学习 Ruby 的人来说,它绝对不是一个开始的地方。

对于 Ruby 教程,我建议将Why's (Poignant) Guide to Ruby作为任何对该语言感兴趣的人的一个很好的起点。

如果您想了解更多细节,我会推荐这本书Programming Ruby,它已经成为所有 Ruby 事物的标准。目前正在编写第三版,重点介绍 Ruby 1.9 的特性,所以如果有人考虑购买这本书,我会推迟一段时间。

于 2008-08-23T04:51:43.000 回答
1

对于 Python,我想建议'A Byte of Python'

披露:我是这本书的作者,但主页上的用户反馈和这本书应该能说明一切:)

于 2008-09-12T18:13:21.270 回答
1

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

于 2008-08-25T15:47:07.730 回答
1

我知道这是一篇来自这里的交叉帖子……但是,我认为最好的 Java 书籍之一是Brian Goetz 的Java Concurrency in Practice。一本相当先进的书——但是,它对你的并发代码和一般的 Java 开发很有效。

于 2008-08-25T18:26:43.743 回答
1

我将第二个 Real World Haskell。在访问了#stackoverflow IRC 频道 (irc.freenode.net) 之后,我已经与两位作者进行了交谈,一位在 Reddit 上,另一位在与 SO 频道在同一服务器上的 #haskell 频道上,他们在我对学习 Haskell 的追求。这是我第一次向任何人强烈推荐一本关于编程的书。

于 2008-10-13T12:59:45.257 回答
1

我推荐一些关于Java的书:

初学者:Head First Java是对这门语言的极好介绍。我还必须提到Head First Design Patterns,它是学习者掌握可能非常具有挑战性的概念的绝佳资源。这些书随和有趣的风格非常适合编程新手。

关于 Java SE 的一本非常全面、全面的书是 Bruce Eckel 的Thinking In Java v4。(只有不到 1500 页,它也适合进行重量训练!)对于我们这些没有获得丰厚银行奖金的人来说,可以免费下载旧版本。

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

于 2009-03-29T03:13:18.380 回答
1

短暂聊天

于 2009-12-12T00:11:45.973 回答
0

对于 C++,我是C++ Common Knowledge: Essential Intermediate Programming的忠实粉丝,我喜欢它被组织成小部分(每个主题通常少于 5 页)所以我很容易抓住它并阅读我的概念需要审查。

这是我前一天晚上和在飞机上参加工作面试时必读的。

于 2008-08-28T18:55:42.260 回答
0

爪哇

Java Notes - 非常适合新手 Java 程序员

于 2009-08-12T07:57:25.443 回答
0

对于 Java EE 5,有一个单独的教程JEE 教程。这很有用,因为人们经常询问 java 中的持久性和 xml 绑定。

于 2008-09-02T08:13:06.883 回答
0

C# -零点网络书

于 2008-09-04T09:23:12.343 回答
0

Java:用于 Java 6 的 SCJP。我仍然用它作为参考。

于 2008-09-04T09:28:39.307 回答
0

C

K.N. King has a list of recommended C books in his personal page:

  • The C Puzzle Book (Revised Edition)
  • C: A Reference Manual, Fifth Edition
  • C Unleashed
  • C Traps and Pitfalls
  • Expert C Programming
于 2009-12-17T00:33:15.977 回答
0

MSDN
http://msdn.microsoft.com/en-us/library/ms229335.aspx

于 2008-08-25T18:49:39.817 回答
0
于 2009-07-25T16:01:45.217 回答
0

通用 Lisp

我会将 Peter Seibel 的“Practical Common Lisp”添加到 lisp 列表中。它特别擅长提供具有话题性的示例(MP3 解析、广播服务器、HTML 编译器)。

http://gigamonkeys.com/book/

于 2008-09-16T18:09:16.800 回答
0

Perl 核心语言 - 小黑皮书 - 极好的参考!

于 2010-08-22T14:50:07.050 回答
0

爪哇

简而言之Java。

这个名字有点用词不当,因为它很厚,但它确实拥有学习 Java 所需的一切。

于 2008-09-26T19:13:58.850 回答
0

Ruby 中的设计模式:

http://www.amazon.com/Design-Patterns-Ruby-Addison-Wesley-Professional/dp/0321490452#reader

于 2009-05-11T20:21:19.327 回答
0

对于 REALbasic:

Buginning REALbasic,从新手到专业的 Jerry Lee Ford

非常基础,但是入门的好方法

于 2008-09-11T01:02:53.530 回答
0

我经常返回的一个站点是http://www.javapractices.com。它涵盖了《Effective Java》一书中讨论的大部分技术。另一个检查编码示例(从基本到高级)的好网站是http://www.java2s.com

于 2009-02-04T11:16:14.253 回答
0

对于 C 和 C++ 在线教程(和其他主题),

http://www.cprogramming.com/tutorial.html

于 2012-07-17T18:12:46.613 回答
0

对于 PHP,我推荐George Schlossnagle 的Advanced PHP Programming。如果您刚刚开始使用 PHP,这可能不是最好的入门书籍,但是在您了解自己在做什么之后,这本书(在我看来)会告诉您许多最佳实践和技巧否则你可能会错过。

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

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

于 2008-12-25T01:17:59.350 回答
0

二郎

我发现Programming Erlang是一本学习 Erlang 的优秀书籍。它是由创建该语言的人编写的,并且很好地涵盖了基础和高级主题。它也有一些很好的例子。

于 2009-05-11T21:30:37.153 回答
0

系统:

计算机系统:程序员的视角,2/E

语言:

放弃 Lambda

于 2012-03-12T15:44:24.197 回答
0

核心 Java 第 1 卷和第 2 卷。

作者:Cay S. Horstmann 和 Gary Cornell

有史以来最好的 Java 书!!!!!!

于 2010-07-01T15:58:31.867 回答