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

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

一般编程

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

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


Python: http://diveintopython.net/

JS:重新介绍JavaScript是为程序员介绍该语言(而不是浏览器的具体内容)。不知道一个好的教程JS在浏览器。

顺便说一句,好主意!


我知道这看起来有些过时,但我不认为使用在线教程来学习编程语言或平台有多大用处。这些通常只能让你对语言有一点了解。要真正学习一门语言,你需要一本“书”,在很多情况下,这意味着一本真正的“死树书”。

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

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


这些都是非常好的,由学术界写的,(一些)是书(例如,一本未出版的oreilly书——从法语翻译而来,但我没有发现任何问题)。我列出了对我帮助最大的我最喜欢的那些。

ocaml:

* ocaml介绍 运用理解和阐释ocaml:实践到理论,反之亦然 *使用Ocaml - O'Reilly开发应用程序 目标Caml系统-官方手册 简要介绍客观Caml 实际Ocaml

Haskell:

探索用Haskell进行函数式编程 *Real World Haskell *全函数式编程


我赞同克里斯托弗对C的K&R推荐。

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

我发现在某些情况下,翻阅真正的书籍比在线参考书目更有帮助。但我不知道为什么。


嗯,我不知道我是否会说网上的资料是无用的,但我确实同意书是有用处的。也许它们写得更好,或者是花50美元让你更倾向于学习这些材料。

不管怎样,我同意书籍应该是这个问题的一部分。如果有人对语言书籍有任何建议,我会用最好的建议编辑这篇文章。


您列出的Ruby参考是Ruby on Rails的参考。虽然在内心深处仍然是ruby,但对于想要学习ruby的人来说,这绝对不是一个开始的地方。

对于Ruby教程,我建议对Ruby语言感兴趣的人可以从Why’s (Poignant) Guide to Ruby入手。

如果你想了解更多的细节,我推荐《Programming Ruby》这本书,它已经成为Ruby的所有东西的标准。第三版目前正在编写中,重点介绍了Ruby 1.9的特性,所以如果有人考虑买这本书,我会先等一等。


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


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


C Primer Plus,第5版——如果你没有任何编程经验,正在学习C语言,你可以得到这本书。这是我个人最喜欢的,因为我是从这本书中学习编程的。它具有初学者友好的书应该有的所有品质:

没有假设你之前有编程经验 读起来很有趣(不会像傻瓜一样讨厌) 并不很简单


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

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


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


我知道这是一个十字路口……但是,我认为最好的Java书籍之一是Brian Goetz的《Java并发实践》。这是一本相当高级的书——但是,它对您的并发代码和Java开发都很有帮助。


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


学习Grails的实际标准是由Jason Rudolph编写的《Getting Started with Grails》。你可以争论它是一个在线教程还是一本书,因为它可以购买,但可以免费下载。还有更多“真正的”书籍正在出版,我推荐《Beginning Groovy》和《Grails》。


看看wikibooks的编程部分

其中许多是完全形成的,相当多的有关于特定功能的更高级的部分(处于不同的完成状态)。

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

他们的HTML和CSS部分也是很好的参考。


C++

用c++思考,作者:Bruce Eckel c++编码标准由Herb Sutter和Andrei Alexandrescu编写

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


对于c++,我建议将Koenig和Moo的《加速c++》作为入门文本,尽管我不知道对于一个绝对的新手来说它会如何。它专注于立即使用STL,这使得完成工作更容易。


对于c++,我是《c++常识:基本中级编程》的忠实粉丝,我喜欢它被组织成小的部分(通常每个主题少于5页),所以我很容易抓住它并阅读我需要复习的概念。

这是我在面试前一晚以及在去面试的飞机上必读的书。


让我们不要忘记Head First Java,它可以被认为是这门语言必不可少的第一步,或者可能是Sun的在线教程之后的第一步。这对于简洁地掌握语言是很好的,同时增加了一点乐趣,可以作为前面提到的更深入的书籍的垫脚石。

如果你觉得Knuth的书太深入,Sedgewick提供了一个关于算法的很棒的系列。除了Knuth之外,Sedgewick还为该领域带来了坚实的方法,并提供了C、c++和Java方面的书籍。c++的书可以向后用在C语言上,因为他在演讲中没有对这两种语言做很大的区分。

每当我在编写哈比森和斯蒂尔所著的《C, C:A Reference Manual》时,它总是伴随着我。它简洁高效,同时非常彻底,使其成为无价的(对我来说)。

撇开语言不谈,如果这篇文章要成为一个参考文献,我认为它是朝着那个方向发展的,因为有很多可靠的贡献,请包括精通正则表达式,因为我想我们大多数人都知道的原因……有些人还会说regex可以被认为是一种语言。此外,它在广泛的语言中的有用性使其非常宝贵。


C#

c# to the Point by Hanspeter Mössenböck。在仅仅200页的书中,他以惊人的深度解释了c#,专注于基本概念和简洁的例子,而不是挥手和Visual Studio截图。

