С распространением технологий, надвигающейся угрозой автоматизации, подрывающей гарантии занятости, и обещанием неисчислимых богатств для молодых предпринимателей, учебные курсы по программированию процветают во всем мире в течение последнего десятилетия. Недавно они появились на наших берегах с открытием магазинов вроде General Assembly и Coder Academy в городах по всей Австралии.

Как недавний выпускник Coder Academy, я здесь, чтобы дать несколько советов о том, как пройти курс обучения относительно невредимым.

Что ожидать…

Определение "учебного лагеря":

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

Принятие решения о посещении учебного курса по программированию может быть непростой задачей. Оставить привычную и стабильную зарплату на 6 месяцев, 9–5 баллов жаргона, головоломок и сообщений об ошибках звучит грубо, но не все так плохо. На самом деле, я бы сказал, что посещение учебного курса Fast Track в Coder Academy было самым полезным решением в моей жизни. Помимо технических знаний, я также приобрел навыки решения проблем, критического мышления и управления проектами, которые бесценны и могут быть переданы во многие другие аспекты моей жизни.

Итак, вот чего ожидать в ближайшие недели / месяцы:

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

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

Как приготовиться…

Прежде чем начать, вы можете НАМНОГО облегчить себе жизнь, предварительно подготовившись. Хотя это не всегда требуется, я настоятельно рекомендую это. В моей когорте были студенты, у которых не было никаких предварительных знаний, которые прошли до конца. Однако они также были наиболее напряженными студентами. Студенты, которые немного подготовились, получили гораздо больше за шесть месяцев, поскольку они могли задавать более ценные вопросы, получать больше опыта в решении проблем, а не разбираться в синтаксисе, и смогли закрепить свои знания, помогая другим студентам, которые застрявший.

Ресурсы, которые я использовал и рекомендую:

Введение в информатику и программирование на Python в Массачусетском технологическом институте:

Это самый интенсивный ресурс из перечисленных здесь. На это у меня ушло 3 месяца, и это может показаться немного сухим, поскольку это скорее академический, чем практический характер. Однако он очень подробный и даст вам хорошее понимание основ программирования, а также некоторые более сложные темы, такие как объектно-ориентированное программирование и нотация Big O Notation.

Codecademy:

Если вы думаете о том, чтобы присоединиться к буткемпу, вы, вероятно, уже сталкивались с Codecademy. У них есть ряд программ, которые помогут вам быстрее освоить различные языки и фреймворки, такие как HTML / CSS, Ruby, Javascript и другие. Проработайте те, которые проходят в вашем учебном лагере, чтобы вы могли взяться за дело.

Кодовые войны:

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

Как выжить во время буткемпа…

Кодируйте каждый день

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

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

Во время моего пребывания в Coder Academy за шесть месяцев стал очевидным явный разрыв в навыках между людьми, которые пытались выполнять утренние и дневные задания каждый день, и теми, кто этого не делал. Те, кто пробовал их каждый день (даже если они не завершали их), все еще упражняли свои навыки критического мышления, узнавали о сообщениях об ошибках и учились эффективно использовать Stack Overflow. Все необходимые навыки для того, чтобы стать полноценным разработчиком.

Всегда есть кто-то лучше тебя

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

Вы не одиноки, и это не значит, что у вас нет того, что нужно. Даже на элитных курсах информатики в Гарварде есть Билл Гейтс или Марк Цукерберг, которые выставляют напоказ и заставляют всех остальных чувствовать себя тупыми.

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

Может показаться, что вы не прогрессируете, когда есть другие, которые делают кодирование тривиальным, но через месяц, три месяца, шесть месяцев вы оглянетесь назад и поразитесь, как далеко вы продвинулись.

Смиритесь с незнанием - это не неудача, это возможность учиться

На многих этапах буткемпа вы будете чувствовать себя совершенно потерянным и подавленным. Просто, когда вы сосредоточитесь на функциях, они растопят ваш мозг с занятиями. Сразу после того, как вы освоите Ruby, они поразят вас магией Rails. Наконец, когда все кажется, что все встало на свои места, и вы думаете, что видите матрицу ... асинхронный Javascript ...

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

Это сбивает с толку, и в каждый момент вы будете задаваться вопросом: «Неужели я только что достиг максимальной емкости мозга? Может, я просто недостаточно умен, чтобы быть профессиональным программистом… »

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

Вопросов?

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

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

Сначала попробуйте решить проблему самостоятельно. Если по прошествии 20 минут вы все еще застряли, пора приступить к формулировке вопроса. Однако, прежде чем позвать кого-нибудь, просмотрите этот быстрый контрольный список:

  • Вы проверяли журналы / сообщения об ошибках?
  • Вы искали свою проблему в Google?
  • Вы проверили переполнение стека?
  • Вы пробовали выполнять такие шаги отладки, как запись переменных в терминал на разных этапах кода?
  • Вы проверили, что ваш поток управления (операторы if else) делает то, что задумал?
  • Вы написали псевдокод и пригнули решение? (Подробнее об этом чуть позже…)

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

«Я пытаюсь сделать A, но получаю B. Я пробовал X, Y и Z, но они не работали. Не могли бы вы мне помочь?"

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

Резиновый утенок / Псевдокод

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

Резиновый утенок

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

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

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

Псевдокод

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

Что дальше…

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

Вот несколько идей о том, что вы можете сделать дальше:

  • Убедитесь, что вы обновили свой профиль LinkedIn, чтобы отразить ваши новые навыки и стремления. (Вот отличный ресурс, чтобы убедиться, что вы на правильном пути.)
  • Создайте портфолио, чтобы продемонстрировать свою работу. Это наиболее эффективный способ продемонстрировать свои практические способности, и он просто необходим профессиональным разработчикам. Убедитесь, что вы добавили это в свой профиль LinkedIn.
  • Если есть определенная область, в которой вы все еще чувствуете себя слабыми, или есть определенный стек технологий, с которым вы действительно хотите работать, это прекрасное время для начала побочного проекта. Поговорите со своими одноклассниками, возможно, найдется кто-то, у кого есть похожие цели, с которыми вы сможете сотрудничать.
  • Слушайте подкасты по кодированию, такие как Syntax.fm, и читайте статьи на Medium, чтобы быть в курсе текущих технологий, и начните готовиться к техническим собеседованиям по кодированию.
  • Начните разговаривать с людьми в Интернете и лично. Изучите компании и отправьте им сообщение. Встречи по программированию также являются прекрасным местом для встреч с людьми с самыми разными навыками и опытом, что является бесценным опытом. Выбирайтесь и начните исследовать бесчисленное множество возможностей трудоустройства для вас.

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

Если вам понравилась эта статья и вы хотите поговорить и поговорить, вы можете связаться со мной через Twitter или LinkedIn.

📝 Прочтите этот рассказ позже в Журнале.

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