Введение

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

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

Образ мышления учащегося

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

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

  • Готовность экспериментировать
  • Принятие того, что вы будете делать ошибки
  • Понимание того, что ваше улучшение не будет линейным
  • Зная, что настойчивость окупается

Готовность экспериментировать

Экспериментируйте! Часть обучения требует готовности экспериментировать с понятиями, которые вы не совсем понимаете. Когда вы столкнетесь с этими концепциями в программировании, напишите код, чтобы улучшить ваше понимание. Напишите код, который проверяет граничные случаи и нормальный ожидаемый вариант концепции, которую вы пытаетесь понять, просто чтобы посмотреть, что произойдет. Пока вы не выполните эквивалент «rm -rf /» в UNIX (удалите все на вашем компьютере), все будет в порядке. И даже если вы это сделаете, вам просто нужно будет переустановить ОС. Все это означает, что у вас должна быть резервная копия всего важного на отдельном флэш-накопителе, прежде чем вы начнете экспериментировать. После того, как вы сделали резервную копию, рискните потратить время впустую; лучше потратить 5–10 минут на то, чтобы быть уверенным, чем не тратить время и проводить все время в мире, не зная ответа.

Признание того, что вы сделаете ошибку

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

Понимание того, что ваше улучшение не будет линейным

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

Непоколебимая приверженность Perservere

Программное обеспечение - это сложно. Очень трудно. Вы облажаетесь. Иногда плохо. Плохо миллионы долларов (надеюсь, нет). Вы должны продолжать попытки, если решите участвовать в игре. Плохие вещи будут происходить, но вы должны продолжать. В какой-то момент кому-то, кто работал над Crash Bandicoot для PlayStation, потребовалось ШЕСТЬ НЕДЕЛЬ, чтобы найти источник ошибки в игре; Оказывается, проблема была не в игре, а в железе. Иногда вам нужно иметь такой же уровень приверженности, если вы хотите чего-то добиться. Кроме того, иногда все, что вам нужно, - это другой подход. Однако, в конце концов, вы все равно должны выбрать подход.

Образ мышления программиста

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

  • Чтение и понимание кода
  • Внимание к детали
  • Решение проблем

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

Чтение и понимание кода

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

Внимание к деталям

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

Решение проблем

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

Если вы застряли, я предлагаю алгоритм Free Code Camp: читать-искать-спрашивать. Если вы застряли, прочтите сообщение об ошибке и соответствующую документацию. Все еще застряли? Ищите информацию в Интернете. Все еще застряли? Найдите наставника онлайн или лично и спросите.

Образ мышления мастера

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

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

Заключение

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