Чтение онлайн

ЖАНРЫ

Первые 20 часов. Как быстро научиться… чему угодно
Шрифт:

Просмотр архивов Stack Overflow и Hacker News привел к перегрузке информацией: ее было слишком много, особенно для того, кто не знаком с терминологией. Мне требовалось избавиться от ненужной информации, чтобы получить конкретный совет.

Тут помогла одна тактическая уловка, о которой многие не знают: популярные поисковые машины позволяют ограничить поиск конкретным сайтом, чтобы не просеивать всю сеть. Соответствующая команда в Google выглядит следующим образом:

"search phrase" site: example.com

Замените "search phrase" термином, который нужно найти, а "example.com" — адресом сайта, где вы ищете

этот термин. Кавычки означают поиск точного соответствия указанной фразе. Если опустить кавычки, Google покажет страницы, содержащие все слова из фразы, но не обязательно в указанном порядке.

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

И вот что мне удалось выяснить: опытные создатели интернет-приложений советуют начинать с одного из двух распространенных языков программирования, Ruby или Python. Судя по всему, Ruby и Python относительно легко освоить, они достаточно мощные и служат хорошей основой для важных концепций программирования. Ruby более популярен у программистов, специализирующихся на веб-приложениях, а Python предпочитают ученые, в частности математики, из-за большого количества научных библиотек, позволяющих производить вычисления и строить графики.

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

Познакомившись с несколькими примерами программ, написанных на обоих языках, я решил изучать Ruby. Для меня как для новичка программные строки на Ruby выглядели аккуратными, удобочитаемыми и казались относительно понятными. Поскольку основные понятия и приемы, которые я освою при помощи Ruby, будут применимы к другим языкам, которые возможно, заинтересуют меня впоследствии, то почему бы не сделать процесс начального обучения приятным?

Кроме того, я собираюсь использовать программы и инструменты, которые либо поддерживают, либо требуют Ruby. В частности, Jekyll написан на Ruby, и поэтому изучение Ruby поможет мне решить мою насущную проблему. Аналогичные инструменты существуют и для Python, но мне кажется, что пользоваться ими сложнее.

Выбор среды разработки

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

Библиотеки очень важны потому, что компьютер делает в точности то, что вы ему говорите. Не больше и не меньше.

Это сложно, потому что с точки зрения компьютерной программы существует только код, который вы написали. Как выразился знаменитый физик Карл Саган: «Если вы хотите приготовить яблочный пирог с нуля, вы должны сначала создать Вселенную».

«Вселенная» для вашей программы определяется 1) инструкциями и командами кодовой базы; 2) библиотеками, которые импортирует ваша программа, и 3) системой, в которой выполняется программа. Если код, необходимый для выполнения данной операции, отсутствует в системе, то ваша программа зависнет или выдаст сообщение об ошибке.

Большинство языков программирования включают библиотеки,

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

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

В настоящее время у языка Ruby имеется несколько основных сред разработки интернет-приложений. Самые популярные из них — это Ruby on Rails [9] и Sinatra [10].

Ruby on Rails (ее часто называют просто Ruby) была одной из первых больших сред разработки интернет-приложений, предназначенных для Ruby. Созданная в 2004 году Давидом Хейнемейером Ханссоном, Rails использовалась для создания нескольких популярных приложений компании 37signals [11], одним из владельцев которой был Ханссон. В настоящее время тысячи компаний разработали серьезные интернет-приложения для бизнеса на основе Rails.

Программный каркас Rails основан на «генераторах», встроенных программах, которые в ответ на одну команду генерируют большой объем стандартного кода. Затем стандартный код модифицируется в соответствии с конкретными требованиями программиста. Rails помогает разработчику сэкономить время и создать работоспособное приложение без необходимости писать программу с нуля — при условии, если он знает, что ему нужно.

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

Приложения Sinatra выглядят простыми по сравнению с приложениями Rails. Одна-единственная команда в Rails может сгенерировать больше десяти папок и больше 20 файлов. Приложение Sinatra во многих случаях состоит всего лишь из одного файла. Sinatra не генерирует большой массив кода, который затем может быть удален, а поддерживает простоту проекта, добавляя ровно столько кода, сколько нужно для работы.

Подобно выбору языка программирования, выбор среды разработки определяется в основном личными предпочтениями и характером задачи. Rails больше подходит для крупных проектов, над которыми работают несколько программистов, а Sinatra — для небольших. У этих двух сред разработки много общего, и недавнее исследование на RubySource.com показало, что выбор между ними по большей части определяется субъективными причинами [12].

GitHub — это источник программ с открытым кодом, который используют многие программисты для разработки и поддержки своих проектов. Там легко найти примеры приложений, написанных в Rails и Sinatra, чтобы получить представление о каждой среде разработки, и я потратил еще один час на изучение открытых проектов.

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

Поделиться с друзьями: