Думай как хакер — станешь сильным лидером!
Источник: "Идеономика"
Дэвид Тетен (David Teten), предприниматель, партнер венчурного фонда ff Venture Capital, утверждает, что лидеры, которые применяют в бизнесе свое алгоритмическое мышление, реально меняют расстановку сил на рынке. Дэвид предлагает свое видение того, как алгоритмически мыслящий человек подбирается к оптимальному решению и может адаптировать программистский подход к проблемам бизнеса.
Дэвид Тетен
(David Teten)
|
Что общего у Марка Цукерберга, Джеффа Безоса и Ларри Пейджа? Да, все они создали компании с многомиллиардными оборотами, не имея бизнес-образования. Но еще все они — бывшие разработчики софта и хакеры, и этот опыт, несомненно, научил их критически мыслить и решать проблемы. И принимать умные решения не только по продуктам, но и по продажам, маркетингу, рекрутингу и всем другим аспектам бизнеса. (Безос до основания Amazon работал в хедж-фонде DE Shaw, но его задачи там не имели особого отношения к предпринимательству или управлению компанией.) Я считаю, что их программистский опыт был критически важен для успеха и во всех остальных областях.
Я всерьез не занимался программированием после 30 лет, но не сомневаюсь, что мой опыт обучения программированию в 12 лет, а также преподавание программирования детям и взрослым изменили мое представление практически обо всех сторонах жизни. Я одержим анализом фактов и формальным описанием процессов в инвестировании, образовании и даже в моих личных делах.
Главный разработчик Conigent Джастин Джеймс говорит, что хорошие программисты понимают не только то, что делает их программа, но и как и почему она это делает. Программирование — это, по сути, решение проблем на высоком уровне анализа.
Но писать программы — дело нелегкое. Компиляторы не принимают двусмысленностей и неточностей повседневной речи. Если программист может объяснить проблему так, чтобы компьютер ее понял, эта проблема уже, можно сказать, решена. И отличный программист почти всегда найдет способ решить проблему с помощью компьютера.
Так что не удивительно, что лидеры, которые применяют в бизнесе свой программистский опыт и алгоритмическое мышление, меняют расстановку сил на рынке. Алгоритмически мыслящий человек обычно находит более умное решение и отбивает доходы у менее сметливых конкурентов.
Скептически настроенный читатель, наверное, думает, что алгоритмическое мышление — абстрактное и не слишком нужное, что это излишние мудрствования. Вовсе нет: не суметь применить правильный алгоритм — ошибка, которая обходится куда дороже, чем время, потраченное на поиск оптимального решения. Вот основные шаги, с помощью которых алгоритмически мыслящий человек подбирается к решению:
- Проанализируйте и четко определите проблему. Для чего вы ищете решение? Какая информация доступна? Есть ли ограничения? Элегантное решение — это простое решение, а простое решение устраняет все, что не ведет к ответу.
- Разбейте проблему на составляющие. Какие конкретные шаги нужны, чтобы полностью решить проблему. Полезно на этом этапе решить упрощенный пример.
- Отшлифуйте базовое решение. Не окажется ли, что отдельные шаги повторяют другие или что это уже решенные ранее проблемы?
- Примените эти начальные шаги к более частным проблемам, обнаруженным на шаге 3.
- Реализуйте решение каждой частной проблемы. Важно заранее проработать повторяемость решения — определять термины, добавлять объяснения и т.д.
- Проверьте в деле решение каждой подпроблемы. Проверьте пограничные случаи. Тщательное тестирование каждого модуля в отдельности позволяет программистам быстро искать ошибки, а не прочесывать код всей программы. Этот принцип применим практически ко всем сложным системам.
- Найдите минусы решения и постепенно его усовершенствуйте. Программирование — это зачастую умение вернуться к своей работе, заново что-то оптимизировать или подправить, т.е. никогда не удовлетворяться сделанным. Движение Lean Startup основано на этой же философии.
- Когда все решения более частных проблем протестированы и отточены, переходите к общему решению.
Как адаптировать этот программистский подход к проблемам бизнеса? Есть два полезных механизма:
- Фиксируйте процесс и результаты. В краткосрочной перспективе это лишний труд, но в долгосрочной перспективе это делает вашу работу куда более практичной и полезной.
- Планируйте процесс на долгую перспективу и на автоматизированное использование. Важнейшая черта хороших программистов — это способность жертвовать текущим удобством ради устойчивого долгосрочного решения. Легкие и короткие пути дают немасштабируемый, полный проблем код. Первоклассные программисты держат в уме долгосрочные последствия своей разработки. Они способны контролировать свои порывы и откладывать момент удовлетворения.
Известно исследование: дети, которые способны сопротивляться искушению съесть мармеладку в течение 20 минут (чтобы получить вторую мармеладку), оказываются более психологически устойчивыми, более надежными и демонстрируют более высокие результаты в стандартных тестах, чем дети, которые съедают конфету сразу. К счастью, можно укрепить самоконтроль, если вы учитесь думать о мире в более глобальном, абстрактном смысле, разглядывать более общую картину.
Алгоритмическое мышление ориентировано на процесс и всеохватно. Оно заставляет осмыслять проблемы, разбирать их логическую структуру, учитывать возможные случайности и формулировать решение. Поскольку редко когда правильный ответ только один, это вынуждает постоянно искать новые варианты и более достойные решения. А самое главное, алгоритмы легко освоить.
Что еще в вашей жизни поддается подсчету?
По материалам "How to Think Like a Hacker, Even if You Can’t Code", David Teten.
|