Языковые книги / учебники для популярных языков

249

Не так давно я был начинающим программистом, пытаясь найти хорошие книги / учебные пособия по языкам, которые я хотел выучить. Тем не менее, бывают моменты, когда мне нужно относительно быстро выбрать язык для нового проекта, над которым я работаю. Смысл этого поста в том, чтобы документировать некоторые из лучших учебников и книг для этих языков. Я начну список с лучшего, что смогу найти, но надеюсь, что вы, ребята, сможете помочь с лучшими предложениями / новыми языками. Вот что я нашел:

Поскольку теперь это редактируемая вики, я передаю контроль сообществу. Если у вас есть предложение, пожалуйста, поместите его в этом разделе. Я решил также добавить раздел для общих книг для программистов и онлайн-справочников. Еще раз, все рекомендации приветствуются.

Общее программирование

Онлайновые учебные пособия
Основы программирования Карл Сегин - Из Codebetter, основанного на C #, но идеи звучат правдоподобно, не могу поверить, что никто еще не опубликовал это на самом деле.
Как писать не поддерживаемый код - это анти-руководство, которое научит вас, как писать код максимально ненадежным способом. Было бы забавно, если бы многие из этих предложений не звучали так правдоподобно.
Секция программирования вики-книг - предложенная Джимом Робертом как имеющая большое количество книг / учебных пособий по нескольким языкам на разных стадиях завершения.
Просто основы Чтобы почувствовать язык.

Книжный
кодекс завершен - эта книга, само собой разумеется, поистине гениальна во многих отношениях.
Прагматичный программист - следующая лучшая вещь для работы с мастером кодирования, обучая вас всему, что они знают.
Освоение регулярных выражений - Регулярные выражения являются важным инструментом в наборе инструментов каждого программиста. Эта книга, рекомендованная Патриком Лоцци, является отличным способом узнать, на что они способны.
Алгоритмы на C , C ++ и Java - отличный способ изучить все классические алгоритмы, если вы найдете книги Кнута слишком глубокими.

С

Онлайновые учебные пособия
Этот учебник выглядит достаточно лаконичным и подробным, просматривает материал и выглядит довольно хорошо. Не уверен, насколько дружелюбно это будет для новых программистов.
Книги
K & R C - это классика точно. Можно утверждать, что все программисты должны читать это.
C Primer Plus - предложенный Имраном как лучшая книга на C для начинающих программистов.
C: Справочное руководство - отличный справочник, рекомендованный Патриком Лоцци.

C ++

Онлайновые
учебные пособия Учебное пособие на cplusplus.com представляется наиболее полным. Я нашел другое руководство здесь, но оно не включает такие темы, как полиморфизм, который я считаю необходимым. Если вы пришли из C, этот учебник может быть лучшим для вас.

