Найти тему
Skillbox

Зачем программисту решать теоретические задачи

Оглавление

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

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

Поэтому специалисты предпочитают развиваться только в том, что им точно пригодится. При этом существуют специальные сайты, на которых можно решать задачи в отрыве от их практического применения. Например, написать функцию, которая проверяет числа от 1 до 100 на кратность 2 и 3.

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

Собеседования

В первую очередь, это может быть интересно тем, кто собирается проходить собеседование. Многие из них проходят в несколько этапов — сначала разговор с HR, а потом с ведущим программистом.

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

-2

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

Понимание принципов работы кода

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

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

Развитие нестандартного мышления

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

Например, научившись один раз отправлять запросы в базу данных с помощью mysqli_query(), многие даже не попытаются узнать, что существует PDO — более безопасная и эффективная технология.

Вам также будет интересно:
Cat, Mouse и Brainfuck: сколько языков программирования существует в мире.
С какого языка начать изучение программирования самостоятельно.
JavaScript: главный инструмент frontend-разработчиков.

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

Оттачивание навыков

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

Курс «C#-разработчик с нуля»
Практический четырехмесячный курс для тех, кто хочет овладеть языком программирования с индивидуальным наставником и положить первое десктопное приложение к себе в портфолио.
Программа курса

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

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

Повышение самооценки

Последняя причина, но не менее важная, чем все остальные — поднятие самооценки. Многие программисты считают, что значительно уступают своим коллегам, даже если это не так.

-3

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