Можно ли научиться мыслить, как программист?
18.04.2018 17:44
—
Разное
|
Все, кто интересуется программированием, наверняка знают эту цитату Стива Джобса: «Каждый человек на планете должен учиться программированию на компьютере, потому что оно учит думать». До и после него многие задавались вопросом, что значит «думать, как программист», и как этому научиться. Ответы на эти вопросы Способность к решению задач — универсальный навык. У всех людей в любой сфере жизни возникают те или иные проблемы, но к их решению многие подходят достаточно бессистемно. Те, у кого нет для этого чёткого алгоритма, чаще всего решают задачи так:
И иногда им везёт. Но это худший метод решения задач, какой только можно придумать, и к тому же jy отнимает слишком много времени. Гораздо практичнее:
По результатам На данную тему можно почитать много полезных книг, например, «
Вот какой алгоритм предлагает он для успешного решения проблем. 1. ПониманиеНужно чётко понимать суть задачи. Зачастую «сложные» задачи лишь кажутся таковыми потому, что человек неправильно их понимает. Выяснить это достаточно просто: понятную задачу легко сформулировать другому простым языком. Многим программистам знакомо чувство, когда, «застряв» на проблеме, они пытаются её объяснить, и сразу начинают замечать пробелы в логике, которых до этого не осознавали. Поэтому задачу нужно записать, нарисовать схему или попробовать рассказать о ней другому человеку (или «
2. ПланНельзя бросаться решать задачи без чёткого плана и надеяться кое-как довести дело до конца. Ничто не поможет, если человек не может разбить задачу на несколько конкретных шагов. Но не стоит забегать вперёд: мозгу необходимо некоторое время, чтобы проанализировать проблему и обработать имеющуюся информацию. Чтобы составить план, нужно ответить на вопрос: «какие шаги нужно предпринять, чтобы из условия А получить результат В?». Программисты обычно делают это в комментариях. 3. АнализЭто самый важный шаг из всех. Нужно не браться за одну большую задачу и ожидать гарантированного провала, а разбивать её на несколько более простых подзадач — решить их по отдельности будет значительно легче. Начинать нужно с самой простой: с той, ответ к которой уже известен или очевиден, а также не зависит от решения остальных подзадач. После того, как все подзадачи решены, нужно собрать ответы воедино, и в комплексе они станут решением исходной проблемы. Данная техника — основа решения любых задач в принципе.
Если решить подзадачу по-прежнему не получается, нужно сделать глубокий вдох и не нервничать: такое случается со всеми. Лучшие программисты и «решатели» отличаются лишь тем, что ошибки у них вызывают не раздражение, а любопытство. В случае неудачи могут пригодиться три вещи: 1) отладка: нужно пошагово пройти по решению в поиске ошибок.
2) переоценка: нужно сделать шаг назад и посмотреть на проблему под другим углом. Возможно, какими-то деталями можно будет пренебречь в пользу более общего подхода.
Ещё один потрясающе эффективный метод переоценки — начать всё заново. Нужно просто удалить всё написанное и посмотреть на задачу новым взглядом. 3) помощь друга: например, Google. Какой бы ни была задача, скорее всего кто-то другой уже решал что-то подобное. Искать альтернативные способы имеет смысл, даже если человек уже решил задачу самостоятельно: всегда полезно учиться на чужом опыте. Но нужно искать решение не комплексной задачи, а отдельных подзадач, потому что если не приложить хотя бы минимум усилий, невозможно чему-либо научиться. А если ничему не научиться — это просто пустая трата времени. ПрактикаБессмысленно ждать выдающихся результатов уже через неделю. Чтобы действительно овладеть этим навыком, нужно перерешать массу задач. Только со временем и постоянной практикой придёт понимание того, как легко находить подход к той или иной проблеме. Есть масса возможностей на любой вкус, чтобы тренироваться — например, шахматы, математические задачи, написание кода, судоку, го, «Монополия», видеоигры. Успешные люди постоянно тренируются на таких небольших головоломках: Илон Маск, Рид Хоффман, Марк Цукерберг и многие другие предприниматели утверждают, что свои успешные компании им удалось построить именно благодаря видеоиграм. Это не означает, что достаточно просто стать геймером. Суть игр — тоже решение проблем, и чтобы отточить навык, нужно каждый день тренироваться решать задачи, находя в них одну основу.
Чтобы разместить новость на сайте или в блоге скопируйте код:
На вашем ресурсе это будет выглядеть так
Все, кто интересуется программированием, наверняка знают эту цитату Стива Джобса: «Каждый человек на планете должен учиться программированию на компьютере,...
|
|