31 шаг к тому, чтобы стать разработчиком

Альтернативный способ научиться программировать

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

Они отвечали на такие вещи, как 1,5 года, степень бакалавра или Я только начал экспериментировать с этим - ни один из этих вопросов не удовлетворил мое любопытство. Я хотел знать конкретно, сколько работы они проделали, так как мне было интересно, смогу ли я когда-нибудь сделать это сам (в чем я сомневался, поскольку это казалось почти невозможным).

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

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

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

ФАЗА ПЕРВАЯ: ВВЕДЕНИЕ

Я разделил свой путь обучения на три этапа; введение, хобби и учебный курс.

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

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

Codecademy

Как и многие другие, я начал с Codecademy, завершив четыре из них: Javascript, HTML и CSS, jQuery, PHP. Это дало мне ментальную модель того, что такое кодирование. Если вы никогда раньше не писали ни строчки кода, Codecademy - отличная отправная точка.

Интерактивные приложения для детей

После Codecademy я знал ровно столько, чтобы делать простые интерактивные приложения для нескольких детских книжных приложений, созданных моим стартапом. Он состоял из простых веб-анимаций: коснитесь тега ‹div›, и изображение будет появляться и исчезать при включении звука.

30 дней на изучение jQuery

Перенесемся в конец 2013 года. Я прошел 30-дневный курс изучения jQuery в TutsPlus, сделанный Jeffrey Way, который является отличным преподавателем. Он проведет вас через множество интересных небольших проектов.

Если вы хотите научиться создавать интерактивные веб-сайты, я бы порекомендовал вам начать с jQuery, а не с Vanilla Javascript, потому что это проще в освоении.

ФАЗА 2: ХОББИ

Помимо курса TutsPlus, в 2013 году я очень мало занимался программированием, так как все свое время тратил на свой стартап. Кроме того, я действительно не верил, что когда-нибудь смогу стать профессиональным разработчиком.

Тем не менее, я начал снова, когда открыл для себя Udacity в начале 2014 года. На этот раз я был более серьезным и поставил перед собой цель обучать себя хотя бы один час в день.

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

Udacity - Введение в информатику

Курс CS101 по Udacity - отличное введение в информатику и Python, сделанный Дэйвом Эвансом. Здесь я должным образом узнал о типах данных, функциях, условных выражениях и других вещах, хотя я закончил только 80%. Если честно, я никогда не заканчивал ни одного МООК, потому что бросаю, как только мне становится скучно.

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

Udacity - Веб-разработка

Я последовал за CS253, созданным соучредителем Reddit Стивом Хаффманом. Он проведет вас через создание блога и является естественным следующим шагом после CS101.

Простая игра на JavaScript

В какой-то момент в начале 2014 года я заинтересовался созданием игр Javascript. Я начал с этого урока, который проведет вас через создание очень простой JS-игры, в которой вы управляете персонажем с помощью клавиш со стрелками, чтобы ловить гоблинов.

Подметальная машина в Javascript

Я продолжил классическую игру Mine Sweeper, как описано в этом руководстве. Это было тяжело, и я помню, что логика меня немного ошеломила. Хотя мне нравится доводить дело до конца, несмотря на то, что я не всегда понимаю, что происходит (о чем я пишу больше здесь).

Змея в Javascript

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

jQuery Game - Покупки для детей

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

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

Udemy - Кодирование для предпринимателей

В начале лета я сделал потрясающее руководство по программированию для предпринимателей от Джастина Митчела. Это полностью проектный курс, основанный на методологии обучения на практике. Это отличное введение в среду Django Python.

Курсы Udacity дадут вам основы концепций CS, а этот позволит вам применить свои навыки на практике. Сочетание этих типов курсов имеет решающее значение.

Сайт House Of Fam

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

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

Веб-сайт Disco Fingers

Я также создал простую целевую страницу для нашего приложения для создания музыки Disco Fingers, которое наш стартап запустил в конце 2014 года.

Disco Fingers Top Songs Crawler

После запуска Disco Fingers я написал скрипт Python, который просматривал наш внутренний список битов Disco Fingers и каждый день публиковал в Твиттере ссылку на самый популярный бит. Это научило меня многому об API, задачах cron и парсинге.

Создание сценария, который экономит ваше время, дает ощущение силы. Я бы порекомендовал вам попробовать это.

Udacity - контролируемое обучение (ML)

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

CoderByte Вызовы

Чтобы улучшить свои фундаментальные навыки (о которых вы можете подробнее прочитать здесь) я решил множество задач на CoderByte.

Крестики-нолики в JavaScript

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

ФАЗА ТРЕТЬЯ: BOOTCAMP

На тот момент я был достаточно хорош, чтобы создавать простые сценарии, и знал, как развернуть веб-сайт Django, если следовал формуле Coding For Entrepreneurs. Но я все еще был далек от того, чтобы устроиться на работу в качестве разработчика. Это стало моей целью после того, как наш стартап потерпел неудачу, поэтому я подал заявку на несколько курсов для начинающих по кодированию и, наконец, выбрал Founders and Coders (FAC) в Лондоне.

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

Неделя 1: командный блог

Базовый блог на Github Pages. Исходный код доступен на этом репо, а переуступка здесь. Навыки: Github Pages, CSS, jQuery, Jekyll.

Неделя 2: API Guardian

Веб-сайт, который получает контент из Guardian API. Исходный код в этом репо, а переуступка здесь. Навыки: веб-API, Ajax, JSON.

Неделя 3: вещи поблизости

Социальная стена, на которой отображаются твиты поблизости. Переуступка и РЕПО. Навыки: Серверы, Node.js.

Неделя 4: поиск в Instagram и Twitter

Приложение, в котором вы можете искать твиты и публикации в Instagram. Репо и Переуступка. Навыки: Heroku, MongoDB.

Неделя 5: Визуализация твитов D3

Это была неделя D3.js на FAC. Мы экспериментировали с тем, как создавать визуализации. Переуступка и РЕПО.

Неделя 6: Приложение для заметок

Наше первое знакомство с React.js, с которым мне сразу понравилось работать. Переуступка и РЕПО

Неделя 7: Блог 1.0

Простой блог с аутентификацией. Навыки: рендеринг на стороне сервера, файлы cookie. Уступка и репо.

Неделя 8: Блог 2.0

На этот раз мы добавили больше методов аутентификации, например Регистрация в Twitter, Facebook и по электронной почте, а также использование фреймворка Hapi.js. Уступка и репо. Навыки: Hapi.js

Неделя 9: король ключевых слов

На девятой неделе мы должны были построить все, что хотели. Наша команда создала сайт, который анализирует ваши ключевые слова в App Store и подскажет, какие из них бесполезны. Репо здесь. Навыки: jQuery, Heroku, API.

Сэр Предикталот

На десятой неделе мы начали делать проекты для клиентов, зарабатывая немного денег. Нашим первым был прототип приложения для прогнозирования новостей Tinder’ish. Репо.

Детские пазлы

Детская головоломка, основанная на серии норвежских детских книг Тролль-Олав. Репо

Оценить

Социальная сеть, основанная на рейтинге изображений. (У меня, к сожалению, нет изображения этого.) Репо

Хлюпать

Инструмент для учащихся, помогающий им повторять и запоминать то, что они узнали. Репо

Coursera - Введение в машинное обучение

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

Неделя машинного обучения

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

Получить работу

После завершения FAC я вернулся домой и примерно через месяц устроился на работу фронтенд-разработчиком в Xeneta, где проработал около 5 месяцев.

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

И не забудьте рекомендовать эту статью :)

Спасибо за прочтение! Меня зовут Пер, я соучредитель Scrimba - лучшего способа преподавать и изучать код.

Если вы дочитали до этого места, я бы порекомендовал вам проверить эту демонстрацию!