Читаем Умейте мыслить гениально. Как принять решение полностью

Алексей Пажитнов, создатель всем известной игры «Тетрис», в России был недооценен. Зато сейчас он работает в Редмонте, штат Калифорния. И его зарплата сравнима даже с деньгами, которые получает Билл Гейтс. На его счету такие разработки, как «Хатрис» и программное обеспечение для ряда видеоигр.

Да зачем нужны примеры? Разве у вас нет знакомого программиста, которой работает «за бугром» или уже пакует вещички, подписав выгодный контракт?

Компьютерная программа – скучное собрание математических символов? Нет! Это искусство. Как музыка или живопись.

Здесь есть и изящные миниатюры (компьютерные вирусы), и масштабные панорамы (игры и программы, создаваемые коллективами в сотню человек). Виды «кистей» зависят от жанра. Можно пользоваться неуклюжим, но четким машинным языком. А можно крутыми объективно-ориентированными «наречиями» вроде Smalltalk. Как и в искусстве, в программировании есть и дилетанты, и великие мастера. Последних мы и привыкли называть «хакерами».

Особенности мышления программистов:

• Постановка цели, четкий проект.

• Сделать проект максимально просто, не усложняя.

• Сделать свой продукт ценным для клиентов.

• Знание современных языков программирования пришло на смену знаний математики.

• Гибко подстраиваться под запросы клиента.

• Умение работать в команде разработчиков.

• Быть конкурентоспособным на рынке

– Почему ваши дети все время ссорятся?

– Kонфликт версий, – отвечает программист.

Составляющие мышления программистов.

• Высшее техническое образование. Креативное мышление. Профессионализм.

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

• Постоянный поиск нового. Все новые программные продукты увлеченные программисты осваивают до тонкостей. «Выжимают» максимум возможностей из новой техники. Коллекционируют всевозможные программные ухищрения и неожиданные решения.

• Фанатичная преданность своему призванию. Способность не спать и не есть ради скорейшего решения задачи. Самая большая радость программиста: удачно написанная программа, даже если автор – не он…

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

Совершенные программы, отдельные приемы программирования, удачные алгоритмы могут быть предметами коллекционирования и почитания.

Ильназ Гильязов, эксперт курса «Профессия веб-разработчик» университета digital-профессий Нетология уверен, что программисту необходимы следующие компетенции:

• Умение сформулировать/понять задачу.

• Умение упрощать.

• Умение декомпозировать, выделять главное, и выстраивать логическую цепочку.

• Умение выделять граничные значения и исключительные ситуации.

Михаил Субботин, преподаватель израильской высшей школы IT и безопасности HackerU считает, что главная задача программиста – понимать, как работает мир, разбивать сложные явления на простые инструкции, а потом собирать их воедино. Программист должен уметь правильно задавать вопросы и находить на них ответы

Сергей Шитиков, технический директор Суточно. ру подчеркивает, что самое важное качество разработчика, как и любого инженера – умение проектировать и прогнозировать возможные сценарии работы, отличные от стандартного. Что произойдет, если ответ от сервера не придет? А если придет, то вдруг он будет некорректный? Или будет идти слишком долго?

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

Один программист, радостно:

– Я тут с девушкой познакомился, красивая, обалдеть!

Второй, настороженно:

– А ты ее во всех браузерах видел?

Алгоритм мышления программиста.

1. Постановка цели и задач. Держи цель в голове, помни о цели своего проекта, как помочь пользователям оптимально и легко.

2. Уметь декомпозировать цели на задачи. И превращение их в а пошаговые алгоритмы.

3. «Затачивание головы под задачу». Поиск и анализ вариантов решения. Все внимание концентрируется на конкретной цели программы.

4. Контролируй сложность. «Управление сложностью – это сущность компьютерного программирования» – Брайан Керниган. Сложность – источник неудач программного обеспечения.

5. Автоматизируй то, что можешь, чтобы не заниматься рутиной. Не трать своё время на рутину. Настрой и забудь. Повторяющиеся задачи могут выполняться в фоне, пока ты спишь.

6. Отбор вариантов. Поиск наиболее эффективного и выгодного решения.

7. Тестирование программы, повышение качества написанного кода.

Перейти на страницу:

Похожие книги

10 гениев бизнеса
10 гениев бизнеса

Люди, о которых вы прочтете в этой книге, по-разному относились к своему богатству. Одни считали приумножение своих активов чрезвычайно важным, другие, наоборот, рассматривали свои, да и чужие деньги лишь как средство для достижения иных целей. Но общим для них является то, что их имена в той или иной степени становились знаковыми. Так, например, имена Альфреда Нобеля и Павла Третьякова – это символы культурных достижений человечества (Нобелевская премия и Третьяковская галерея). Конрад Хилтон и Генри Форд дали свои имена знаменитым торговым маркам – отельной и автомобильной. Биографии именно таких людей-символов, с их особым отношением к деньгам, власти, прибыли и вообще отношением к жизни мы и постарались включить в эту книгу.

А. Ходоренко

Карьера, кадры / Биографии и Мемуары / О бизнесе популярно / Документальное / Финансы и бизнес