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

Итак, после нескольких дней анализа я сел за свой компьютер Intel Celeron Asus с едва ли 4 ГБ оперативной памяти и начал исследовать, как я могу стать программистом. Мне нужна была работа, которую я мог бы выполнять в Венесуэле, чтобы я мог заработать достаточно денег, чтобы уехать оттуда. Примерно в то же время многие МООК набирали популярность в Интернете, а курсы программирования появлялись по всему Интернету. Поэтому я сказал, почему бы и нет, давайте посмотрим, насколько это может быть сложно. Ну, это как попасть в ресторанный дворик, все выглядит хорошо, и все они продают быстрое дерьмо, но вы всегда уходите с чем-то недостающим.

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

Итак, обо всем по порядку, с чего начать?

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

Если вы медленный, интеллектуальный ученик, который хочет проглотить все, что связано с предметом вычислений, и потеряться в его бескрайнем море; то я бы порекомендовал Университет ОСС; это означает Университет Общества с открытым исходным кодом. У них есть невероятно подробная учебная программа для людей, которые хотят получить образование на уровне компьютерных наук.

Для таких, как я, которым быстро становится скучно, но хочется всему научиться, я бы порекомендовал взглянуть на этот список: СПИСОК. Это сборник книг и учебных пособий по всем вычислительным вопросам. В нем есть ресурсы по математике, анализу сложности, каждому языку программирования, достаточно популярному, чтобы иметь книги с открытым исходным кодом, и многому другому.

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

Вторые вещи, чтобы узнать тогда?

После того, как вы сможете создать веб-сайт с помощью HTML, CSS и Javascript или вам удалось создать простую консольную игру для терминала с Ruby или даже создать SPA с Ruby on Rails, вам нужно будет изучить основы работы внутри отрасли. Так что именно тогда вы должны начать думать о таких вещах, как рабочие процессы. Чтобы быть продуктивным в программировании, вам нужен быстрый рабочий процесс, а для этого нужно знать, как использовать имеющиеся в вашем распоряжении инструменты.

Инструменты, которые я использую:

  • Текстовый редактор, я использую SublimeText и Vim, они мощные и ненавязчивые. Избегайте IDE, которые вызывают зависимость.
  • Я использую симулятор гипертерминала, потому что я обожаю хороший дизайн и красивые вещи, но вы можете использовать что угодно.
  • Python, ruby, Pearl, C, C++, Haskell, Go, Clojure и node — это языки, которые я установил на свой компьютер. Вам не обязательно знать их все или вообще их использовать, но есть отличные инструменты, созданные на разных языках, и мне нравится иметь швейцарский армейский нож для компьютера.
  • Git незаменим, а знание системы управления версиями станет одним из важнейших факторов вашего трудоустройства.
  • Google Chrome (звучит глупо, но он имеет самый большой набор плагинов, доступных для разработки, которые облегчат вам жизнь. Я использую как минимум 10 расширений для поиска шрифтов, цветов, структуры элементов HTML и т. д.).
  • Sketch — лучшее, что вы можете использовать для веб-дизайна.
  • Подпишитесь на Medium, если вы еще этого не сделали, вы можете узнать так много от других разработчиков, что это абсурдно. Я считаю его одним из своих инструментов, потому что с его помощью я решаю многие вопросы.
  • Для точных сомнений вы должны использовать StackOverflow, который является энциклопедией программистов. Если вы когда-нибудь опубликуете там вопрос (что должно быть невероятно сложно из-за количества уже существующих ответов), для этого есть формат. Вы должны опубликовать журналы всей информации, связанной с вашей проблемой, и кода, который вы написали до сих пор. В любом случае в инете есть рекомендации.
  • Для изучения нового использую Egghead, Pluralsight (бесплатно 3 месяца после открытия аккаунта VisualStudio) и FrontEnd Masters. Пока самые эффективные агрегаторы курсов, которые я нашел по веб-разработке.

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

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

Приятного аппетита.