Ого! Два года потрачены на изучение базовых, фундаментальных концепций программирования? Не волнуйся. Я почти уверен, что это займет у вас не так много времени, как у меня, особенно если вы прислушаетесь к моему незапрошенному совету. Я официально зарегистрировался в Launch School в марте 2019 года. Я был рад начать свое новое путешествие по изучению основ разработки программного обеспечения. Конечно, я действительно не начал систематически учиться еще несколько месяцев, и у меня было множество планов поездок, которые мешали моей учебе, но, несмотря на это, я не сдал 109 до конца марта 2021 года.

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

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

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

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

ЗНАЙТЕ СЕБЯ

Вот ключевой совет древних греков: Познай самого себя. Одна из причин, по которой мне потребовалось так много времени на этот курс, заключается в том, что мне пришлось буквально улучшить многие аспекты моей личности. Я настоятельно рекомендую вам пройти тест Майерса-Бриггса на сайте www.16personalities.com.

Хотя Майерс-Бриггс - это еще не все - и многие люди считают это неточным, - я думаю, что он дает хорошее общее представление о некоторых из ваших наиболее фундаментальных черт личности. Некоторые люди говорят, что им не нравится понимать MBTI, потому что он «ставит людей в ящики». Я не использую MBTI, чтобы класть людей в коробки; Я использую его, чтобы лучше понимать себя и других. Я обнаружил, что это очень полезный инструмент.

Совет от профессионала: если вы НАИМЕНЬШИЙ экстраверт, например, если вы пройдете тест на 16 личностей и получите EXXX, вы можете лучше учиться, общаясь с другими учениками. Хотя вы должны уметь учиться и учиться самостоятельно (я проводил слишком много времени, занимаясь в одиночестве, но я продолжал развивать дисциплину, упорство, настойчивость и сосредоточенность во время уединенного обучения), многие из ваших идей, вероятно, появятся в результате слушания другим ученикам, объясняя им концепции, совместно обсуждая и т. д.

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

Для этого подходит метод «Помидор».



После более тысячи неудачных попыток найти что-то, что проводило бы электричество, кто-то спросил Эдисона, не чувствует ли он себя неудачником. По сути, он сказал, а я здесь чрезвычайно перефразирую: «Нет, я только что выяснил тысячу вещей, которые не являются проводниками для электричества». Было обидно видеть, как люди начинают Launch School после меня, заканчивают Core, переходят в Capstone и заканчивают, а затем получают работу… Когда я решил пойти по этому пути, я знал, что это будет исключительно сложно для меня. Если бы кто-нибудь спросил меня, не чувствовал ли я себя неудачником из-за столь долгого ожидания, я бы сказал нет. Я бы сказал, что никогда не сдавался и закончил на 109 быстрее, чем те, кто сдавался.

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

Многие программисты / студенты в Launch School кажутся либо абстрактными мыслителями (iNtutives), либо очень систематическими наблюдателями реальности (сенсоры), суждениями (это не означает суждение людей, но разумным в поведении - требовательными, организованными, дисциплинированными. , структурированные и т. д.). Если в вашем личном профиле стоит буква Р, а не буква J, это означает, что вам нравится плыть по течению, не имея установленного расписания, видеть, какие возможности доступны, и выполнять много работы рывками по мере того, как против установленного расписания.

Как человек с доминирующей умственной функцией (умственная функция - это, по сути, термин, обозначающий определенные модели того, как человек обрабатывает информацию, передает информацию и т. Д.) Экстравертной интуиции (вспомните Томаса Эдисона, Бенджамина Франклина, Сократа, Уолта Диснея, Айронмана ... все известны уникальными идеями и решениями, а не мельчайшими деталями) Работа с деталями и разбиением задач - особенно математических - всегда была проблемой для меня. Мне удавалось получать достаточно приличные оценки в школе, пятерки и четверки… обычно пятерки по математике и алгебре в колледже и т. Д. Однако в начальной школе требуется отличное качество, чтобы сдать экзамен. Единственная проходная оценка - A. Может быть, B +.

Определите свой тип личности и посмотрите, как вы учитесь. Это может сэкономить вам много драгоценного времени.



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

Двухуровневая проблема

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

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

