Наверняка вы знаете пару анекдотов о программистах, которые выделяют отличие образа мыслей программистов и отношение других людей к ним.
Здесь действительно есть большая разница между мировоззрением. Основное отличие программистов – это внимание к деталям построения систем. Если обычный пользователь видит просто кнопку, то программист за этой кнопкой видит как минимум следующие неявные элементы:
- расположение кнопки и логика вывода,
- различные состояния (при наведении, блокировка кнопки и т.д.) кнопки в зависимости от состояния страницы,
- права доступа на выполнения операции,
- логирование операции,
- выполнение бизнес-логики по нажатию,
- формат вывода результата операции.
Когда программист начинает грузить этим обычного пользователя, тот начинает вопросительно смотреть на программиста. Мир пользователя по-своему прост и прекрасен – в нем нет всех этих нюансов. Но программист так не может – ведь ему надо КОНКРЕТНО реализовывать систему, а не “просто поставить кнопку”.
Думаю, хорошая аналогия – это Природа и Человек. Человек просто использует дары природы, не особо заботясь как внутри все это устроено (растет себе дерево, и ладно). Но как только мы начали изучать более глубоко процессы Природы, становится ясно как все очень сложно устроено. От обычного человека эта сложность скрыта, он просто принимает эту сложность как данность.
Примечание. Я буду вставлять малые задания в ходе этого руководства. Если вы намерены стать программистом, то прошу их выполнять сразу по ходу чтения. Именно собственная практика дает результат, а не чтение.
Задание
Осмотритесь вокруг себя, найдите предметы и системы, которые кажутся вам простыми и понятными. Теперь попробуйте мысленно представить процесс создания подобной системы. Чем глубже и детальнее вы будете представлять нюансы и препятствия – тем точнее будет ваша система.
Согласитесь, это совсем другой взгляд – большинство людей вообще не осознают сложности процессов и систем (например, устройство телефона или создание малого предприятия). Развивайте в себе этот навык и постоянно мысленно создавайте системы.
Хороший способ развить в себе подобное мышление – это шахматы. В шахматах сложно “уговорить” фигуры ходить по-другому. Тут действует жесткая причинно-следственная связь. Это именно то, чем мы руководствуемся при разработке программ.
Главный навык программиста
Чтобы быть программистом, нужно много что знать и уметь. Но главный, на мой взгляд, навык – это умение постоянно решать проблемы (или задачи). Обычно это либо новые технические задачи, либо исправление ошибок или системных проблем.
Важно понимать, что проблемы будут всегда. Позитивное мышление – это хорошо. Но еще лучше – это жить в реальности. Вы должны быть готовы к проблемам и уметь эффективно решать их. Если вы не научитесь это делать, то вы будете избегать ошибок и проблем, что вероятно усугубит их. Сразу привыкайте к готовности решать любые проблемы.
Следствием из этого навыка является необходимость постоянного развития и совершенствования своих знаний и технических навыков. Технологии меняются, улучшаются, становятся более сложными. Чтобы решать новые проблемы, связанные с этими технологиями, необходимо знать эти технологии изнутри.
Периодически мы проводим обучение и даем возможность стажировки на базе нашей платформы с управлением на SQL. Если вам это интересно, то пожалуйста посмотрите информацию об обучении/стажировке по SQL.
← Введение. Кто такой программист? | Качества хорошего программиста → |