Здравствуйте!
После вышки-бакалавра (геоинформационные системы) проработал с год веб-программистом в стеке React/Node..JS без единой отсылки к профилю высшего образования. Успел потыкать и фронт, и бэк - в результате остался очень доволен, хоть бэк и интересен мне заметно больше. Вышел на приличную ставку и все, кажется, хорошо. На всякий замечу, что опыт в IT начал потихоньку набираться с 16 лет, так что это далеко не первое знакомство с профессией :)
А теперь суть вопроса. Появилась возможность и даже приглашение (не влияет, по сути, ни на что, но послужило поводом) продолжить обучение в магистратуре по профилю фотограмметрия/геоинформационные системы. Профиль интересный, но...
1) работы не так много, как для обычного веб-программиста из-за более узкой области (перефразируя, программиста с актуальным веб-стеком)
2) платят, кажется, даже меньше, чем программисту (а хотят эту предметную область + программера)...
3) похоже (?), компании обычно нуждаются не столько программисте, сколько в специалисте, знающем эту предметную область с _навыками_ программирования (то есть 100%-й шанс "отстать от времени" по технологиям в сфере веба и не иметь практики реальной разработки ПО, что мне нравится).
Вообще, мне казалось, что веб-программисту (да и, скажем, в области десктопного и мобильного софта) не очень-то нужная _конкретная_ предметная область. Алгоритмы, структуры данных, паттерны проектирования, понимание архитектуры, опыт разработки ПО и умение общаться с командой - да. Но не, повторюсь, конкретная узкая область. Потому что по ней, как вижу, в случае необходимости часто дают специалиста, понимающего в этом, но не понимающего в программировании. Не кажется, что уметь и то, и то в условном "совершенстве" возможно. На что-то фокус постоянно будет смещаться. Или программирует не очень, или в своей области не так уж много знает.
С другой стороны это:
*меньше шансов вылететь из профессии с 35-40 лет (может, и стереотип, но мне слишком уж нравится эта работа!)
*бОльшая ценность специалиста (не получится как с хорошими инженерами, которые знают много-много, а работают за половину/треть ставки среднего программера в Москве?)
*больше шансов продвинуться по "карьерной лестнице" (пока сложно об этом думать, на самом деле - все устраивает и даже больше)
Смысл вопроса - ваше мнение по поводу смысла приобретения предметной области?
Похоже ли это на смену профориентации с программиста на специалиста-предметника с навыками программирования?
Спасибо. Вопрос для меня важен :)
PS: знаю, что веб-программист = программист + веб-стек. Пишу так лишь для удобства
Разве тот же фулл-стэк веб-разработчик - абстрактный программист?
Он может выбрать верные технологии для решения задачи, написать хороший API для бэка, правильно спроектировать БД. Может также реализовать приемлемый фронт по удобству и функционалу (но вряд ли уж заместо дизайнера получится придумать необычный UI).
Я вот про это. То есть может правильно провести декомпозицию задачи, выбрать верные инструменты, правильно реализовать _выданную_специалистом_ бизнес-логику с помощью оптимальных паттернов-алгоритмов-структур данных и отвечать в этой области за качество.
Насколько реально уметь и это (причем оставаться компетентным в новых решениях и технологиях, ведь зачастую они получают популярность не из-за новизны, а из-за практичности), и еще к тому же весьма обширную предметную область? Правда интересно - примеров, увы, не видел. Либо то, либо другое...
cedapa, конечно абстрактный.
Как может питонист выбрать верную джаву, если он знает только питон? Как пхпист выберет реакт, если он его не знает? Какую бд напроектирует вам фронтовик? Что значит приемлемый? Вы так работу не найдете. Бизнесменам нужен нормальный, максимально приносящий доход дизайн, а не "приемлемый".
На самом деле вы просто какие-то шараги описали. В нормальных фирмах аналитик делает бизнесовую часть, а программист кодит. Ну и фулл стеков в идеале нет, а есть разделение на бэк и фронт. И тех лид есть, который уже и решает какие технологии использовать, джаву или питон. И архитектор есть, который разработает архитектуру проекта. Пару из этих должностей можно совмещать, но более.
А если вы собрались все совмещать и все делать в одиночку, то ничего вам не светит, потому что будете хуже буквально каждого спеца и во всем.
А теперь суть вопроса. Появилась возможность и даже приглашение (не влияет, по сути, ни на что, но послужило поводом) продолжить обучение в магистратуре по профилю фотограмметрия/геоинформационные системы.
Отклонить и забыть. Можно было бы рассмотреть, если бы это не в России было. Есть инженерное образование -- это прекрасно. Больше уже не так важно для большинства программистов.
Алгоритмы, структуры данных, паттерны проектирования, понимание архитектуры, опыт разработки ПО и умение общаться с командой - да.
Всё верно, инвестировать время в эти навыки куда как выгоднее для программиста. Я бы единственное добавил больше социальных навыков, чем просто умение общаться с командой. Ну и английский язык разумеется: чем выше уровень разговорного и письменного английского, тем лучше.
Потратить 2 года на что-то что может потом пригодиться и расширить кругозор - это великолепная возможность.
> магистратуре по профилю фотограмметрия/геоинформационные системы.
понимаете, важно не "знание", а корочка и налаженные связи. Знание придет само, а вот корочка и связи рано или поздно будут нужны, а их нет.
Ну потратите вы 2 года сидя на работе и клепая новые сайтики, ну ок .. пройдут эти 2 года, а что вы для себя из них вынесете ? Пока молодой, цепляйтесь за любую возможность попробовать новое и неизведанное.
Ну опять же, смотрите на специализацию и спрос в оной (можно же смотреть не только в РФ но и за бугром).
Потратить 2 года на что-то что может потом пригодиться и расширить кругозор - это великолепная возможность.
Полностью с этим согласен.
С учётом того, о чём спрашивал автор, вопрос только в том, насколько те знания, умения и навыки, которые можно получить обучаясь в магистратуре по этому направлению могут пригодиться прикладному программисту в дальнейшем. Ставлю на то, что они будут практически не востребованы.
понимаете, важно не "знание", а корочка и налаженные связи. Знание придет само, а вот корочка и связи рано или поздно будут нужны, а их нет.
Учитывая контекст вопроса, корочка любого Российского вуза выше бакалаврской не нужна прикладному программисту. Знание никуда не придёт само. Всегда надо учиться и очень много.
Связи могут появиться, если это магистратура 1-2 топовых вузов, которая организована с участием компаний вроде Яндекса или JetBrains, да и то. В остальных случаях, скорее всего, просто пустая трата времени. Вот если бы автор вопроса в магистратуру Стэнфорда там поступал, я бы согласился с вами насчёт связей.
Ну потратите вы 2 года сидя на работе и клепая новые сайтики, ну ок .. пройдут эти 2 года, а что вы для себя из них вынесете?
Если просто "клепать сайтики", то выход действительно будет эквивалентен паре лет в магистратуре. Я советовал развиваться активно. Магистратура для этого не нужна, а уж магистратура с работой в каком-нибудь там НИИ тем более.
Пока молодой, цепляйтесь за любую возможность попробовать новое и неизведанное.
Ну опять же, смотрите на специализацию и спрос в оной (можно же смотреть не только в РФ но и за бугром).
Зависит от специализации. Если это какой-нибудь там ML, то да.
PS
Не поймите меня неправильно. Я считаю, что высшее образование (или гигантская мотивация в изучении всего самому) нужно программисту, чтобы не оставаться на уровне обезьяны, которая "клепает сайтики". Я ответил строго в рамках изначального вопроса.
Сам я защитил кандидатскую (как раз по геоинформатике), работаю старшим программистом и не живу в России, так что считаю, что немного разбираюсь в вопросе.
Сергей, Это довольно сложно будет сделать. Я бы назвал это наукой (и набором технологий), которая использует методы информатики для тех областей, где актуальна некоторая пространственная привязка объектов (география, картография, геонауки и всё вот такое).