Еще одно полезное руководство, аннотация C ++ . В семействе Ubuntu вы можете получить книгу в нескольких форматах (pdf, txt, Postscript и LaTex), установив c++-annotationпакет из Synaptic (установленный пакет можно найти в /usr/share/doc/c++-annotation/.

Книги
Язык программирования C ++ - критически важный для любого программиста C ++.
C ++ Primer Plus - изначально добавлен как опечатка, но обзоры amazon настолько хороши, что я буду держать его здесь, пока кто-то не скажет, что это глупость.
Эффективный C ++ - способы улучшить ваши программы на C ++.
Более эффективный C ++ - продолжение Effective C ++.
Эффективный STL - способы улучшить использование STL.
Мышление на С ++ - отличная книга, оба тома. Автор Брюс Экель и Чак Эллисон.
Программирование: принципы и практика использования C ++ - введение Страуструпа в C ++.
Ускоренный C ++ - Энди Кениг и Барбара Му - отличное введение в C ++, в котором C ++ не рассматривается как «C с дополнительными битами», на самом деле вы сразу же погрузитесь в него и начнете использовать STL на ранних этапах.

вперед

Книги
FORTH, текстовые и справочные. Махлон Дж. Келли и Николас Шпионы. ISBN 0-13-326349-5 / ISBN 0-13-326331-2. 1986 Прентис-Холл. Книги Лео Броди хороши, но эта книга еще лучше. Например, он охватывает определение слов и переводчика в глубине.

Ява

Онлайн- уроки
Sun Java- уроки - официальный урок, который кажется вам интересным, но я не являюсь экспертом по Java. Ребята, вы знаете какие-нибудь лучшие?
Книги
Head First Java - Рекомендуется в качестве отличного вводного текста Патрика Лоцци.
Эффективная Java - рекомендуется pek как отличный промежуточный текст.
Core Java Volume 1 и Core Java Volume 2 - предложены FreeMemory как одни из лучших доступных ссылок на Java.
Java Concurrency in Practice - рекомендуется MDC как отличный ресурс для параллельного программирования на Java.

Язык программирования Java

питон

Онлайн-
уроки Python.org - онлайн-документация для этого языка довольно хорошая. Если вы знаете что-нибудь лучше, дайте мне знать.
Погружение в Python - предложено Николой. Кажется, это книга о питоне онлайн.

Perl

Онлайн-
уроки perldoc perl - это то, как я лично начал работать с языком, и я не думаю, что вы сможете победить его.
Книги для
изучения Perl - отличный способ познакомить себя с языком.
Программирование на Perl - в значительной степени упоминается как Библия Perl. Основные ссылки для любого серьезного программиста на Perl.
Perl Cookbook - отличная книга, в которой есть ответы на многие распространенные проблемы.
Modern Perl Programming - недавно выпущенный, содержит новейшие знания современных технологий и инструментов, включая Moose и DBIx :: Class.

Рубин

Онлайновые учебные пособия
Адам Мика предложил Руководство по (Ruby) Ruby, но, взглянув на него, я не знаю, подходит ли оно всем. Нашел этот сайт, который предлагает несколько уроков по Ruby on Rails.
Книги по
программированию на Ruby - предлагаются в качестве отличного справочника по всем рубиновым вещам.

Visual Basic

Онлайновые учебные пособия
Нашли этот сайт, который, кажется, посвящает себя базовым учебным пособиям. Не уверен, насколько они хороши.

PHP

Онлайн-учебники
Основной сайт PHP - простое учебное пособие, которое позволяет оставлять комментарии пользователей для каждой страницы, что мне действительно нравится. Учебные пособия по PHPFreaks - различные учебные пособия различной сложности.
Учебники по Quakenet / PHP - учебник по PHP, который поможет вам с нуля.

JavaScript

Онлайн уроки
Найдено порядочный учебник здесь ориентирована на непрограммистов. Нашел еще один более продвинутый здесь . Николай предложил реинтеграцию в javascript как хорошее прочтение здесь.

Книги,
прежде всего JavaScript
JavaScript: The Good Parts ( автор видео Google Tech Talk )

C #

Онлайн-уроки
C # Station Tutorial - мне кажется, это хороший урок, который я откопал, но я не C # парень.
Спецификация языка C # - предложена tamberg. Не совсем учебник, но отличный справочник по всем элементам C #
Books
C # в точку - предложенный Тамбергом в виде короткого текста, который объясняет язык с поразительной глубиной

OCaml

Книги
nlucaroni предлагает следующее:
OCaml для ученых. Введение в ocaml.
Использование Понимание и изучение ocaml: практика к теории и наоборот.
Разработка приложений с использованием Ocaml - O'Reilly.
Система Objective Caml - Официальное руководство

Haskell

Онлайн-
уроки nlucaroni предлагает следующее:
Изучите функциональное программирование с помощью Haskell
Books
Реальный мир Haskell
Total Functional Programming

LISP / Схемы

Книги
wfarr предложили следующее:
Маленький Схемер - Введение в Схему и функциональное программирование в целом.
Опытный Схемер - Продолжение Литтл-Схемера.
Структура и интерпретация компьютерных программ - полная книга по Лиспу (также доступна онлайн ).
Практический Common Lisp - хорошее введение в Lisp с несколькими примерами практического использования.
На Лиспе - Расширенные темы на Лиспе
Как разрабатывать программы - Введение в вычислительные и программные
парадигмы программирования на искусственном интеллекте: тематические исследования в Common Lisp - подход к высококачественному программированию на Лиспе

Как насчет вас, ребята? Я полностью на некоторых? Я пропустил твой любимый язык? Я возьму лучшие комментарии и изменю вопрос с предложениями.

Craig H
источник

Ответы:

33

Я знаю, что это покажется старомодным, но я не особо думаю об использовании онлайн-учебников для изучения языков программирования или платформ. Как правило, они дают вам лишь небольшой вкус к языку. Чтобы по-настоящему выучить язык, вам нужен эквивалент «книги», а во многих случаях это означает настоящую книгу «мертвого дерева».

Если вы хотите изучать C, читайте K & R. Если вы хотите изучать C ++, читайте Stroustrup. Если вы хотите изучить Lisp / Scheme, прочитайте SICP. И т.п.

Если вы не готовы потратить более 30 долларов и несколько часов на изучение языка, вы, вероятно, не собираетесь его изучать.

Кристофер Джонсон
источник
Я согласен с тем, что если вы действительно хотите глубоко изучить язык, книга, как правило, является подходящим вариантом. Тем не менее, я думаю, что книга Страуструпа довольно бедна с педагогической точки зрения. Я бы высказал ту же критику (даже более настойчиво) в книге GoF.
Донал
Мне не очень нравится книга Страуструпа, я предпочитаю «Мышление на С ++» Брюса Экеля. И я предпочитаю электронные книги, потому что я могу Ctrl + F. Это спасло мне жизнь, когда я сделал Алгоритмы, которые я изучаю (с книгой Введение в алгоритмы)
Тиан Бо,
9
Я ничего не имею против электронных книг. Дело в том, что это должна быть настоящая «книга», написанная экспертом и проверенная экспертами, а не какое-то бесплатное учебное пособие на 5000 слов, которое вы где-то нашли в Интернете, написанное кем-то, кто не знает намного больше, чем вы делать.
Кристофер Джонсон,
20

Все они действительно хороши, написаны научным сообществом и (некоторые) являются книгами (например, неопубликованная или неопубликованная книга - переведенная с французского, но никаких проблем я не нашел). У меня были мои любимые, которые помогли мне больше всего.

ocaml:

  1. * Введение в ocaml
  2. Использование Понимание и раскрытие ocaml: практика к теории и наоборот
  3. * Разработка приложений с использованием Ocaml - O'Reilly
  4. Система Objective Caml - Официальное руководство
  5. Краткое введение в объектив Caml
  6. Практичный Ocaml

Хаскель:

  1. Изучите функциональное программирование с помощью Haskell
  2. * Real World Haskell
  3. * Общее функциональное программирование
оборота нлукарони
источник
8

Для C ++ я предлагаю Accelerated C ++ от Koenig и Moo в качестве начального текста, хотя я не знаю, как это было бы для абсолютного новичка. Он фокусируется на использовании STL сразу, что значительно облегчает задачу.

Марк Креницкий
источник
Но я думаю, что ускоренный C ++ не для начинающих, я думаю, что C ++ Primer Plus (5-е издание) предназначен для начинающих.
Ибн Саид
7

Хаскель :

Книга О'Рейли:

  1. Real World Haskell , отличная учебная книга по Haskell, доступная в Интернете и в печатном виде.

Мои любимые общие, менее академические онлайн-уроки:

  1. Haskell Wikibook, который содержит все отличные еще один учебник Haskell. (Это руководство помогает, например, настроить дистрибутив Haskell и запустить примеры программ.)
  2. Выучите у вас Haskell за большое добро , в духе «Зачем нужно пронзительное руководство по Ruby», но более конкретно.
  3. Напишите себе схему за 48 часов . Запачкайте руки изучением Haskell с реальным проектом.

Книги по функциональному программированию на Haskell:

  1. Лямбда-исчисление, комбинаторы, более теоретические, но весьма приземленные: Введение Дэви в системы функционального программирования с использованием Haskell
  2. Лень и правильность программирования, функциональное мышление: введение Берда в функциональное программирование с использованием Haskell
Джаред Апдайк
источник
5

Эффективная Java обязательна, но я рекомендую сначала освоиться с Java, чтобы полностью понять примеры.

пекин
источник
4

Я бы добавил книги по программированию Брюса Экеля:

В общем, его страница "Книги" ( http://mindview.net/Books/ ) является хорошим ресурсом. Бесплатные книги также можно найти по адресу http://www.ibiblio.org/pub/docs/books/eckel/.

JJarava
источник
4

Не могу поверить, что никто не упомянул Perl Best Practices . Существует также канал Twitter, который обеспечивает один PBP в день.

Я изучил Perl из учебника Роберта по Perl , который я рекомендую, но он не обновлялся с 1999 года. Более новым рекомендуемым учебником является учебник Steve по Perl .

Для веб-разработки с Perl явным победителем является Catalyst , а вики Catalyst является отправной точкой для обучения.

Дан Дакалеску
источник
3

Для Lisp и Scheme (черт, функциональное программирование в целом) есть несколько вещей, которые обеспечивают более прочную основу, чем The Little Schemer и The Seasoned Schemer . Оба предоставляют очень простое и интуитивно понятное введение как в Схему, так и в функциональное программирование, которое оказывается гораздо проще для новых студентов или любителей, чем любой из типичных томов, которые стираются, как научная версия « Войны и мира» .

После того, как они вышли за пределы серии Schemer, SICP и On Lisp стали фантастическим выбором.

wfarr
источник
3

проверить раздел программирования викибук

Многие из них полностью сформированы, и у некоторых есть более продвинутые разделы (которые находятся в различных состояниях завершения) по определенной функциональности.

Кроме того, в школах W3 есть отличный учебник и справочный раздел по PHP.

их HTML и CSS разделы также хороши для справки.

Jiaaro
источник
3
  • C - Язык программирования C - Очевидно, мне пришлось упомянуть K & R, одну из лучших книг по программированию.
  • C ++ - Ускоренный C ++ - Это ясное, хорошо написанное введение в C ++ прямо касается использования STL и дает хорошие, ясные, практические примеры. Соответствует своему названию.
  • C # - Pro C # 2008 и платформа .NET 3.5 - немного глотка, но прекрасно написанного и огромной глубины.
  • F # - Эксперт F # - Предназначен для перехода опытных программистов с нуля к эксперту по F #. Очень хорошо написано, один из изобретенных автором F #, так что вы не ошибетесь!
  • Scheme - The Little Schemer - Действительно уникальный подход к обучению языку программирования, который действительно хорош .
  • Ruby - программирование Ruby - ласково известная как книга «кирка», это введение в Ruby по умолчанию. Очень хорошо написано, понятно и подробно.
СМЛ
источник
3

Для Javascript:

Для PHP:

Для ОО дизайна и программирования, шаблоны:

Для рефакторинга:

Для SQL / MySQL:

CED-ле-Pingouin
источник
2

C Primer Plus, 5-е издание - книга C, которую можно получить, если вы изучаете C без какого-либо опыта программирования. Это мой личный фаворит, поскольку я научился программировать из этой книги. Он обладает всеми качествами, которые должна иметь книга, удобная для начинающих:

  • Не предполагает какого-либо предварительного воздействия на программирование
  • Приятно читать (не становясь раздражающим, как для чайников /
  • Не упрощает
Имран
источник
2

Давайте не будем забывать о Head First Java , которую можно считать первым важным шагом на этом языке или, может быть, шагом после онлайн-уроков Sun. Это отлично подходит для краткого понимания языка, добавляя при этом немного веселья, служа ступенькой для более углубленных уже упомянутых книг.

Седжвик предлагает отличные серии по Алгоритмам, которые просто необходимы, если вы найдете книги Кнута слишком глубокими. Помимо всего прочего, Седжвик предлагает солидный подход в этой области и предлагает свои книги на C , C ++ и Java . Книги по С ++ могут быть использованы задом наперед на Си, поскольку он не проводит большого различия между двумя языками в своей презентации.

Всякий раз, когда я работаю над C, C: A Справочное руководство, созданное Харбисоном и Стилом , сопровождает меня повсюду. Это сжато и эффективно, в то время как чрезвычайно тщательно, делая это бесценным (для меня так или иначе).

Не говоря уже о языках, и если этот поток станет переходом к ссылкам, в которых, как мне кажется, он движется именно так, из-за большого количества внушительных вкладов, пожалуйста, включите освоение регулярных выражений , по причинам, которые, как я думаю, большинство из нас знают ... Некоторые также сказали бы, что регулярное выражение можно считать языком само по себе. Кроме того, его полезность для широкого спектра языков делает его бесценным.

Патрик Лоз
источник
2

Для цели C:

Программирование какао для Mac OSX - третье издание Aaron Hillegass Опубликовано Addison Wesley

Программирование в Цели С, Стивен Г. Кочан,

stevechol
источник
2

Head First Javascript - хорошее введение в JS для начинающих программистов - оно творчески объясняет основные концепции программирования с использованием синтаксиса JS. Серия Head First основана на изученных методах, которые помогут вам узнать и запомнить новую информацию. Они заставляют вас делать много упражнений и головоломок, которые могут показаться несовершеннолетними, но на самом деле помогают закрепить знания в вашем мозгу.

Одно из упражнений, которое мне действительно понравилось, было после того, как они объяснили типы данных, они показали изображение городской улицы и сказали «пометить все типы данных, которые вы можете найти на этом рисунке». Таким образом, указатель на автомобиль - логическое значение, знак магазина - строка, а адрес - число. Это помогло мне понять, как перевести реальную информацию в программу.

Основываясь только на этой книге, я бы сказал, что серия Head First - отличный способ научиться чему-то в первый раз , но подобный им сюжетный формат затруднит их использование в качестве ссылок.

Натан Лонг
источник
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/

Шики
источник
1

Я вторая рекомендация Кристофера K & R для C.

Я нашел книгу "Essential Actionscript 2.0" весьма полезной для кодирования AS (я полагаю, есть версия для AS3).

Я обнаружил, что в некоторых случаях наличие реальных книг для просмотра более полезно, чем онлайн-справочник. Не совсем уверен, почему, хотя.

Herms
источник
1

хм, я не знаю, скажу ли я, что онлайн-материалы бесполезны, но я согласен, что в книгах есть что-то. Может быть, они лучше написаны, или, возможно, именно акт раздвоения более 50 долларов делает вас более склонными к изучению материала.

В любом случае, я согласен, что книги должны быть частью этого вопроса. Если у кого-то есть какие-либо предложения для книг по языкам, я отредактирую пост с лучшими предложениями.

Крейг Н
источник
1

Ссылка, которую вы перечислили для Ruby, относится к Ruby on Rails. Хотя он по-прежнему глубоко в рубине, это определенно не место для тех, кто хочет изучать Ruby.

Для учебных пособий по Ruby я бы предложил «Путеводитель по Ruby» как отличную отправную точку для всех, кто интересуется языком.

Если вы хотите получить более подробную информацию, я бы порекомендовал книгу « Программирование на Ruby» , которая стала стандартом для всех вещей Ruby. В настоящее время пишется третье издание, в котором рассказывается о возможностях Ruby 1.9, так что я бы подождал некоторое время, если кто-нибудь захочет купить эту книгу.

Адам Мика
источник
Почему книга хороша, но маленькие истории слишком глупы. Они раздражали меня, не помогли мне.
Рэйн
1

Для Java я настоятельно рекомендую Core Java . Это большой том (или два больших тома), но я считаю, что это одна из лучших ссылок на Java, которую я читал.

Свободная память
источник
1

Я знаю, что это перекрестный пост отсюда ... но, я думаю, одна из лучших книг по Java - «Параллелизм Java на практике » Брайана Гетца. Это довольно продвинутая книга, но она хорошо подойдет для вашего параллельного кода и разработки Java в целом.

Мэтт Каммингс
источник
1

Стандарт де-факто для изучения Grails - это превосходное начало работы с Grails от Джейсона Рудольфа. Вы можете обсудить, является ли это онлайн-учебник или книга, так как она может быть приобретена, но доступна для бесплатной загрузки. Публикуется больше «настоящих» книг, и я рекомендую Beginning Groovy и Grails.

По восточному времени
источник
1

C #

C # в точку Ханспетер Мёссенбок. Всего на 200 страницах он объясняет C # с поразительной глубиной, сосредотачиваясь на базовых концепциях и кратких примерах, а не на размахивании руками и скриншотах Visual Studio.

Для получения дополнительной информации о конкретных функциях языка, проверьте спецификацию языка C # ECMA-334 .

Руководство по проектированию рамок , книга Кшиштофа Квалины и Брэда Абрамса из Microsoft, дает дополнительное представление об основных решениях по дизайну библиотеки .NET.

Тамберг
источник