Статья Джозефа Янушкевича, инженера-программиста RubyApps

Не существует универсального способа улучшить использование основ. Разработчики с техническим образованием (например, со степенью в области информатики, инженерии и математики) учатся мыслить таким образом в рамках своей курсовой работы; это единственный способ добиться успеха в своих классах. Это требует времени и практики. Если вы еще не читали мой пост Стать лучшим фронтенд-разработчиком, используя основы вместо эвристики для ознакомления с тем, что такое основы и почему они лучше эвристик.

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

1. Распознавайте, когда вы сбиты с толку и что вас смущает

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

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

Ничего страшного, если вы не знаете, как назвать то, в чем не уверены; если вы это сделали, то, возможно, вы не были сбиты с толку в первую очередь. Придумайте лучшее описание, которое вы можете придумать, или даже несколько описаний. Эти описания будут полезны, когда вы…

2. Ищите авторитетные ответы

Для разработчиков эвристики реакция мышечной памяти на замешательство состоит в том, чтобы выполнить поиск проблемы в Google и скопировать код из ответа Stack Overflow, набравшего наибольшее количество голосов. Хотя Stack Overflow может быть полезен для изучения того, как что-то называется, или определения новых способов решения конкретных проблем, он не является авторитетом в отношении используемых вами инструментов. Чтобы стать отличным разработчиком, вам нужно выйти за рамки эвристики и понять основы.

Mozilla Developer Network (MDN) — фантастический ресурс для поиска основ языка HTML, CSS и JavaScript. Например, вместо того, чтобы полагаться на примеры того, как разделить строку в JavaScript, вы можете пойти в MDN и прочитать документацию для String.prototype.split и посмотреть, какие именно аргументы он принимает и каково его возвращаемое значение. При поиске разделенная строка javascript эта страница MDN, скорее всего, будет отображаться в первых нескольких результатах.

Если вы не уверены в том, как работает какой-либо аспект библиотеки, такой как jQuery или React, или если она ведет себя не так, как вы ожидаете, зайдите в ее официальную документацию и узнайте, как она должна работать.

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

3. Потратьте время, чтобы полностью понять, с чем вы работаете

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

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

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

4. Свести проблему к основам языка программирования

В JavaScript большая часть вашей работы связана с базовыми типами, такими как object, number, string, boolean и function. Array и другие упомянутые типы являются просто особыми видами object. null и undefined также важно понимать. При решении проблем подумайте о типах данных, с которыми вы работаете, и используйте их основные свойства (такие как их методы и основные языковые операции) для создания решений.

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

5. Постоянно ищите новые знания

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

Еще один способ учиться — сотрудничать и перенимать хорошие привычки и передовой опыт товарищей по команде. Помимо работы над проектами и усилий по разработке продуктов, я учусь у своих коллег один из способов — это наш еженедельный RubyLunch — общекорпоративное собрание, которое (происходит за пиццей) приглашает разработчиков поделиться болевым синдромом, идеями и решениями для продвижения наших коллективных знаний.

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

+++

Мы нанимаем!

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