Мысли как программист, чтобы находить необычные решения

Родион Махов
Апрель 16, 2018
3.3k
0
Образ жизни
в избранное
Стив Джобс однажды сказал фразу, которая останется актуальной до тех пор, пока человечество тесно связано с миром технологий:

Каждый человек должен научиться программировать компьютер, потому что он учит вас думать.

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

«Практически все работодатели сначала ставят приоритеты в решении проблем. Умение решать проблемы является самым важным навыком, который работодатели хотят видеть у своего сотрудника: оно важнее, чем знание языков программирования, отладка и дизайн системы. Демонстрация вычислительного мышления или способность преодолевать большие сложные проблемы столь же ценны (если не более), как и базовые технические навыки, необходимые для работы» — цитата на одном из крупнейших хакерских форумов.

Так что же ты должен делать, столкнувшись с очередной проблемой?

1. Пойми суть

Большинство проблем могут показаться нерешаемыми, потому что ты не понимаешь их сути. Но как найти ее, если кажется, будто нет выхода? Разложи ситуацию на составляющие и объясни все максимально простым языком. Когда ты проговариваешь каждый волнующий тебя момент и ищешь решение, то вскоре найдешь логические несостыковки, которые помогут выйти из ситуации. Большинство программистов так и поступают, когда пытаются найти ошибку в коде: они ищут «дыры» в логике действий и системы. Вот почему ты должен раскладывать каждую ситуацию и объяснять все происходящее простым языком — делай это для самого себя.

«Если вы не можете объяснить что-то простым языком, вы этого не понимаете».
– Ричард Фейнман –

Как увеличить силу своего мозга и научиться нестандартно мыслить

2. Составь план

Не предпринимай никаких действий, не составив предварительного плана: это может лишь ухудшить положение. Тебе вряд ли что-то поможет, если не будет понимания, какие шаги необходимо предпринять для того, чтобы выйти из сложившейся ситуации. Ни один программист не полезет разбираться в коде, если у него не будет четкого плана действий: в противном случае результат может быть удручающим.

3. Дроби проблему на составные части

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

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

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

Уменьшите проблему до того момента, когда вы знаете, как ее решить, и напишите решение. Затем немного разверните проблему и перепишите решение, чтобы оно соответствовало. Продолжайте движение, пока вы не вернетесь туда, откуда начали».

В. Антон Шпрале

Как тренировать свой мозг, чтобы мыслить по-новому

4. Что делать, если все-таки безнадежно застрял

Что же, подобные неудачи происходят со всеми — главное, сделай глубокий вдох и успокойся: паника лишь усугубляет ситуацию. Профессиональные программисты смотрят глубже и пытаются бороться не с симптомами, а с самой проблемой. Зачем пытаться противостоять последствиям, если необходимо решить именно ее?

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

5. Практикуйся

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

Как научиться мыслить подобно Альберту Эйнштейну и Илону Маску