Ваши первые 100 часов программирования

17171
3

Юрий Ворон работает в сфере веб-разработки и дополнительно развивает свой онлайн-ресурс по программированию для новичков - Ravesli. В колонке для AIN.UA он рассказал о подходе «100 первых часов программирования», который призван помочь новичкам в программировании разобраться с тем, что, как и где изучать.

Что происходит, когда вы просите совета по программированию?

Ответ №1: «Не задавай глупые вопросы только из-за того, что тебе лень погуглить».

Ответ №2: «Попробуй Python. Сначала ничего не будешь понимать, но уже через минут 20 тебя затянет и через час будешь только удивляться, как быстро прошло время!».

Ответ №3: «Я не рекомендую Python в качестве первого языка программирования. Java – вот идеал».

Ответ №4: «Начни с Java или C++, затем пройди онлайн-класс Стэнфорда в разработке приложений под iOS».

Ответ №5: «Какой язык программирования ты начнешь изучать и использовать – не имеет значения. Просто начни».

Ответ №6: «Изучай программирование с реализации какого-либо своего проекта».

Ответ №7: «Просто переписывай код из книги».

Ответ №8: «Если умеешь и знаешь, что гуглить, тогда сможешь сделать все что-угодно».

Ответ №9: «Хорошей идеей будет начать с очень простого языка программирования, который не требует настройки большого количества софта».

Ответ №10: «Используй то, что используют твои друзья».

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

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

Цель этой статьи

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

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

В ваши первые 100 часов вы должны выполнить, казалось бы, 3 простых задания:

  • Построить фундамент. Изучение базового синтаксиса и концепций программирования.
  • Ознакомиться с рынком. Максимально широкое ознакомление со стеком технологий.
  • Выбрать свою специализацию. Найти «то самое, от чего прет» и начать углубляться.

Почему «казалось бы, простые»? Потому что до второго задания доходит примерно половина начинающих, до третьего – процентов 20, а выполняют третье задание — единицы. 

Имея это в виду, у вас есть два вопроса, которые вы должны рассмотреть и решить на пути к поиску того, в чем вы будете искренне увлечены:

  • Что вам нравится изучать больше всего (т.е. какие технологии/языки/фреймворки)?
  • Как вам нравится больше всего учиться (т.е. какие типы ресурсов)?

Когда вы сможете ответить на эти вопросы, ваш путь станет намного яснее.

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

Это все означает, что если вы будете счастливы при изучении Haskell из пыльного старого учебника, то делая именно так вы получите больше пользы, нежели будете заставлять себя учить этот новомодный Vue.js.

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

Ключевые принципы

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

  • Изучайте одну вещь за раз. Многие разработчики, возможно, вам уже говорили изучать сразу несколько языков/технологий. Это может работать для особо одаренных, но это рецепт провала для обычного человека. Рассматривайте несколько технологий, но с однопоточным прогрессированием, чтобы вы могли получить удовольствие от изучения одного языка перед погружением в следующий.
  • Распробуйте стек технологий. Вы часто слышите, как люди говорят вам погрузиться глубоко в изучение одного языка или фреймворка. Я с этим согласен. Но только после того, как вы поработаете со всем, что предлагает ваш стек.
  • Пробуйте разные ресурсы. Легко найти ресурс, который не подойдет. Сложно найти ресурс, который подойдет. Вам нужно попробовать сразу несколько разных типов ресурсов, чтобы определить, как вам учиться лучше всего. От понимания этого момента зависит продуктивность и эффективность вашего обучения.
  • Держите в голове проект, который хотите реализовать. Об этом тоже много говорят. Вы будете учиться значительно лучше и быстрее найдете свою страсть, когда у вас будет проект, который вы рьяно хотите реализовать. Здесь не имеется в виду, чтобы начать реализацию проекта сходу – нет, так как у вас будут большие пробелы в фундаментальных знаниях и вы, например, будете делать целый день задание, которое делается за 5 минут. Это очень распространенная проблема. В ваши первые 100 часов, ваш проект должен быть для вас стимулом, двигателем, который позволит вам не сбиться с выбранного пути.
  • Исследуйте. Когда вы только что-либо начинаете изучать — это лучшее время для экспериментов. Здесь ваша цель – пробовать, менять, добавлять, играть, все, чтобы максимум получить удовольствия и опыта.
  • Не поддавайтесь. После ознакомления с общей картиной технологий – вам нужно выбрать одну специализацию и погружаться в нее. На этом этапе легко попасть в круг постоянных попыток поиска новых ресурсов, но, если вы хотите двигаться вперед, вам нужно быть дисциплинированным, чтобы принять следующий вызов, прежде чем текущий станет комфортным.