有关特定语言特性的更多信息,请查看c#语言规范ECMA-334。

由微软的Krzysztof Cwalina和Brad Abrams合著的《框架设计指南》一书,对。net库背后的主要设计决策提供了进一步的见解。


Haskell:

奥赖利书:

《Real World Haskell》,一本关于Haskell的教程导向型书籍,在线和印刷版均可获得。

我最喜欢的一般的,不那么学术性的在线教程:

Haskell wikibook包含了所有优秀的Haskell教程。(例如,本教程将帮助您详细设置Haskell发行版和运行示例程序。) 学习Haskell for Great Good,在Why's辛酸指南Ruby的精神,但更重要的是。 在48小时内给自己写一份计划。让你的手脏学习Haskell与一个真正的项目。

关于Haskell函数式编程的书籍:

Lambda演算,组合子,更理论化,但以非常实际的方式:Davie的《使用Haskell的函数式编程系统导论》 懒惰和程序正确性,函数式思维:伯德使用Haskell的函数式编程导论


Ruby

由Sang Shin提供的免费Ruby on Rails在线培训课程还不错。它也有相当数量的课程中每个主题的进一步阅读链接


Common Lisp

要获得CL的良好参考,请参阅Common Lisp the Language, 2nd Edition


C - The C Programming Language - Obviously I had to reference K&R, one of the best programming books out there full stop. C++ - Accelerated C++ - This clear, well written introduction to C++ goes straight to using the STL and gives nice, clear, practical examples. Lives up to its name. C# - Pro C# 2008 and the .NET 3.5 Platform - Bit of a mouthful but wonderfully written and huge depth. F# - Expert F# - Designed to take experienced programmers from zero to expert in F#. Very well written, one of the author's invented F# so you can't go far wrong! Scheme - The Little Schemer - Really unique approach to teaching a programming language done really well. Ruby - Programming Ruby - Affectionately known as the 'pick axe' book, this is THE defacto introduction to Ruby. Very well written, clear and detailed.


c#:

通过c#实现CLR

c#深度


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


Javascript:

Javascript:权威指南 专业Javascript技术

PHP:

PHP对象、模式和实践

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

面向对象软件结构(一本圣经,也许Head First OO会很好,我不知道) Head First设计模式(我非常喜欢这本书) 设计模式

重构:

重构:改进现有代码的设计 有效地使用遗留代码

SQL / MySQL:

Joe Celko: SQL中的树和层次结构(仅针对特定主题,但我发现它很有趣) 箴MySQL


c# - Dot Net Book零


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


对于目标C:

可可编程Mac OSX -第三版 亚伦Hillegass Addison Wesley出版

Objective C编程, Stephen G Kochan,


REALbasic:

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

非常基础,但却是开始学习的好方法


对于Python,我建议使用“A Byte of Python”。

披露:我是这本书的作者,但用户在主页和这本书上的反馈应该是不言自明的:)


Head First Javascript对于初学者来说是一个很好的JS入门教程——它用JS语法创造性地解释了基本的编程概念。Head First系列是基于帮助你学习和记忆新信息的研究技术。他们让你做很多练习和谜题,这可能看起来很幼稚,但真的有助于巩固你大脑中的知识。

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

仅从这本书来看,我想说Head First系列是第一次学习一些东西的好方法,但它们像故事一样的格式很难用作参考。


哈尔·富尔顿的《红宝石之路

Ruby Way封面http://rubyhacker.com/trw2cover.gif


Common Lisp

我会把Peter Seibel的《Practical Common Lisp》添加到Lisp列表中。它特别擅长提供专题示例(MP3解析、喊话服务器、HTML编译器)。

http://gigamonkeys.com/book/


我想加上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/上找到


Java

Java简论。

这个名字有点用词不当,因为它很厚,但它确实有学习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/上找到。正如书的封底所提到的,这本书是面向那些已经在另一种语言中有一些编程经验的人。


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


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

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

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

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


Ruby中的设计模式:

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


Erlang

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


真不敢相信居然没有人提到Perl最佳实践。还有一个推特feed每天发送一个PBP。

我从Robert的Perl教程(我推荐这本教程)中学习了Perl,但它自1999年以来就没有更新过。更新的推荐教程是Steve's Perl tutorial。

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


C:《C语言编程》,Stephen G. Kochan,开发者库。

有条理,清晰,精致,漂亮。


Java

Java笔记-非常整洁的新手Java程序员


闲聊

法罗的例子 海边的书


C

k·n·金在他的个人主页上有一份推荐C类书籍的清单:

C字谜书(修订版) C:参考手册,第五版 C的释放 C陷阱与陷阱 C语言编程专家


核心Java卷1和2。

作者:凯·s·霍斯特曼,加里·康奈尔

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


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


系统:

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

Lisp:

Let /


考虑到最近的发展,我认为有必要把最近大学和私人公司提供的免费在线课程包括在内。new boston是一个我多年来一直使用多种语言的教程网站,非常适合初学者。

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/


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

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