【问题标题】:Language Books/Tutorials for popular languages流行语言的语言书籍/教程
【发布时间】:2010-09-06 13:51:00
【问题描述】:

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

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

一般编程

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

书籍
Code Complete - 这本书不言而喻,它在很多方面都非常出色。
The Pragmatic Programmer - 与程序员大师,教你他们所知道的一切。
Mastering Regular Expressions - 正则表达式是每个程序员工具箱中必不可少的工具。这本书由 Patrick Lozzi 推荐,是了解他们能力的好方法。
CC++Java 中的算法 - 如果您觉得 Knuth 的书有点太深入,这是学习所有经典算法的好方法。

C

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

C++

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

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

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

第四

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

Java

在线教程
Sun's Java Tutorials - 官方教程,看起来很透彻,但我不是 java 专家。你们知道有什么更好的吗?
书籍
Head First Java - Patrick Lozzi 推荐为优秀的介绍性文字。
Effective Java - pek 推荐为优秀的中间人文本。
Core Java Volume 1Core Java Volume 2 - 被 FreeMemory 推荐为一些可用的最佳 Java 参考资料。
Java Concurrency in Practice - 被 MDC 推荐为 Java 并发编程的重要资源。

The Java Programing Language

Python

在线教程
Python.org - 该语言的在线文档非常好。如果您知道更好的信息,请告诉我。
Dive Into Python - Nickola 建议。好像是网上的python书。

Perl

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

红宝石

在线教程
Adam Mika 建议Why's (Poignant) Guide to Ruby,但看了之后,不知道是不是适合所有人。 找到了 this 站点,该站点似乎提供了几个关于 Ruby on Rails 的教程。
书籍
Programming Ruby - 建议作为所有 ruby​​ 的一个很好的参考。

Visual Basic

在线教程
找到this 站点,该站点似乎致力于视觉基础教程。但不确定它们有多好。

PHP

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

JavaScript

在线教程
找到了面向非程序员的不错的教程here。找到另一个更高级的here。 Nickolay 建议在这里阅读A reintroduction to javascript

