不久前,我是一名初学者,试图找到我想要学习的语言的好书/教程 . 即使如此,有时候我需要为我正在进行的新项目相对快速地学习语言 . 这篇文章的重点是记录这些语言的一些最佳教程和书籍 . 我将以我能找到的最好的列表开始列表,但希望你们在那里可以帮助提供更好的建议/新语言 . 这是我发现的:
由于现在可以编辑维基,我可以控制社区 . 如果您有任何建议,请将其放在本节中 . 我还决定添加一节作为更好的程序员书籍和在线参考 . 再次欢迎所有建议 .
一般编程
Online Tutorials
Foundations of Programming作者:Karl Seguin - 来自Codebetter,它以C#为基础,但这些想法全面实现,但实际上可以发布这个 .
How to Write Unmaintainable Code - 一本反手册,教您如何以最不可能的方式编写代码 . 如果很多这些建议没有如此真实,那将会很有趣 .
The Programming Section of Wiki Books - Jim Robert建议在不同的完成阶段拥有大量关于多种语言的书籍/教程
Just the Basics感受一种语言 .
Books
Code Complete - 这本书不言而喻,它在很多方面都非常出色 .
The Pragmatic Programmer - 与编码器一起工作的下一个最好的事情,教给你他们所知道的一切 .
Mastering Regular Expressions - 正则表达式是每个程序员工具箱中必不可少的工具 . Patrick Lozzi推荐的这本书是学习它们能力的好方法 .
C,C++和Java中的算法 - 如果您发现Knuth的书籍有点过于深入,那么学习所有经典算法的好方法 .
C.
Online Tutorials
This教程看起来非常简洁和深入,看了看材料,看起来相当不错 . 不知道对新程序员有多友好 .
Books
K&R C - 肯定是经典之作 . 可能有人认为所有程序员都应该阅读它 .
C Primer Plus - Imran建议作为初学程序员的终极C书 .
C: A Reference Manual - Patrick Lozzi推荐的精彩参考资料 .
C.
Online Tutorials
cplusplus.com上的教程似乎是最完整的 . 我找到了另一个教程here但它不包括像多态这样的主题,我认为这是必不可少的 . 如果您来自C,this教程可能是最适合您的 .
另一个有用的教程,C++ Annotation . 在Ubuntu系列中,您可以通过从Synaptic安装 c++-annotation
软件包获得多种格式的电子书(pdf,txt,Postscript和LaTex)(已安装的软件包可在 /usr/share/doc/c++-annotation/
中找到 .
Books
The C++ Programming Language - 对任何C程序员都至关重要 .
C++ Primer Plus - Orginally添加了一个拼写错误,但亚马逊的评论非常好,我会留在这里,直到有人说这是一个哑弹 .
Effective C++ - 改进C程序的方法 .
More Effective C++ - 继续有效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 with extra bits bolted on",事实上你直接潜入并开始早期使用STL .
Forth
Books
FORTH,文本和参考 . Mahlon G. Kelly和Nicholas Spies . ISBN 0-13-326349-5 / ISBN 0-13-326331-2 . 1986 Prentice-Hall . Leo Brodie的书很好但是这本书更好 . 例如,它涵盖了深入定义单词和解释器 .
Java
Online Tutorials
Sun's Java Tutorials - 一个看起来很糟糕的官方教程,但我不是一个java专家 . 你们知道更好的吗?
Books
Head First Java - Patrick Lozzi推荐的精彩介绍性文章 .
Effective Java - 由pek推荐为一个很好的中间文本 .
Core Java Volume 1和Core Java Volume 2 - FreeMemory建议使用一些最好的java引用 .
Java Concurrency in Practice - MDC推荐作为Java中并发编程的优秀资源 .
Python
Online Tutorials
Python.org - 这种语言的在线文档非常好 . 如果你知道更好,请告诉我 .
Dive Into Python - Nickola建议 . 似乎是一本在线的蟒蛇书 .
Perl
Online Tutorials
perldoc perl - 这就是我个人开始使用这种语言的方式,我认为你无法击败它 .
Books
Learning Perl - 介绍自己语言的好方法 .
Programming Perl - 被称为Perl Bible . 任何严肃的perl程序员的基本参考 .
Perl Cookbook - 一本很好的书,可以解决许多常见问题 .
Modern Perl Programming - 最新发布,包含现代技术和工具的最新智慧,包括Moose和DBIx :: Class .
Ruby
Online Tutorials
亚当米卡建议Why's (Poignant) Guide to Ruby,但看了之后,我不知道是不是大家 . 找到this网站,它似乎为Ruby on Rails提供了几个教程 .
Books
Programming Ruby - 建议作为所有东西红宝石的一个很好的参考 .
Visual Basic
Online Tutorials
找到this网站似乎致力于视觉基础教程 . 不知道他们有多好 .
PHP
Online Tutorials
The main PHP site - 一个简单的教程,允许每个页面的用户评论,我真的很喜欢 . PHPFreaks Tutorials - 各种难度长度的各种教程 .
Quakenet/PHP tutorials - 将从头开始指导您的PHP教程 .
JavaScript
Online Tutorials
找到一个体面的教程here面向非程序员 . 找到了另一个更先进的here . 尼古拉建议A reintroduction to javascript在这里读得很好 .
Books
Head first JavaScript
JavaScript: The Good Parts(作者的Google Tech Talk video)
C#
Online Tutorials
C# Station Tutorial - 似乎是我挖出来的一个体面的教程,但我不是C#家伙 .
C# Language Specification - 由tamberg建议 . 不是一个教程,而是对C#所有元素的一个很好的参考
Books
C# to the point - 由tamberg建议作为一个简短的文字,以惊人的深度解释语言
ocaml
Books
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
哈斯克尔
Online Tutorials
nlucaroni建议如下:
Explore functional programming with Haskell
Books
Real World Haskell
Total Functional Programming
LISP / Scheme
Books
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编程方法
你呢?我完全不喜欢那里的一些吗?我遗漏了你最喜欢的语言吗?我将采纳最好的评论并根据建议修改问题 .
30 回答
我知道这看起来很老套,但我不太关心使用在线教程来学习编程语言或平台 . 这些通常只会给你一点点语言的味道 . 要真正学习一门语言,你需要相当于一本“书”,在很多情况下,这意味着一本真正的死树书 .
如果您想学习C,请阅读K&R . 如果你想学习C,请阅读Stroustrup . 如果你想学习Lisp / Scheme,请阅读SICP . 等等 .
如果你不愿意花费超过30美元和几个小时来学习一门语言,你可能不会学习它 .
这些都是非常好的,由学术界撰写,(有些)是书籍(一本未发表的书籍 - 从法语翻译而来,但没有任何问题我最喜欢帮助我的问题 .
ocaml :
Using Understand and unraveling ocaml: practice to theory and vice versa
The Objective Caml System - Official Manual
A Concise Introduction to Objective Caml
Practical Ocaml
Haskell :
Explore functional programming with Haskell
For C# :
对于 C++, ,我建议将Koenig和Moo作为一个开头文本Accelerated C++,尽管我不知道它对于一个绝对的新手会是怎样的 . 它专注于立即使用STL,这使得完成工作变得更容易 .
Haskell :
O'Reilly书:
我最喜欢的一般,较少的学术在线教程:
The Haskell wikibook其中包含了所有优秀的又一个Haskell教程 . (例如,本教程有助于设置Haskell发行版和运行示例程序的细节 . )
Learn you a Haskell for Great Good,本着“为什么讽刺Ruby指南”的精神,更重要的是 .
Write yourself a Scheme in 48 hours . 用真实的项目学习Haskell .
Haskell函数式编程书籍:
Lambda演算,组合者,更理论化,但是以非常实际的方式:Davie's Introduction to Functional Programming Systems Using Haskell
懒惰和程序正确,从功能上思考:Bird's Introduction to Functional Programming Using Haskell
有效的Java是必须的,但我建议首先要熟悉Java以完全理解这些示例 .
Ruby
我要添加Bruce Eckel的编程书籍:
Thinking in Java(印刷版:第4版;第3版 . 在线版:http://www.mindview.net/Books/TIJ/)
思考C(第2版,免费在线提供:http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
一般来说,他的"Books"页面(http://mindview.net/Books/)是一个很好的资源 . 免费提供的书籍也可以在http://www.ibiblio.org/pub/docs/books/eckel/找到
不敢相信没人提到Perl Best Practices . 还有一个Twitter feed每天提供一个PBP .
我从Robert's Perl Tutorial学到了Perl,我推荐它,但它自1999年以来一直没有更新 . 推荐的新教程是Steve's Perl Tutorial .
对于使用Perl进行Web开发,明显的赢家是Catalyst,Catalyst wiki是首发学习点 .
对于Lisp和Scheme(地狱,一般的函数式编程),很少有东西比The Little Schemer和The Seasoned Schemer提供更坚实的基础 . 两者都为Scheme和函数式编程提供了一个非常简单直观的介绍,对于新学生或业余爱好者来说,这比任何像“战争与和平”的非虚构版本更像的典型卷都要简单得多 .
一旦他们超越了Schemer系列,SICP和On Lisp都是很棒的选择 .
看看programming section of wikibooks
其中许多是完全形成的,并且相当多的具有更高级的部分(其具有不同的完成状态)在特定功能上 .
另外,w3 schools有一个很棒的php教程和参考部分
他们的html和css部分也很适合参考 .
C++
由布鲁斯·埃克尔撰写的
b9 C++ Coding Standards由Herb Sutter和Andrei Alexandrescu撰写
第一个适合初学者,第二个需要更高级别的C语言 .
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#的专家 . 写得很好,其中一位作者's invented F# so you can'远远错了!
Scheme - The Little Schemer - 非常独特的教学编程语言方法 .
Ruby - Programming Ruby - 被亲切地称为'pick axe'书,这是对Ruby的事实介绍 . 写得很好,清晰而详细 .
对于Javascript:
Javascript: The Definitive Guide
Pro Javascript Techniques
对于PHP:
对于OO设计和编程,模式:
Object-Oriented Software Construction(一本圣经,也许是Head First OO会很好,我不知道)
Head First Design Patterns(我非常喜欢这本书)
Design Patterns
对于重构:
Refactoring: Improving the Design of Existing Code
Working Effectively with Legacy Code
对于SQL / MySQL:
Joe Celko: Tree and Hierarchies in SQL(仅针对特定主题,但我发现它很有趣)
Pro MySQL
C Primer Plus, 5th Edition - 当我从本书中学习编程时,如果你是我个人最喜欢的书,那么这本书就得到了 . 它具有初学友好书应具备的所有品质:
不承担任何先前的编程风险
阅读愉快(不会像For Dummies那样烦人/
不过分简单化
C#
C# to the Point作者:HanspeterMössenböck . 在200页的篇幅中,他以惊人的深度解释了C#,专注于基础概念和简洁的例子,而不是挥手和Visual Studio截图 .
有关特定语言功能的其他信息,请查看C# language specification ECMA-334 .
Framework Design Guidelines,来自Microsoft的Krzysztof Cwalina和Brad Abrams的书,提供了对.NET库背后的主要设计决策的进一步了解 .
让我们不要忘记Head First Java,它可以被认为是这种语言中必不可少的第一步,也可能是Sun在线教程之后的一步 . 它非常适合简洁地掌握语言,同时增加一些乐趣,作为已经提到的更深入的书籍的垫脚石 .
如果你发现Knuth的书太深入,Sedgewick提供了很好的算法系列,这是必须具备的 . 除了Knuth之外,Sedgewick为这个领域带来了坚实的方法,他在C,C++和Java提供了他的书 . C书可以在C上向后使用,因为他在演讲中没有对这两种语言做出很大的区分 .
无论什么时候我在C上工作,C:A Reference Manual, by Harbison and Steele都随身携带 . 它简洁而高效,同时非常彻底,使它无价(对我而言) .
除了语言之外,如果这个主题要成为参考文献的一部分,我认为由于实际贡献的数量,我认为它正朝着这个方向前进,请包括Mastering Regular Expressions,原因我认为我们大多数人都知道......一些也会说正则表达式本身可以被认为是一种语言 . 此外,它在各种语言中的实用性使其具有无可估量的 Value .
Common Lisp
有关CL的好参考,请查看Common Lisp the Language, 2nd Edition
对于目标C:
适用于Mac OSX的可可编程 - 第三版Aaron Hillegass由Addison Wesley出版
目标C编程,Stephen G Kochan,
Head First Javascript是初学程序员JS的一个很好的介绍 - 它创造性地解释了使用JS语法的基本编程概念 . Head First系列基于研究技术,帮助您学习和记住新信息 . 他们你做了很多可能看起来很少的练习和谜题,但真的有助于巩固你大脑的知识 .
我真正喜欢的一个练习是在他们解释了数据类型之后,他们展示了一条城市街道的图片,并说“标记了你在这张图片中可以找到的所有数据类型” . 所以汽车上的闪光灯是布尔值,商店上的标志是一个字符串,地址是一个数字 . 这帮助我了解了如何将真实信息转化为程序 .
仅基于这本书,我会说Head First系列是一种很好的学习方法 the first time ,但它们的故事式格式会使它们很难用作引用 .
哈尔富尔顿The Ruby Way
The Ruby Way cover http://rubyhacker.com/trw2cover.gif
Python:http://diveintopython.net/
JS:a re-introduction to JavaScript是程序员的语言介绍(不是浏览器细节) . 在浏览器中不知道关于JS的好教程 .
顺便说一句好主意!
鉴于最近的发展,我认为重要的是包括最近大学和私营公司提供的免费在线课程 . 新波士顿是一个教程网站,我多年来一直用于多种语言,非常适合初学者 .
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/
我第二次克里斯托弗推荐K&R为C.
我发现“Essential Actionscript 2.0”一书对AS编码非常有用(我相信现在有一个AS3版本) .
我发现在某些情况下,拥有真正的书籍比在线参考更有帮助 . 虽然不太确定为什么 .
嗯,我不知道我是否会说在线资料毫无用处,但我确实同意书中有一些东西 . 也许他们的写作更好,或者可能是因为花费超过50美元而让你更倾向于研究这些材料 .
无论哪种方式,我同意书籍应成为这个问题的一部分 . 如果有人对语言书籍有任何建议,我会用最好的建议编辑帖子 .
您为Ruby列出的引用是针对Ruby on Rails的 . 虽然仍然在内心深处,但对于想要学习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,我 highly 推荐Core Java . 它已经发现它是我读过的关于Java的最佳参考之一 .
我知道这是来自here的交叉帖子......但是,我认为最好的Java书之一是Brian Goetz的Java Concurrency in Practice . 一本相当高级的书 - 但是,它会很好地适用于您的并发代码和Java开发 .
学习Grails的事实标准是Jason Rudolph的优秀成绩Getting Started with Grails . 你可以辩论它是一个在线教程还是一本书,因为它可以购买,但可以免费下载 . 还有更多"real"书出版,我推荐Beginning Groovy和Grails .