5 моих любимых концептуальных книг по освоению нового языка программирования.

Для любого начинающего специалиста по данным, разработчика или инженера книги - невероятный ресурс, на котором можно учиться. Часто информация в Интернете может быть неверной или плохо задокументированной, потому что человек, объясняющий вам вещи, не обязательно является великим писателем, несмотря на то, насколько хороши они могут быть в программировании. Одна вещь, которая мне очень нравится, - это когда программирование и обучение могут быть интересны, если заниматься чем-то, что вам нравится. Мне нравится вспоминать свою сверстницу, у которой было сильное медицинское образование и которая баловала себя наукой о данных. Все ее проекты, казалось, коррелировали с этим интересом, и это действительно выделяло ее проекты, поскольку у нее было страсть и удовольствие в обсуждении тем, которые она исследовала.

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

№1: Изучите Python трудным путем

Зед Шоу

Python стал еще более популярным в последние годы с развитием машинного обучения. На это есть веская причина, поскольку Python и C образуют довольно эффективную комбинацию, когда дело доходит до науки о данных. Если вы хотите изучить Python, сейчас у вас есть шанс, и «Learn Python The Hard Way» - лучший способ это сделать.

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

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

Очень простое введение в ужасающе красивый мир компьютеров и кода.

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

№2: Язык программирования C ++

Бьярне Страуструп

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

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

C ++ по-прежнему остается очень широко используемым языком. В большинстве случаев C ++ используется для одного из следующих:

  • Разработка приложения
  • Разработка игр
  • Геномика!

Но есть еще много вариантов использования C ++, которых нет в этом списке, и, насколько мне известно, нет ничего плохого в использовании языка практически для любого приложения. Однако имейте в виду, что C ++ будет немного сложнее изучить, чем более простой язык сценариев, такой как Python или Java-script, и больше похож на что-то вроде Java SE. Конечно, можно изучить C ++ в качестве первого знакомства с программированием, поскольку C ++ был первым языком программирования, который я выучил около 12 лет назад. Я думаю, что причина этого заключалась в том, что в то время я действительно не знал об удобстве использования языков сценариев.

Я бы сказал, какое бы практическое применение вы ни использовали для языка программирования, это должно быть единственным фактором, определяющим, к каким языкам вы подойдете. Например, я в основном работаю на Python, Julia, R и Common Lisp. Три из них являются функциональными языками, и половина из них в основном предназначена для статистики. Время от времени я пишу C или даже ассемблер, но обычно эти языки мне не нужны из-за того, что я делаю. Итак, что вам нужно сделать, так это выяснить, что именно вы хотите запрограммировать, и изучить интересующие вас языки, которые широко используются для этой операции.

№3: Common LISP: мягкое введение в символьные вычисления

Дэвид С. Турецски

На мгновение остановившись на функциональном повороте, я представляю вам Common Lisp: мягкое введение в символьные вычисления. Эту книгу я очень дорожу своим сердцем, поскольку именно ее я использовал для изучения Лиспа. Лисп был одним из тех языков, которые я всегда хотел выучить, но до середины прошлого года так и не успел научиться.

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

Я бы сказал, что независимо от того, что вы хотите делать со своими программами, вы должны хотя бы немного быть знакомы с Common Lisp - или каким-либо вариантом Lisp, таким как Clojure или Scheme. Почему? Что ж, синтаксис и выразительная типизация Лиспа сделают вас лучшим программистом. Это также познакомит вас с тем, как работают методы с нижнего уровня. Есть причина, по которой всем нравится создавать интерпретаторы Лиспа, и никому не нравится создавать интерпретаторы Си.

Lisp обрабатывается естественным образом.

Другими словами, Lisp имеет гораздо более простой синтаксис и выражения для понимания процессора с гораздо меньшим количеством перемещений памяти и CMP / JNE в ассемблере для этого. В результате интерпретация Lisp с помощью Assembly происходит довольно естественно по сравнению с большинством других языков.

№4: C by Dissection

Айра Поль и Келли

Давайте посмотрим правде в глаза: C - довольно сложный уровень для изучения и программирования. Особенно для начинающего программиста изучение C может быть сложной задачей, для выполнения которой потребуется много работы. В то же время, однако, замены языку Си нет. Язык C настолько укоренился во всей вычислительной экосистеме, что мы никогда не избавимся от него, поэтому мы могли бы его изучить.

Что мне понравилось в этой книге, так это то, что она берет каждую отдельную часть и объясняет, как они сочетаются друг с другом, в каком порядке они идут вместе, и, что наиболее важно:

Почему?

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

№5: Java-скрипт и JQuery

Джон Дакетт

Сделав полный поворот на сто восемьдесят градусов, позвольте мне познакомить вас с Javascript & JQuery от Джона Дакетта. В этой книге замечательно то, что она использует довольно простой и относительно простой подход к написанию удобного для новичков языка сценариев. Java-скрипт как язык очень похож на Python и является самым большим инструментом в области веб-разработки, который у нас есть сегодня.

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

Заключение

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