Учебный курс по программированию - новая норма?

В настоящее время программная инженерия - это востребованная работа. В настоящее время существует около 1,5 миллиона рабочих мест для инженеров-программистов, и, по прогнозам, они вырастут на поразительные 22% с 2019 по 2029 год [1]. Это означает, что к 2029 году будет добавлено около 33 миллионов рабочих мест. Это стабильная работа, и она может иметь отличные льготы! Компенсация велика. Вы можете получить неограниченный PTO, компенсацию за телефонные счета, счета за Wi-Fi и т. Д. Вы можете понять, почему все больше и больше людей делают карьеру в этой сфере.

В последнее время появились учебные курсы по программированию, которые приобрели огромную популярность благодаря своей доступности и гибкости. С 2013 года учебные курсы по программированию выросли в 11 раз, и к концу 2019 года их выпустили около 23 тысяч человек [2]. Все больше и больше людей посещают их, чтобы начать свою карьеру в качестве разработчиков программного обеспечения. Однако являются ли эти учебные курсы по программированию более эффективными и более рентабельными, чем академические учреждения? Могут ли они действительно устроить кого-нибудь на работу по разработке программного обеспечения?

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

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

TL;DR

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

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

1. Университет - традиционный, староведческий путь

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

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

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

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

Третье преимущество - сеть карьеры. Многие из этих университетов имеют налаженные связи с компаниями, и в результате эти компании, как правило, набирают большое количество сотрудников из этого учебного заведения. Например, Workday, Google и Facebook активно участвовали в моей школе. В большинстве школ проводится мероприятие под названием «Ярмарка карьеры», на которое сотни компаний приходят в школу, чтобы набрать сотрудников на этот конкретный день. В некоторых случаях собеседование проводится уже на следующий день.

Хорошо, это звучит потрясающе…. В чем тут прикол?

Поступить в эти университеты - это большие инвестиции! Если вы собираетесь учиться в 4-летней школе бакалавриата, вот сколько вам придется заплатить в целом:

Таким образом, диапазон колеблется от 87 800 до 199 500 долларов США в зависимости от того, в какую школу вы ходите. Могут потребоваться ссуды для оплаты вашего обучения, на которые может потребоваться несколько лет, чтобы окупиться. В результате может быть трудно быстро увеличить свои сбережения и чистую стоимость, пытаясь выплатить ссуды.

А как насчет аспирантуры?

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

Теперь нужно учитывать, что есть некоторые школы, которые предоставляют вам степень магистра через 1 год или через 2 года. Таким образом, в зависимости от программы стоимость обучения может варьироваться от 30 000 до 60 000 долларов США для государственного университета и от 40 000 до 80 000 долларов США для частного университета.

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

Это еще большие деньги! Есть ли у меня другие альтернативы для получения аккредитованной степени?

Да, есть! В последнее время массовые открытые онлайн-курсы стали чрезвычайно популярными на таких сайтах, как Udacity или Coursera. Некоторые университеты начали сотрудничать с этими платформами. Известным примером является онлайн-программа Технологического института Джорджии для получения степени Магистр компьютерных наук. Эта программа стоит в общей сложности 7000 долларов США. Если для вас приемлемо не находиться в кампусе и не иметь возможности общаться с профессорами в соотношении 1: 1, то это может быть подходящим вариантом для вас.

2. Учебный курс - Нетрадиционный способ

Учебные курсы настолько дешевы по сравнению с четырехлетним университетом; вот почему они так популярны. Как правило, они стоят от 5000 до 20 000 долларов США [4]. Теперь, если вы не можете заплатить эту сумму изначально или нервничаете из-за того, что не можете найти работу после окончания учебного лагеря, у учебного лагеря есть другой план оплаты, который называется отложенное обучение. Отложенная плата за обучение позволяет вам не платить аванс или платить небольшую сумму, и как только вы получите работу после учебного лагеря, фиксированная сумма из вашей зарплаты будет использована на оплату учебного лагеря.

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

Фантастика! Дешево и недорого! Но тогда в чем проблема?

Получить работу сразу после буткемпа - непростая задача. Исследование Stack Overflow показало, что около 9% выпускников так и не нашли работу разработчика программного обеспечения [2]. 22% выпускников заявили, что на получение работы ушло около месяца или больше, а 7% сказали, что на поиски работы потребовалось 6 месяцев или больше.

Почему это происходит?

В центре внимания учебных курсов для начинающих - обучение студентов навыкам, позволяющим получить работу по разработке программного обеспечения начального уровня. Таким образом, они будут обучать их языкам полного стека (HTML, CSS, Javascript) и обучать их бэкенду (Python, Java, MongoDB). Из-за акцента на этих языках эти студенты, как правило, слабо знакомы с основами информатики, что я замечал бесчисленное количество раз.

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

Выпускникам учебных курсов сложно оценить временную сложность задачи кодирования. Они не знают, как выполнять рекурсию или обход графа. Им неудобно решать проблемы программирования. Почему это проблема, к сожалению, такие компании, как Facebook, Google, Amazon, Twitter и т. Д., Задают такие вопросы во время телефонных интервью и собеседований на месте. Для этих конкурентоспособных компаний уровень технических вопросов, задаваемых по этим темам, варьируется от среднего до высокого уровня сложности.

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

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

То, что в конечном итоге могло быть вложением в 10 000 долларов, теперь становится инвестицией в 15 000 долларов.

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

Последние мысли

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

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

Ресурсы

Я провожу семинары по резюме / собеседованию с клиентами, претендующими на работу в области разработки программного обеспечения. Я работал с более чем 50 клиентами, и они получили предложения о работе в таких компаниях, как DoorDash, Square и 1Password.

Если вам нужна помощь с составлением резюме или подготовки к собеседованию, напишите мне на мой рабочий адрес электронной почты [email protected].

Йен - разработчик программного обеспечения в Twitter. Он работает в команде обмена сообщениями, поддерживая и улучшая системы pubsub. Он работал с многочисленными клиентами над повышением их технических навыков для работы с более чем 400 клиентскими сессиями.

Вы можете найти его в Instagram и LinkedIn.

использованная литература

[1] Разработчики программного обеспечения: руководство по профессиональному обзору. США Бюро статистики труда, 1 сентября 2020 г., www.bls.gov/ooh/computer-and-information-technology/software-developers.htm.

[2] Суоннер, Нейт. «Учебные курсы по программированию: стремительный рост, но какой ценой?» Dice Insights, 26 августа 2019 г., insights.dice.com/2019/08/26/coding-bootcamp-popularity-growth-2019/.

[3] Бустаманте, Джалиса. «Средняя стоимость колледжа и обучения». EducationData, 7 июня 2019 г., educationdata.org/average-cost-of-college/.

[4] Крисп, Имоджен. Сравнение затрат на учебный курс по программированию: полное погружение в стек. Отчет о курсе, Отчет о курсе, 21 ноября 2019 г., www.coursereport.com/blog/coding-bootcamp-cost-comparison-full-stack-immersives.

[5] Бен. Стоит ли этого платить за получение диплома? Peterson’s, 9 января 2018 г., www.petersons.com/blog/is-the-cost-of-a-graduate-degree-worth-it/.