Хотите изучить программное обеспечение? Быть реалистичным.

Но не расстраивайтесь.

Недавно я получил в своем RSS-канале материалы от некоторых известных людей в отрасли. Один из них - Джоэл Спольски, который, помимо прочего, стоит за StackOverflow, Trello и Glitch.

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

  • Раньше компьютерные науки были очень сложными: до 40% -70% бросали учебу после первого года обучения.
  • Но колледжи внесли изменения в свои учебные планы, включая преподавание Java в качестве первого языка вместо Scheme или C, а также перенос курсов по алгоритмам / структурам данных после первого года обучения.
  • Это, в свою очередь, привело к большему количеству не очень умных студентов, остающихся на программах CS, что, в свою очередь, приводит к большему количеству не очень умных выпускников.

Звучит жестко, но опасения справедливы. В любой области коммерциализация и повышение доступности также естественно приводят к снижению качества. Вы когда-нибудь слышали о многонациональной сети ресторанов быстрого питания, отмеченной 3 звездами Мишлен? Нет.

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

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

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

По словам Халдермана, главного научного сотрудника охранной фирмы Censys, приложение было «полным любительским часом».

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

И что бы вы ни делали, времена меняются.

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

Больше ресторанов. Больше продавцов Amazon FBA. Больше трафика. Больше инженеров-программистов.

Больше всего.

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

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

Но с программным обеспечением дело обстоит иначе.

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

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

Здорово! Могу ли я стать инженером-программистом после 6 месяцев интенсивного обучения, например, учебного лагеря?

Честно говоря ... если вы безумно умны, может быть

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

Но я буду откровенен и честен: знание того, как программировать, не делает вас инженером-программистом.

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

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

Люди часто учатся годами.

Но ... ты просто сказал мне не расстраиваться.

Правильно. Я не пытаюсь отговорить вас - Я стараюсь убедиться, что вы реалистичны и оправдываете свои ожидания.

Если вы искренне заинтересованы в том, чтобы присоединиться к индустрии, вам нужно знать, что это не ускорение на одну ночь (или даже год).

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

Но ... я слышу множество историй о людях, которые устраиваются на работу в Microsoft или Google и которые являются самоучками.

Они являются исключением.

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

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

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

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

Тогда… что мне нужно сделать, чтобы стать инженером-программистом?

  1. Во-первых, вам нужно понять, какие варианты вам доступны. Еще одна статья, которую я написал, посвящена различным вариантам обучения программному обеспечению.
  2. Во-вторых, вам нужно быть реалистом, учитывая возможности. Самый быстрый способ попасть в отрасль - это посетить учебный курс, а затем подать заявку на базовую работу по веб-разработке. Даже это будет, как минимум, от нескольких месяцев до года. Если вы хотите попасть в самые престижные компании, вам потребуются престижные навыки решения проблем и инженерные навыки. Если вы не гений, этого не произойдет всего за несколько месяцев.
  3. В-третьих, вам нужно дисциплинировать свое обучение. После того, как вы выбрали свой путь обучения, самое важное - последовательность. Вы устали сегодня? Неважно. Сядьте и выучите материал. Даже 20 минут лучше, чем ничего. Результатом является не страсть или мотивация, а последовательность.
  4. В-четвертых, не сдавайтесь. Как и все остальное, здесь будут тяжелые времена. Вам придется выучить материал, который вам покажется скучным. Вы будете бороться с действительно сложной проблемой в течение нескольких дней, а может быть, даже недель. Возможно, вы не сможете понять определенные концепции в течение долгого времени. Но рано или поздно вы это сделаете. Вы не можете сдаваться, особенно если вы действительно серьезно относитесь к работе в отрасли.

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

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

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