Навеяло мне тут грустных мыслей... Решил немного их причесать и положить сюда для обсуждения и всяческого холивара. Если кому-то это поможет избежать моих ошибок - буду рад.
Работа админом толкает человека к универсальности, развитию сразу по многим направлениям. Служба каталогов, файл-сервер, веб-сервер, сервер системы контроля версий, база данных + бекап/восстановление и репликация, сетевое оборудование, мониторинг, немного телефонии, железо, некромантия(старое железо) ... Если у программистов в рабочей книжке обычно пишут «инженер-программист», то админ может требовать себе запись «программист-разнорабочий». И это очень плохо. Пусть есть два человека. Первый имеет объём знаний по пяти разным областям, допустим, равный условной единице. Второй - три условных единицы в одной области, и по одной в двух других.Суммарный объём их знаний одинаков. Первый стоит x денег, а второй - 3x. Потом первый повысил свою квалификацию во всех пяти областях до 2. Второй - повысил квалификацию в своей основной области до 8, не прогрессируя в остальных. Объём полученных ими новых знаний одинаков. Первый теперь стоит 2x, второй - 8x. Второй будет делать сложные и интересные задачи по специализации, развиваясь и получая удовольствие от работы. Первый будет служить «во-всех-бочках-затычкой».
Интересные задачи делают узкие специалисты. Нормальные деньги получают узкие специалисты. Это, на самом деле, тесно связанные между собой вещи: не всякая высокооплачиваемая работа интересна, но всякая интересная работа - высокооплачиваема. Правило имеет исключения, вроде развиливающихся предприятий оборонки, но речь сейчас не о них. Да, разумеется, много где требуются люди с широкой специализацией. Но если где-то нужен сетевик и, по совместительству, DBA - значит там нужен не очень сильный сетевик и не слишком хороший DBA. На уровне «лишь бы работало». Потому что эта контора не может себе позволить большее, ну или не хочет - если это не основное направление её деятельности. Если бы там были серьёзные задачи - этих двоих набирали бы по отдельности.
Абсолютная специализация, конечно, тоже плохо. Во-первых, специалист по закручиванию семиугольной нижней гайки потеряет работу, когда такие гайки выпускать перестанут. Во-вторых, многие области IT сильно связаны между собой, поэтому результат работы сферического спеца в вакууме, не знакомого ни с одной из смежных областей, просто невозможно никуда приткнуть. Но именно знакомства, более или менее поверхностного, вполне достаточно. Дальнейшее углубление в смежные темы - потеря времени, которое можно было потратить на то, чем занимаешься. Просто надо осваивать свою область чуть шире, чем контекст конкретных узких задач, и всё будет хорошо. Не думаю, что нормальный DBA, всю жизнь работавший с MS SQL, после внезапного наступления вендокапца :) испытает особые трудности с переползанием на Oracle.
Когда на 4 курсе, не имея профильного образования, я пошёл работать за смешные копейки в тех. поддержку, занимаясь понемногу всем подряд - это была очень серьёзная ошибка. Если бы вместо этого я потратил пару месяцев на базовое обучение программированию, и пошёл junior-программистом, за те же смешные копейки, но с более узкой специализацией - сейчас я занимался бы гораздо более интересными и захватывающими вещами, причём за большие деньги.