Второй уровень - синтаксическая часть. Дело в том, что если вы не уверены в том, как решить проблему с помощью логики, вас еще больше расстроит синтаксическая часть, потому что вы пытаетесь сделать две вещи одновременно; вы пытаетесь записать логику и заставить компьютер принять вашу «грамматику кодирования». Я предлагаю сначала записать ваши шаги в псевдокоде, а затем перевести их на язык программирования. Мне казалось, что у меня были обратные трудности, чем у большинства студентов, с которыми я учился. Я мог понять / «решить» проблему довольно быстро, но мне трудно было перевести это в код. Однако это было не из-за недостатка попыток или усилий.

Вот статья из Launch School о двухуровневом проблемном аспекте программирования:



Терпеливо стойкий

За многие месяцы, которые я провел в учебе (технически годы), я дошел до точки, когда я мог потратить чрезмерное количество времени на конкретную проблему и решение проблем в целом. Теперь я могу сосредоточиться лучше, чем когда-либо в моей жизни, и у меня есть терпение дзен-буддийского монаха. Ладно, может быть, не так уж много терпения, потому что мой левый глаз все еще дергается, когда я вижу undefined method 'whatever' for nil:NilClass. (Теперь представьтесь этому сообщению об ошибке. Некоторое время оно будет вам вашим близким другом.)

Следовательно, вы не можете расстраиваться и злиться из-за того, что ваш код не работает или вы не знаете, как вставить foo и bar в предложение с помощью конкатенации. (Примечание: почему foo и почему bar? Потому что они не имеют значения. Когда-нибудь вы поймете, о чем я…). Вы должны сделать глубокий вдох, успокоиться и проанализировать проблему спокойно и логично. Постарайтесь быть похожим на Спока, пока вы учитесь программировать, и пока вы пишете код. И будь настойчивым, как Спок. Не сдавайся! Большинство из вас может найти программирование естественным образом. Некоторые из вас… может и нет. Если вы этого достаточно сильно хотите, продолжайте. Я искренне думаю, что, если я смогу пройти первый курс, я смогу закончить оставшуюся часть Launch School. Кроме того, я думаю, что если я смогу это сделать, то сможете и вы.

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

Я просто твердил себе, что деньги, творческая работа (технически… без каламбура… программирование - единственная форма искусства, которая взаимодействует со зрителем) и карьерные возможности в конечном итоге того стоят - не говоря уже о самосовершенствовании. Кажется, что очень немногие ENTP в чем-то овладевают, поэтому я хотел бы овладеть основами программной инженерии. Обычный образ для ENTP - «Мастер на все руки и ни в чем не мастер». Я хочу вернуть это высказывание к его первоначальному формату: «Мастер на все руки и мастер ОДНОГО». По сути, это означает, что вы должны быть хороши во многих вещах и действительно хороши в одном.

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

TL; DR:

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

Что я бы сделал иначе

Найдите группу студентов для обучения

Я основал Launch School до того, как появился SPOT, но это отличный канал Slack для использования. Другие учащиеся Launch School добровольно помогают другим ученикам понять ключевые концепции, что еще раз показывает, какой тип учеников посещает Launch School.

В идеале вы захотите учиться со студентами, которые имеют примерно такой же уровень знаний, как и вы, найти студентов, которые продвинулись дальше, но готовы объяснить вещи (скорее всего, в SPOT), и сами найдите время, чтобы помочь другим студенты понимают концепцию или только начинают. Обучая / помогая им, вы закрепите эти концепции в своей голове. Лично я лучше всего учусь в группе.

Подождите, пока у меня будет больше времени:

Не рекомендуется начинать эту программу, если внешние обязательства отвлекают (путешествия, семья и т. Д.)

Прочтите Глубокую работу Кэла Ньюпорта

Действительно помогло мне с моей нагрузкой. Я очень рекомендую эту книгу.

Прочтите в уме для чисел, Барбара Окли, доктор философии

Отличная книга об аналитическом мышлении и о том, как работает ваш мозг.

Используйте Anki, чтобы вспомнить методы и концепции

Анки - это настоящее средство для изучения / запоминания.

Просто для развлечения:

Случайные жизненные проблемы ENTP:

Https://www.lifereaction.com/entp-life-problems/