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

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

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

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

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

Подход «проблема-решение» — это способ рассматривать проекты как набор проблем. Преимущество этого позволяет нам объективно видеть, что требуется от нас для выполнения задач, чтобы мы могли удовлетворить наши требования и реализовать проект.

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

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

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

— — —

Хочу больше?

Рассылка: https://intully.com

Страница в Facebook: https://fb.com/intully

Сообщество Facebook: https://fb.com/groups/

Ютуб: https://www.youtube.com/channel/UC9FDIBZ3TA-nuV8htWn9n9Q