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

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

1. Программирование — это больше, чем просто набор кода

Чаще всего голливудские фильмы изображают хакера/программиста как интроверта, сидящего перед своим компьютером и непрерывно печатающего 200 слов в минуту. Этот легендарный хакер может работать в одиночку, и ему не нужно время, чтобы найти решение, чтобы остановить ядерную бомбу или взломать сложную военную систему. Браво. Какой парень! Тем не менее, это полностью БС. Позвольте мне объяснить, почему.

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

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

2. Искаженное чувство сложности

  • "Почему это так долго? Мне кажется, это простая задача».
  • "Не могли бы вы просто скопировать и вставить код для реализации этой функции?"
  • «Почему вам нужно так много ресурсов для реализации этой функции? Мне это кажется простым».
  • "Почему эта функция не работает должным образом? Я думал, что это простое решение».
  • "Вы можете быстро добавить эту функцию? Это не так важно».
  • "Почему в этой функции так много ошибок? Я думал, что это основная задача».

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

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

  1. Сложность: несмотря на то, что функции могут показаться похожими, они могут иметь разный уровень сложности. Одна функция может иметь больше зависимостей или требовать более сложных алгоритмов, что усложняет ее реализацию. Например, предположим, что у нас есть небольшой веб-сайт электронной коммерции, на котором всего несколько сотен продуктов. Внедрение функции поиска для этого веб-сайта может включать простое использование базового алгоритма поиска для просмотра названий и описаний продуктов. Однако, если на веб-сайте есть каталог из миллиона товаров с разными вариантами товаров, цен и атрибутов. Функция поиска становится более сложной для реализации, поскольку она должна учитывать все варианты и атрибуты продуктов, а также использовать более продвинутые алгоритмы поиска для предоставления точных результатов поиска. Для реализации этой функции потребуется больше ресурсов и времени, и ее будет сложнее тестировать и отлаживать.
  2. Данные. Для функций могут потребоваться различные типы данных, и сбор или обработка этих данных может быть сложной задачей.
  3. Пограничные случаи: аналогичные функции могут иметь разные пограничные случаи, которые необходимо обрабатывать, что может усложнить реализацию.
  4. Технические ограничения. Функции могут иметь различные технические ограничения, такие как производительность, безопасность или масштабируемость, которые необходимо учитывать и учитывать, что может усложнить реализацию.

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

3. Знания языка программирования недостаточно

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

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

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

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