Два года назад я оставил докторскую степень по физике, присоединился к стартапу и научился работать разработчиком программного обеспечения. Мне пришлось радикально изменить то, как я учился и подходил к проблемам.

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

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

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

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

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

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

Чтобы стать программистом с нуля, выполните следующие действия:

  1. Станьте подражателем. Подражайте более опытным программистам.
  2. Будьте поверхностны: узнавайте только то, что вам нужно знать для решения конкретной проблемы.
  3. Запускайте раньше: начните с того, чтобы что-то (что угодно!) работало как можно быстрее.
  4. Каждая ошибка - это урок. Когда вы обнаружите ошибку, глубоко погрузитесь в нее, чтобы понять ее как можно полнее.

Рассел - наставник по науке о данных и технический директор компании SharpestMinds, подписывайтесь на него в твиттере @russ_poll

Первоначально опубликовано на http://russellpollari.com 22 апреля 2019 г.