К примеру, рассмотрим правило 100 часов в веб-разработке:

  • HTML и CSS — 20 часов
  • Javascript и jQuery — 25 часов
  • Командная строка и Git — 5 часов
  • Базы данных и SQL — 5 часов
  • Ruby — 20 часов
  • Ruby on Rails — 25 часов

Шаг №1: HTML и CSS

20 часов

Язык разметка HTML и каскадные таблицы стилей CSS объединяются для создания интерфейса любой существующей веб-страницы. Вам не обязательно становиться экспертом в этой области, но вы должны понимать, как это работает.

Цель

Самостоятельно создать копию простой домашней страницы, например, Google.com.

Ресурсы

Шаг №2: Javascript и jQuery

25 часов

Ваш первый скриптовый язык программирования, который выполняется на стороне клиента (т.е. вас) — Javascript. Вам нужно будет изучить еще библиотеку jQuery, которая позволяет делать магию. Этот шаг можно считать вашим «боевым крещением» и точкой входа в «настоящий код».

Цель

Создать проект Etch-a-Sketch или что-то подобное самостоятельно. Вы должны научиться взаимодействовать с DOM и применять теорию на практике. Вы можете использовать браузерный редактор кода CodePen или JSFiddle, если не хотите работать на локальном сервере. Но лучше всего работать именно на локальном сервере.

Ресурсы

Шаг №3: Командная строка и Git

5 часов

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

Цель

Создание репозитория Git для своих предыдущих проектов из шагов 1 и 2 и перемещение их в Github.

Ресурсы

Шаг №4: Ruby

20 часов

Теперь пришло время развлечься с языком программирования Ruby. По правде говоря, вы можете учить Python или даже PHP, если хотите – на этом этапе это действительно не имеет значения.

Цель

Создать простую игру Tic-Tac-Toe в командной строке, которую можно сыграть с двумя игроками или просто с компьютером.

Ресурсы

Шаг №5: Базы данных

5 часов

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

Цель

Получить общее представление о том, как работают базы данных, как работать с ними + изучение синтаксиса SQL.

Ресурсы

Шаг №6: Фреймворк Ruby on Rails

25 часов

Данный фреймворк позволяет быстро создавать готовые к релизам приложения, сохраняя при этом контроль, необходимый для их настройки на все 100%. Вы должны разобраться в создании функционального веб-приложения. Независимо от того, будете ли вы использовать Ruby on Rails в будущем, этот опыт даст вам понимание работы MVC-фреймворков. 

Ознакомиться с инструкциями по установке Ruby on Rails вы можете здесь, либо здесь.

Цель

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

Ресурсы

Что дальше?

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

Пришло время определяться. На каком из предыдущих шагов вам понравилось больше всего учиться? Какие ресурсы вы считаете наиболее полезными? Что вызвало у вас желание разобраться детальнее?

  • Если вам понравилось работать с HTML и CSS, но вы так и не смогли разобраться с тем, как работает Javascript или Ruby — все в порядке. Вы можете далее развивать в веб-дизайне, верстке сайтов или UX.
  • Если Javascript и программирование на стороне клиента вам понравилось больше всего – развивайтесь в этом направлении.
  • Если вам было наиболее комфортно находиться на водительском месте на стороне сервера или думать о моделях данных, то углубляйтесь в Ruby и Ruby on Rails. Или в качестве альтернативы попробуйте Python и фреймворк Django.
  • Если вам понравился Javascript, но также понравилось работать и на стороне сервера, то вы можете рассмотреть возможность использования Node.js, который является фреймворком Javascript.

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

Автор: Юрий Ворон, веб-разработчик

Оставить комментарий

Комментарии | 3

Поиск