«Как мне узнать, добьюсь ли я успеха как программист?» — распространенный запрос на Reddit и Quora (Фактически, этот пост является продолжением более раннего ответа Quora.) Программирование неизбежно поднимается, когда кто-то рассматривает возможность смены карьеры или интересуется разработкой программного обеспечения и интересуется требования.

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

Я проинструктировал многих «программистов-новичков» в качестве преподавателя Full-Stack Web Development. Хорошая новость заключается в том, что я редко сталкиваюсь со студентами, которые не могут изучать программирование. Подобно чтению, письму и вычислениям, я считаю это фундаментальной человеческой способностью. Это человеческая способность, которой может достичь каждый, но ей нужно учиться.

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

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

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

1: Отсутствие интереса

Вы никогда не добьетесь успеха как программист, если у вас нет интереса к компьютерам и технологиям.

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

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

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

2: Отсутствие независимости и творчества

Вы никогда не добьетесь успеха как программист, если не научитесь решать проблемы самостоятельно.

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

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

Все языки программирования имеют очень четкую документацию и спецификации, которые объясняют, как работает язык. Быть хорошим гуглом тоже полезно. Подобно использованию словаря, вы ищете слово, когда видите незнакомое вам слово. Простое чтение документации — самый быстрый и надежный способ улучшить свои навыки программирования. Там все в порядке.

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

3. Нежелание сдаваться при столкновении с проблемой

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

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

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

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

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

4: Нет чувства выполненного долга в решении проблемы.

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

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

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

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

5: Нетерпеливость в понимании и обучении

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

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

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

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

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

6: Размышление заставляет меня скучать или утомляться.

Вы никогда не добьетесь настоящего успеха в программировании, если будете думать лениво и рассматривать концентрированное, сфокусированное мышление как рутинную работу.

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

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

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

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

7: Неспособность мыслить независимо

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

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

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

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

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

8. Жесткое, узкое и/или неорганизованное мышление.

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

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

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

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

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

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

9. Ищите «правильный» ответ вместо того, чтобы видеть диапазон «хороших» и «плохих» ответов

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

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

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

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

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

10: Не обращать внимания на детали

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

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

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

Дьявол, как говорится, кроется в деталях. И программирование не является исключением.

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

Бонус: непредвзятость

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

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

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

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

Заключение

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

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

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

Присоединяйтесь к Каналу Telegram и Каналу Youtube Coinmonks, чтобы узнать о криптотрейдинге и инвестировании

Также читайте