Я только что закончил учебу и теперь перед трудным выбором: оставаться (средним) разработчиком программного обеспечения или перейти на должность системного администратора. У меня есть некоторый опыт программирования, но этого недостаточно, чтобы стать хорошим разработчиком.
Еще немного обо мне: я считаю, что умею находить проблемы и исправлять их. Я учусь быстро, но только основные идеи, я обычно забываю детали. Я тоже в восторге от оптимизации.
Здесь кто-нибудь перешел с разработчика программного обеспечения на системного администратора? Ты доволен? Что вы мне посоветуете?
Огромное спасибо.
Что вам нравится делать лучше: писать код или управлять системами?
Эти рабочие места не полностью ортогональны. Хороший системный администратор потратит время на написание инструментов, которые помогут автоматизировать свою работу. Хороший разработчик поймет, как работает система, и напишет соответствующий код.
Лично я считаю, что написание / хороший / код требует уровня внимания и концентрации, от которого я не могу легко отключиться. Я редко был полностью доволен написанным мной кодом и постоянно пытался его улучшить. Это негативно сказалось на моей личной жизни.
Я считаю, что сисадмин менее навязчив. (что-то всегда ломается, и это нормально). Но работа системного администратора может также разрушить вашу личную жизнь такими приятными вещами, как дежурство по телефону.
По сути, вам нужно делать то, что делает вас счастливым. Удачи в поиске.
У меня это были комментарии, но, если подумать, я думаю, они больше похожи на мои ответы.
Если вы только что закончили учебу, вы станете средним (или, вероятно, ниже среднего) разработчиком. Вы также будете системным администратором ниже среднего. Чтобы стать средним и лучше, нужно иметь опыт и неудачи.
Тот факт, что кто-то здесь переключился и ему это нравится (или ненавидит), не означает, что он подходит вам. Это полностью зависит от того, насколько вам понравятся подводные камни. И это поле не только для решения проблем или технологий ... оно очень политическое. Я не могу сосчитать, сколько решений могло бы идеально решить проблему, если бы пользователи не возражали, потому что это не то, что им нравится или предпочитают, поэтому мы должны работать с тем, чего хотят пользователи (как они смеют!)
Изменения сейчас также не мешают вам делать и то, и другое. Вы можете продолжать писать код на стороне или сменить карьеру позже (в наши дни это не совсем редкость).
Сядьте и взвесьте все за и против, поскольку они применимы к вам и к бизнесу, в который вы подаете заявку или от которого получаете предложение; также ОЧЕНЬ возможно быть администратором в Acme Widgets, любить его и любить людей, на которых вы работаете и с которыми работаете, в то время как работа администратором в Willy Widget Works - настоящий ад.
Сводится к тому, чтобы делать то, что вы можете вставать утром, и не ненавидеть тратить 10+ часов в день на ...
Я сам сделал этот выбор сразу после колледжа, и после того, как отыграл довольно долгое время на этом концерте, я лучше понимаю, почему это мне подходит. Когда я целыми днями копаюсь над сложным сценарием для большого обновления, в эти дни я ближе всего подхожу к настоящему программированию, часы летят, и я прихожу домой с обострением, потому что проблема еще не решена или как-то меня раздражает. Мне тяжело переносить длительный стресс.
Сравните это с работой системного администратора, где стресс является более, так сказать, пиковым, поскольку он длится несколько часов и проходит, как только проблема решена. У нас есть несколько случаев постоянного стресса (обновления, которые занимают неделю, отказоустойчивое оборудование в вашей среде резервного копирования, в результате чего резервное копирование / аварийное восстановление становится ненадежным), но обычно они являются скорее исключениями, чем правилом. Мне легче держать ровный киль.
Как сказал Джоэл К.
Эти рабочие места не полностью ортогональны. Хороший системный администратор потратит время на написание инструментов, которые помогут автоматизировать свою работу. Хороший разработчик поймет, как работает система, и напишет соответствующий код.
Я считаю, что знание того, как работает система, на самом деле очень полезно для меня как системного администратора. Просто системы, которые мне нужно знать, как запускать, по большей части являются коммерческими готовыми программами. Я обычно виню в этом свою степень по информатике, так как хорошо понимаю, как программное обеспечение работает мне легче понять, где это перерывы. Кстати, именно это и делает меня хорошим тестировщиком / бета-тестером.
На мой взгляд, опыт программирования дает вам довольно прочную основу для устранения неполадок программного обеспечения в работе SysAdmin. Части, над которыми вам придется поработать, - это устранение неполадок оборудования, устранение неполадок операционной системы (если ваша работа с разработчиками не связана с ОС или драйверами, в этом случае вы являетесь золотым) и просто лучшие практики. Передовой опыт - это по большей части обучение на рабочем месте, хотя вы можете получить некоторые из них через сертификаты.
Каждый должен дать свою собственную оценку тому, что он хочет делать. У меня степень в области компьютерных наук (разработка программного обеспечения), но большая часть моей карьеры была сосредоточена на системном администрировании (хотя сейчас я управляю сотрудниками в обеих дисциплинах). Для меня решение сводилось к личности и людям. Когда я посмотрел на знакомых мне кодировщиков, они проводили большую часть своего времени в своих кубиках, в наушниках, с несколькими банками содовой по своему выбору часами. В то время как ребята из админа тратили больше времени на взаимодействие с пользователями и решение проблем; хотя системный администратор может быть ОЧЕНЬ НАПРЯЖЕННЫМ, когда что-то ломается, это нужно исправлять СЕЙЧАС, и не имеет значения, связана ли проблема с тем, что вы контролируете или нет. Для меня админка казалась более полезной. Обратите внимание, что по мере продвижения в любой из областей вы станете в большей степени менеджером, что означает больше времени на собраниях, больше времени на телефонные разговоры, больше времени на развитие персонала и меньше времени на программирование / системного администратора.