Базовый стереотип о разработчиках программного обеспечения — очень упитанный или очень тощий парень, постоянно набирающий непонятный буквы на черно-зеленом экране с огромной скоростью.
Подобные архетипы порой подтверждаются, но в голове у профессионалов отнюдь не сборник заклинаний, которые заставляют любую технику работать и творить чудеса.
Почему программирование — это не просто знание языка? Попробуем разобраться.
Строение стула
Разберите понятие “стул” до мельчайших составляющих. Это объект материального мира, состоящий из набора атомов. Состав, форма и размер стула — изменяемые параметры, задаваемые перед созданием объекта. Обычно используют, чтобы интерактировать с ним действием, которое люди называют “сидеть” и так далее.
Получилось бы у вас сделать подобное с любым известным вам объектом, охватив максимальное количество вариантов за минимальное время? Не факт, а создание программ так и происходит.
Процесс программирования тесно связан с работой в абстрактной среде с абстрактными понятиями. Грубо говоря, программы — перемещения абстрактных объектов и запись результатов этого перемещения при помощи электроники.
Полное погружение в эфемерные миры, стоящей перед тобой задачи, — залог ее хорошего понимания, что критично для качественного выполнения. Развитое абстрактное и структурное мышление здесь основополагающие, ведь программист — тот человек, который эти миры строит.
Зачем нужен стул
Понимание назначения стула еще одна важная задача. В основном заказчик хочет, чтобы на стуле сидели. Притом долго и с удовольствием и, ах, да, дешево. Но он говорит, что нужно сделать “самый лучший стул”.
Программист посмотрит на это и сделает самый лучший стул… для самообороны. Вращающиеся горящие шипы на всех ножках и сидушке — определенно то, что хочет заказчик.
Хорошего программиста отличает четкое понимание задачи, которую ставит даже самый некомпетентный заказчик. Принять задание, запросить детали или вовсе отказаться — осознанный выбор, который поможет заработать намного больше денег, чем без него.
Такая внутренняя чуйка формируется либо из кучи набитых шишек, либо из понимания предметной области, в которой работает заказчик. Впитывать информацию на постоянной основе и уметь полезно применять ее — отличительная черта опытного прогера.
Этот стул самый лучший
Для того, чтобы прогеру было комфортно работать ему нужно уметь неплохо коммуницировать с обитателями экосистемы, в которой он работает. Презентация более эффективного решения, объяснение неэффективности предлагаемого маглами решения и прочее.
Именно ваши стулья должны быть самыми обоснованными и самыми лучшими, но не забывайте слушать более компетентных в других областях товарищей, иначе стул выйдет слишком прогерским.
Это сложнее, чем казалось
Подводя итоги, скажу, что не стоит верить рекламе в интернете а-ля “Стань программистом за одну миллисекунду”. Эта профессия требует огромного набора навыков из различных сфер и, что более важно, другого типа мышления.
Абстракции, логика, математика, глубокое понимание, что и формирует тот уникальный тип мышления, о котором я говорю.
Если вы хотите выбрать этот путь, будьте готовы к тысяче и одному препятствию. Но, поверьте, это того стоит — навык сегодняшнего дня, как никак, а тем более будущего.
Автор: технический гений Даниил Колосов