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

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

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

Когда я увольнялся с работы, чтобы научиться программировать, я просыпался каждый день в 6 утра, как будто у меня была работа, и весь день читал, учился и программировал. Я делал это около 4 месяцев, пока не почувствовал себя готовым подать заявление о приеме на работу (вы никогда не почувствуете себя полностью готовым). Было тяжело, но сработало. Я устроился на работу в первый раунд поисков, и это было одним из лучших событий, которые когда-либо со мной случалось.

Следующие ресурсы в значительной степени предназначены для full-stack / ruby ​​on rails, поскольку это была моя область интересов и то, в чем я получил работу. Я использовал все ресурсы, перечисленные здесь, я бы добавил больше, но Я не хочу рекомендовать учебные пособия, которые я не изучал сам.

Несколько личных советов

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

«Что касается того, чему мы должны научиться, прежде чем мы сможем это сделать, мы узнаем, выполняя это». - Аристотель

Когда начать

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

  1. HTML и CSS
  2. Sass
  3. Введение в Javascript
  4. "Командная строка"

Front End Engineering

Front-end разработчики оживляют дизайн страниц. Как интерфейсный разработчик вы будете работать над структурой страницы, делая ее красивой и интерактивной (кнопки мышления и анимация). Ваш код будет жить в браузере, и вы будете использовать в основном HTML, CSS и Javascript. Внешний интерфейс обычно запрашивает данные для отображения пользователю.

Я рекомендую принимать следующее:

  1. Адаптивный дизайн
  2. Больше Javascript
  3. Угловой
  4. Реагировать

Бэк-Энд Инжиниринг

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

Я рекомендую принимать следующее:

  1. "Рубин"
  2. "Рубин на рельсах"
  3. SQL
  4. Эликсир - более продвинутый

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

Заинтересованы в изучении Эликсира? Присоединяйтесь к моему списку рассылки, чтобы быть в курсе нового контента :)

Нет инженерного образования? Без проблем.

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

Когда вы пишете код, вы пишете программу, которая знает, как принимать решения на основе предоставленной информации. Хотя в некоторых языках есть удобные встроенные функции для обработки данных, совершенно необходимо знать основы условных операторов, if и else, циклов for и while. Если вы понятия не имеете, что это такое, я рекомендую взглянуть на проблемы программирования, например, в CodeByte. Это очень весело, и если вам нравится разбираться в них, велика вероятность, что вы влюбитесь в программирование.

Хороший материал.

Я влюбился в Ruby, как только прошел обучение по Codecademy. В то время у них не было опции премиум-аккаунта, поэтому я провел небольшое исследование и решил пройти курс Специализация Ruby on Rails на Coursera. В то время этот конкретный урок был бесплатным, но я бы заплатил за него, если бы пришлось. Курс очень подробный, преподаватели великолепны, а платформа очень удобна для пользователя. Вы также можете задать вопросы помощникам учителя, если вы застряли над домашними заданиями. Задания сложные и займут у вас больше времени, чем они говорят, но вы многому научитесь у них. Я обнаружил, что этот класс отражает то, как на самом деле является программирование. Когда вы что-то выясняете, это всегда занимает больше времени. Если вы сумеете пройти этот курс, вы, вероятно, сможете получить работу по кодированию, я знаю, что сделал.

Другие ресурсы по Ruby:

  1. Школа кодексов
  2. Рубиновый монах

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

  1. HTML, CSS и Javascript
  2. Одностраничные веб-приложения с Angular JS

Другие бесплатные уроки, которые я рекомендую:

  1. 30 дней ванильного JS Coding Challenge
  2. Учебник по React

Google и Stack Overflow

Как разработчик вы все время учитесь. Google будет вашим лучшим другом. Я был бы удивлен, если бы смог целый день не гуглить. Гугл учится! Вы также можете напрямую вводить ошибки из своего кода в Google, и вы, скорее всего, найдете ответ, особенно если вы пишете код на языке, который существует уже некоторое время (например, Ruby или Javascript).

Большинство ответов, которые вы получите от ответов в Google, будет связано с переполнением стека. Stack overflow имеет огромное сообщество опытных и не очень опытных разработчиков, готовых помочь вам, если вы застряли. Так что не бойтесь спрашивать. Вы можете потерять десятки часов, пытаясь решить проблему, которую кто-то уже задавал. Не бойтесь задавать вопросы. Тебе помогут.

Добавьте эти сайты в закладки

  1. Путеводители по рельсам
  2. Документы HTML, CSS, Javascript
  3. Рубиновые жемчужины - кто-то уже сделал это за вас
  4. Рейлскаст - учись по видео!

Инструменты

  1. Редактор кода - я использую Атом, еще один хороший - Sublime.
  2. Инструменты разработчика Chrome
  3. Терминал - iTerm для Mac

Книги

  1. Учебное пособие по Ruby on Rails от Майкла Хартла
  2. Эликсир программирования Дэвида Томаса - более продвинутый

Подкасты

  1. Software Engineering Daily

Встречи

Встречи - отличный способ познакомиться с людьми, которые находятся в одной лодке с вами. Во многих буткемпах будут бесплатные классы для продвижения своего бизнеса, и вы можете проверить их возможности и поговорить с их учителями. Существуют и другие встречи сообщества, более ориентированные на конкретные языки и / или платформы, которые вам следует посещать, чтобы оставаться в курсе технологий и общаться с людьми из разных компаний. Иногда рекрутеры спонсируют встречи, потому что им очень нужны разработчики, и это здорово, если вы ищете работу. Я время от времени хожу на мероприятие Girl Develop It, встречи которого проходят по всей территории США, и он отлично подходит для женщин, начинающих работать в сфере высоких технологий.

Нижняя линия

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