KnigaRead.com/
KnigaRead.com » Документальные книги » Прочая документальная литература » Джош Кауфман - Первые 20 часов. Как быстро научиться… чему угодно

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Джош Кауфман, "Первые 20 часов. Как быстро научиться… чему угодно" бесплатно, без регистрации.
Перейти на страницу:

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

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


● покажи мне карточку Джона Смита;

● покажи мне все карточки женщин;

● покажи мне все карточки людей, которым больше пятидесяти лет.


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

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

Базы данных — самый распространенный способ хранения информации в интернет-приложениях. Если вам нужно хранить такие данные, как имя пользователя, адрес электронной почты, и другие подобные сведения, для этого прекрасно подойдет база данных. После того как Джон Смит войдет в ваше приложение, вы можете извлечь его имя из записи в базе данных, а затем вывести на экран: «Привет, Джон Смит!»

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

В случае нашей программы для адресной книги можно хранить куки-файл, созданный в тот момент, когда Джон Смит входит в систему. Куки-файл Джона содержал бы такую информацию: username = johnsmith и loggedin = true. Если Смит покинет приложение, а затем снова вернется, программа распознает куки-файл и откроет доступ без повторной регистрации. Можно сделать так, чтобы куки-файлы хранились определенное время, что удобно для этого типа программирования. (Если вы увидите на сайте сообщение «Запомнить этот пароль», то происходит именно запись куки-файла.)

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

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

Тем не менее я еще не готов приступать к работе. Помните, я говорил о том, что компьютеры не понимают человеческого языка? Мне нужно выбрать язык программирования, чтобы писать команды программы, а для этого потребуются дополнительные исследования.

Выбор языка для программирования интернет-приложений

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

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

Два самых популярных сайта для программистов — это Stack Overflow [7] и Hacker News [8], и поэтому за советом в выборе языка я обратился именно к ним.

Stack Overflow представляет собой диалоговый сайт, место, на котором задают вопросы типа: «Как мне сделать Х?» Опытные и знающие программисты обычно отвечают на вопросы — дают конкретные советы, излагают подходы, указывают, как исправить ошибку, — что делает сайт лучшим помощником в решении сложных задач программирования.

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

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

С точки зрения программирования термин «лучший» применим лишь по отношению к задаче, которую вы пытаетесь решить, и к вашим приоритетам. В общем случае рекомендуется 1) выбирать инструменты, позволяющие эффективно решить задачу, а 2) при наличии нескольких вариантов выбирать те, которые вам больше нравятся. Вполне справедливо.

Просмотр архивов 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) системой, в которой выполняется программа. Если код, необходимый для выполнения данной операции, отсутствует в системе, то ваша программа зависнет или выдаст сообщение об ошибке.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*