Программисты постоянно сталкиваются с задачами, которые не совсем понимают или даже на данный момент не знают, как их реализовать. Это нормально. Львиная доля работы программиста заключается во взаимодействии с поисковиками и поиске алгоритма решения или какой-то проблемы, из-за которой код работает неправильно или «падает» с ошибкой. Когда я только начинал обучаться на Хекслете у меня часто возникал ступор перед тем или иным заданием, которое нужно выполнить в конце почти каждого урока. Помимо того, еще есть куча испытаний для закрепления материала, которые я иногда тоже не мог выполнить по несколько дней.
В общем, если вы только начинаете во все это погружаться, то наверное уже поняли, что я имею в виду. Поверьте, здесь вы не одиноки 😀. Главное понимать, что с такой проблемой сталкиваетесь не только вы, но и масса других людей, которые начали изучать программирование, а решение рано или поздно вы найдете, если не бросите все к чертям 😀.
Итак, что можно предпринять или попробовать сделать, если у вас наступил такой момент, а зеленые галочки тестов так и не загораются.
Передохните! Серьезно, сделайте перерыв. Если голова кипит, а на поиски решения вы потратили уже несколько часов, то не нужно продолжать биться головой об стену — просто займитесь чем-нибудь другим. Смена деятельности перезагрузит ваш мозг и позволит со свежим взглядом взглянуть на проблему при повторном возвращении к ней. Почитайте комментарии в обсуждении к заданиям и то, как люди буквально сразу находили решение после того, как давали себе отдохнуть. Таких примеров можно найти очень много.
«Ешьте слона по кусочкам». Разбейте задачу на более мелкие и сначала попытайтесь реализовать их. Как правило, с большинством таких подзадач вы справитесь без проблем, а там уже их сложите в окончательное решение. Это как собрать пазл или кубик Рубика.
Перенимайте опыт и практику других, более опытных людей. Как правило, с вашей проблемой уже сталкивался кто-то другой и вам нужно всего лишь найти подобный опыт и разобраться в том, как он был реализован. Все это можно найти на различных форумах, блогах или специализированных ресурсах для программистов, таких как «Stack Overflow» и им подобных.
Дебаггинг. Рано или поздно вам придется столкнуться с отладкой программ и их тестированием. На начальном уровне используйте отладочную печать (
console.log
) и анализируйте входные и выходные параметры переменных, констант и функций, что они возвращают, какие принимают параметры, с какими аргументами вызываются и так далее. Многие забывают вернуть результат из функции с помощью ключевого словаreturn
, а потом удивляются, почему ничего не работает 😀. Также внимательно смотрите за тем, что и как вы пишете. Иногда из-за банальной синтаксической ошибки падает весь код и если ее исправить, то все заработает.Поменяйте подход. Попробуйте уже начатое решение переписать с нуля, используя другой алгоритм или другой принцип реализации. Не переживайте, что придется начинать с нуля, возможно благодаря этому вы найдете правильное решение.
Попросите подсказку у более опытного программиста. Не стоит думать, что это плохая практика. Когда вы только начинаете и нарабатываете опыт, вы можете многого не знать, а о каких-то вещах даже не догадываться, что именно здесь можно было сделать вот так и тд. Все приходит с опытом, которым как раз таки более опытный коллега с вами и может поделиться. Не спрашивайте о каких-то простых вещах, которые можно нагуглить за 3 секунды — это будет неуважительно к тому, к кому вы обращаетесь с таким простым вопросом, на который и сами бы смогли найти ответ без труда в поисковике.
В заключение хочется сказать, что проблемы могут быть разными — какими-то простыми, с которыми вы и сами справитесь, немного подумав, так и очень сложными или даже архисложными, которые на данном этапе вы вряд ли осилите. Просто знайте, что практически не бывает проблем, которые невозможно решить и так или иначе в какой-то форме кто-то уже с подобным сталкивался. Короче, не сдавайтесь и рано или поздно у вас все получится, по-другому и быть не может.