书籍
Head first JavaScript
JavaScript: The Good Parts(作者为Google Tech Talk video

C#

在线教程
C# Station Tutorial - 似乎是我挖掘的一个不错的教程,但我不是 C# 人。
C# Language Specification - 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

哈斯克尔

在线教程
nlucaroni 建议如下:
Explore functional programming with Haskell
书籍
Real World Haskell
Total Functional Programming

LISP/方案

书籍
wfarr 提出以下建议:
The Little Schemer - Scheme 和函数式编程简介
The Seasoned Schemer - Little Schemer 的后续。
Structure and Interpretation of Computer Programs - Lisp 的权威书籍(也是 available online) .
Practical Common Lisp - 一个很好的 Lisp 介绍和几个实际使用示例。
On Lisp - Lisp 高级主题
How to Design Programs - 计算和编程简介
Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp - 一种高质量的 Lisp 编程方法

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

【问题讨论】:

    标签: programming-languages


    【解决方案1】:

    Python:http://diveintopython.net/

    JS:a re-introduction to JavaScript 是对程序员的语言(不是浏览器细节)的介绍。不知道浏览器中JS的好教程。

    顺便说一句,好主意!

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我同意,如果你真的想深入学习一门语言,一本书通常是最好的选择。然而,我认为 Stroustrup 的书从教学的角度来看是相当糟糕的。我会对 GoF 书提出同样的批评(甚至更加强调)。
      • 我不太喜欢 Stroustrup 的书,我更喜欢 Bruce Eckel 的 Thinking in C++。而且我更喜欢电子书,因为我可以 Ctrl+F。当我上算法课时,它救了我的命(附有《算法简介》一书)
      • 我不反对电子书。关键是它需要是一本真正的“书”,由专家编写并由专家审阅,而不是你在网上某个地方找到的免费的 5,000 字教程,由比你了解不多的人编写做。
      【解决方案3】:

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

      ocaml:

      1. *Introduction to ocaml
      2. Using Understand and unraveling ocaml: practice to theory and vice versa
      3. *Developing Applications using Ocaml - O'Reilly
      4. The Objective Caml System - Official Manual
      5. A Concise Introduction to Objective Caml
      6. Practical Ocaml

      Haskell:

      1. Explore functional programming with Haskell
      2. *Real World Haskell
      3. *Total Functional Programming

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

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

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

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

            【讨论】:

            • 为什么书不错,但小故事太扯淡了。他们惹恼了我,没有帮助我。
            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

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

              【讨论】:

                【解决方案9】:

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

                • 假设之前没有接触过编程
                • 阅读愉快(不会像傻瓜一样烦人/
                • 不过分简化

                【讨论】:

                  【解决方案10】:

                  对于 Lisp 和 Scheme(地狱,一般来说是函数式编程),没有什么比 The Little SchemerThe Seasoned Schemer 提供更坚实的基础了。两者都提供了对 Scheme 和函数式编程的非常简单和直观的介绍,对于新生或业余爱好者来说,这比任何一本像 战争与和平 的非小说类作品一样广为流传的典型书籍要简单得多。 p>

                  一旦超越了 Schemer 系列,SICP 和 On Lisp 都是绝佳的选择。

                  【讨论】:

                    【解决方案11】:

                    有效的 Java 是必须的,但我建议先熟悉 Java 以完全理解示例。

                    【讨论】:

                      【解决方案12】:

                      我知道这是来自here 的交叉帖子...但是,我认为最好的Java 书籍之一是Brian Goetz 的Java Concurrency in Practice。一本相当高级的书 - 但是,它会很好地适用于您的并发代码和一般的 Java 开发。

                      【讨论】:

                        【解决方案13】:
                        【解决方案14】:

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

                        【讨论】:

                          【解决方案15】:

                          查看programming section of wikibooks

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

                          另外,w3 schools 有一个很棒的 php 教程和参考部分

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

                          【讨论】:

                            【解决方案16】:

                            C++

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

                            【讨论】:

                              【解决方案17】:

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

                              【讨论】:

                              • 但我认为 Accelerated C++ 不适合完全的初学者,我认为 C++ Primer Plus(第 5 版)适合完全的初学者。
                              【解决方案18】:

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

                              这是我前一天晚上和飞机去面试时必读的。

                              【讨论】:

                                【解决方案19】:

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

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

                                每当我在 C 语言上工作时,C:A Reference Manual, by Harbison and Steele 都会与我同行。它简洁高效,同时非常彻底,使其无价(无论如何对我来说)。

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

                                【讨论】:

                                  【解决方案20】:

                                  C#

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

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

                                  Framework Design Guidelines 是 Microsoft 的 Krzysztof Cwalina 和 Brad Abrams 合着的一本书,进一步深入了解了 .NET 库背后的主要设计决策。

                                  【讨论】:

                                    【解决方案21】:

                                    Haskell

                                    奥莱利书:

                                    1. Real World Haskell,一本很棒的关于 Haskell 的面向教程的书,online 提供并正在印刷中。

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

                                    1. The Haskell wikibook 包含所有优秀的 Yet Another Haskell 教程。 (例如,本教程有助于详细说明设置 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. Lambda 微积分,组合子,更理论化,但以非常脚踏实地的方式:Davie's Introduction to Functional Programming Systems Using Haskell
                                    2. 懒惰和程序正确性,功能性思考:Bird's Introduction to Functional Programming Using Haskell

                                    【讨论】:

                                      【解决方案22】:

                                      红宝石

                                      【讨论】:

                                        【解决方案23】:

                                        普通的 Lisp

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

                                        【讨论】:

                                          【解决方案24】:
                                          • C - The C Programming Language - 显然我不得不参考 K&R,这是目前最好的编程书籍之一。
                                          • C++ - Accelerated C++ - 这个清晰、写得很好的 C++ 介绍直接介绍了使用 STL,并提供了漂亮、清晰、实用的示例。名副其实。
                                          • C# - Pro C# 2008 and the .NET 3.5 Platform - 有点拗口,但写得很精彩,而且深度很大。
                                          • F# - Expert F# - 旨在将经验丰富的程序员从零到 F# 专家。写得很好,是作者发明的 F# 之一,所以你不会出错!
                                          • 方案 - The Little Schemer - 非常独特的编程语言教学方法非常做得很好。
                                          • Ruby - Programming Ruby - 被亲切地称为“镐斧”一书,这是对 Ruby 的事实上的介绍。写得很好,清晰而详细。

                                          【讨论】:

                                            【解决方案25】:

                                            对于 C#

                                            【讨论】:

                                            【解决方案26】:

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

                                            【讨论】:

                                              【解决方案27】:

                                              对于 Javascript:

                                              对于 PHP:

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

                                              重构:

                                              对于 SQL/MySQL:

                                              【讨论】:

                                                【解决方案28】:

                                                【讨论】:

                                                  【解决方案29】:

                                                  Java:SCJP for Java 6。我仍然将其用作参考。

                                                  【讨论】:

                                                    【解决方案30】:

                                                    对于目标 C:

                                                    Mac OSX 的 Cocoa 编程 - 第三版 亚伦·希勒加斯 由艾迪生韦斯利出版

                                                    在 Objective C 中编程, 斯蒂芬·G·科坎,

                                                    【讨论】:

                                                      猜你喜欢
                                                      • 1970-01-01
                                                      • 1970-01-01
                                                      • 1970-01-01
                                                      • 2017-04-07
                                                      • 1970-01-01
                                                      • 2012-05-25
                                                      • 2011-02-03
                                                      • 1970-01-01
                                                      • 1970-01-01
                                                      相关资源
                                                      最近更新 更多