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

на главную

Жанры

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

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

И в довершение всего популярность и относительная уязвимость WordPress сделали систему любимой мишенью для хакеров и спамеров. Приблизительно раз в неделю какой-нибудь хакер находит новую уязвимость, а затем использует ее для того,

чтобы заполнить спамом миллионы блогов WordPress. Поддержание безопасности системы и своевременное обновление программного обеспечения — это уже работа в полную смену, особенно если вы поддерживаете несколько сайтов. (Я поддерживал 12 сайтов одновременно и катастрофически не справлялся.)

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

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

Потенциальное решение

Однажды я наткнулся на Jekyll [4], программу управления сайтами, созданную Томом Престоном-Вернером, который известен как основатель социальной сети для программистов GitHub [5]. Система Jekyll предназначена для того, чтобы заменить WordPress, обеспечив простое управление сайтами без затратных запросов.

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

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

Jekyll предлагал многообещающие возможности. Теоретически я мог заменить WordPress просто папкой текстовых файлов на своем компьютере. Мой сайт будет быстрым, как молния, необыкновенно стабильным, и я сэкономлю больше ста часов в год, которые трачу на поддержание сервера.

Однако тут меня поджидала одна ловушка: система Jekyll написана на языке программирования Ruby, которого я не знаю. Я понятия не имею, как писать программы на Ruby или запускать приложения Ruby, предназначенные для пользователей. Кое-что из того, что мне необходимо для управления сайтом PersonalMBA.com, требует большего, чем простое форматирование.

Чтобы управлять сайтами с помощью системы Jekyll, мне нужно научиться программировать, а также запускать программы веб-приложений, написанные на Ruby.

Похоже, я нашел привлекательную задачу.

Научиться программированию

Я

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

Важно отметить, что все, чем я занимался до сих пор, — это не программирование. Языки HTML и CSS, которыми я пользовался для разработки веб-страниц, называются «языками разметки». Коды HTML и CSS просто указывают компьютеру, в каком виде отобразить текстовый файл (то есть «этот текст отобразить жирным шрифтом» или «данный раздел — основной заголовок, шрифт 24 пункта»).

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

Что же такое программирование?

Первое, что мне пришло в голову: программирование — это указание, какие вещи должен делать компьютер. Однако такое определение было слишком расплывчатым и бесполезным. Что делать? Какие «вещи»?

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

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

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

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

Пришла пора суммировать все, что я в данный момент знаю о программировании.

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

Программы часто называют «приложениями», и эти термины взаимозаменяемы.

Поделиться:
Популярные книги

На границе империй. Том 3

INDIGO
3. Фортуна дама переменчивая
Фантастика:
космическая фантастика
5.63
рейтинг книги
На границе империй. Том 3

Держать удар

Иванов Дмитрий
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Держать удар

Эффект Фостера

Аллен Селина
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Эффект Фостера

Не грози Дубровскому! Том VIII

Панарин Антон
8. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том VIII

СД. Том 17

Клеванский Кирилл Сергеевич
17. Сердце дракона
Фантастика:
боевая фантастика
6.70
рейтинг книги
СД. Том 17

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Пипец Котенку!

Майерс Александр
1. РОС: Пипец Котенку!
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Пипец Котенку!

Неудержимый. Книга IV

Боярский Андрей
4. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга IV

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Я не князь. Книга XIII

Дрейк Сириус
13. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я не князь. Книга XIII

Я – Орк. Том 6

Лисицин Евгений
6. Я — Орк
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 6

Отмороженный

Гарцевич Евгений Александрович
1. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный

Безродный

Коган Мстислав Константинович
1. Игра не для слабых
Фантастика:
боевая фантастика
альтернативная история
6.67
рейтинг книги
Безродный