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

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

一般编程

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

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


当前回答

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

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

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

其他回答

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

Haskell:

奥赖利书:

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

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

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

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

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

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

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

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

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

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

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

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