Базовый стереотип о разработчиках программного обеспечения — очень упитанный или очень тощий парень, постоянно набирающий непонятный буквы на черно-зеленом экране с огромной скоростью.

Image result for What people think programming is vs. how it actually is gif

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

Почему программирование — это не просто знание языка? Попробуем разобраться.

Строение стула

Разберите понятие “стул” до мельчайших составляющих. Это объект материального мира, состоящий из набора атомов. Состав, форма и размер стула — изменяемые параметры, задаваемые перед созданием объекта. Обычно используют, чтобы интерактировать с ним действием, которое люди называют “сидеть” и так далее.

Получилось бы у вас сделать подобное с любым известным вам объектом, охватив максимальное количество вариантов за минимальное время? Не факт, а создание программ так и происходит.

Related image

Процесс программирования тесно связан с работой в абстрактной среде с абстрактными понятиями. Грубо говоря, программы — перемещения абстрактных объектов и запись результатов этого перемещения при помощи электроники.

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

Зачем нужен стул

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

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

Image result for качели программирование

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

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

Этот стул самый лучший

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

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

Image result for программирование комиксы

Это сложнее, чем казалось

Подводя итоги, скажу, что не стоит верить рекламе в интернете а-ля “Стань программистом за одну миллисекунду”. Эта профессия требует огромного набора навыков из различных сфер и, что более важно, другого типа мышления.

Абстракции, логика, математика, глубокое понимание, что и формирует тот уникальный тип мышления, о котором я говорю.

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

Image result for code symbol png

Автор: технический гений Даниил Колосов