В IT-сообществе существует определенный культ глубоких знаний, последователи которого считают, что если ты не знаешь во всех подробностях устройство архитектуры компьютера и не пишешь на ассемблере, то ты вообще не программист. Однако суровые реалии современного бизнеса говорят обратное, узкоспециализированные специалисты в одной области менее востребованы, чем много профильные «мастера на все руки», которые обладаю не самыми глубокими познаниями, но во многих областях. Давай разбираться, почему это так?
Главный фактор, влияющий на это – бизнес. Многопрофильный специалист может быть банально дешевле в плане оплаты труда, но при этом найти ему применение на порядок проще.
Глубокие знания далеко не всегда нужны каждому работодателю. Даже больше можно сказать, что большинству контор решают базовые задачи (создание простых веб-приложений и сайтов, внедрение и интеграция готовых информационных систем, поддержка, аутсорс и аутстаф разработка), в которых переплачивать за глубокие знания просто бессмысленно. Да еще и работнику с высоким уровнем будет банально скучно решать типичные задачи. Но именно это направление бизнеса больше всего представлено на рынке.
Намного проще (и дешевле) иметь в штате крепких середнячков, которые звезд с неба не хватают, но при этом способны быстро решать большинство проблем заказчиков. Да, при возникновении реальных трудностей, таким специалистам достаточно сложно разобраться в сути и причинах проблемы. И на такой случай выгоднее единоразово обратиться за помощью к гуру, но не держать его на окладе на постоянной основе.
При этом следует заметить, что в некоторых областях разработки без действительно глубоких знаний в одной предметной области действительно не обойтись. Там реально интересные, сложные, креативные задачи, для решения которых потребуются вся имеющаяся информация. А обладать по-настоящему глубокими знаниями во многих областях практически не реально для человека, технологии слишком быстро развиваются и слишком объемны при доскональном изучении, и чисто физически может не хватать времени и памяти, чтобы держать все это в голове.
Но выбирая такое направление нужно быть на сто процентов уверенным, что ты готов посвятить этой теме всю свою карьеру, ведь сконцентрировавшись на чем-то одном, в другом ты будешь знать на много меньше. И если вдруг ты перегоришь, то будет очень тяжело как морально, так и финансово начинать почти с нуля. Вспоминается поговорка, что не нужно хранить все яйца в одной корзине. Но я еще раз хочу подчеркнуть, что настоящих грандиозных успехов можно добиться, если сконцентрироваться на одном. Здесь тебе нужно хорошо поразмыслить о себе и своих целях, и принимать решение самостоятельно.
Кстати, сейчас все более популярной становится профессия архитектора, который как раз обладает знаниями об огромном количестве библиотек, фреймвоках, паттернах и правил, при этом умея быстро и оптимально их комбинировать для решения проблемы заказчика. Это позволяет на порядок сократить количество собственных разработок компании, экономить бюджет и увеличивать скорость разработки.
Еще хочу уточнить, что на начальном этапе обучения разработке ни в коем случае не нужно распыляться на одновременное изучение множества языков программирования. Изучи для начала хорошо один язык, и только потом, когда действительно будет опыт практического применения и понимание логики, можешь приступать к изучению другого (если тебе это действительно необходимо). А полезные материалы по программированию всегда можно найти в моей группе Вконтакте, там ежедневно публикуются книги и видео по различным языкам. Присоединяйся, если интересно.
Большое спасибо за прочтение! Пожалуйста, поставь лайк и подпишись на канал, чтобы не пропустить свежие статьи. Этим ты очень поможешь развитию блога!
Также рекомендую прочитать статью Как программисту быть в отличной форме