Как я могу изменить технологии и сохранить признанный опытный статус?

Я программист уже более 1 года. Я хорошо изучил язык программирования C# и всю его экосистему.

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

Я хотел бы сменить компанию, но у меня много проблем:

  • Я хочу быть backend-программистом, в то время как многие вакансии ищут fullstack-разработчика

  • Я хочу иметь возможность вырасти профессиональным программистом, а не просто обезьяной, слепо пишущей код.

  • У меня проблемы с логистикой, учитывая, что у меня нет машины, а многие компании находятся за пределами моего города, что означает 1 или 2 часа езды на общественном транспорте каждый раз, когда мне нужно переехать.

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

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

Вот почему я думаю о «миграции» на Java, но я все же хотел бы, чтобы ко мне относились как к работнику с некоторым опытом, а не просто весом.

Как я могу приблизиться к другой технологии и сохранить признанный опытный статус?

Имейте в виду, что FullStack Developer НЕ означает, что вы должны быть графическим дизайнером. Графический дизайнер и FullStack Developer — две разные профессии.
Знаю правильно, но не в Италии, здесь фуллстек разработчик должен все делать, если в вашей компании нет личного UI/UX инженера
Вы хотите сказать, что компания в Италии наймет разработчика программного обеспечения и попросит его/ее нарисовать персонажа/значок и раскрасить его? Это похоже на то, как попросить рыбу залезть на дерево. ОДНАКО ожидается, что компания запросит у разработчика программного обеспечения определенный цвет графического интерфейса, определенный размер и расположение кнопки, и это ОЧЕНЬ просто, и на самом деле ОЖИДАЕТСЯ, что он будет известен любому разработчику программного обеспечения.
Если ваш профессиональный опыт связан с C# и вы подаете заявку на Java, технически вы по-прежнему являетесь начальным уровнем для Java.
Примерно два уровня управления вверх, программист есть программист. Если директору нужно сделать форму для ввода данных, ваш начальник скажет: «Извините, трое программистов, которым сейчас не хватает задач, все «бэк-энд» программисты, нам придется просто продолжать платить им, чтобы они были неполными». поставлена ​​задача, а также нанять 'front-end' программиста."? Таким образом, каждая работа является «полной», так что вы не тот парень, который приходит сюда через 6 месяцев, жалуясь на то, что ваш новый работодатель - злой лжец, потому что они сказали, что это была второстепенная работа, и теперь вас спрашивают сделать форму ввода данных. «IBM в 80-х» больше нет.

Ответы (3)

Как я могу приблизиться к другой экосистеме и сохранить признанный опытный статус?

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

  • Покажите, что вы быстро учитесь

  • Показывая, что вы любите это

  • Покажите, что вы быстро совершенствуетесь и многому учитесь

  • Демонстрация того, что вы вносите свой вклад в сообщество (переполнение стека, обучение и т. д.)

  • Демонстрация того, что у вас есть «программистский менталитет» спора о технологии (термин здесь - Language Agnostic)

  • Демонстрация того, что язык программирования — это всего лишь инструмент (означает, что разработчик может работать с любым — C# JAVA C++ — до тех пор, пока у разработчика есть теоретическое мышление)

  • Демонстрация того, что очень легко искать ресурсы о языке программирования и находить решения (google, переполнение стека, MSDN и т. д.)

1) Я хочу быть backend-программистом, в то время как многие вакансии ищут fullstack-разработчика

Разработчики FullStack ЯВЛЯЮТСЯ бэкэнд-разработчиками. Вы все еще можете подать заявку на это и управлять своими рабочими заданиями со своим боссом, чтобы в основном заниматься кодированием бэкэнда.

2) Я хочу возможности вырасти профессиональным программистом, а не просто обезьяной, слепо пишущей код.

Ранее вы сказали, что хотите стать бэкэнд-разработчиком (что звучит так же, как обезьяна, слепо пишущая код), но, чтобы прокомментировать этот момент, я думаю, вам нужно улучшить свои знания, читая темы, которые больше, чем программирование: шаблоны проектирования, теория Вычисления, разработка алгоритмов, разработка программного обеспечения, процессы управления и Agile, контроль версий и отслеживание проблем.

3) У меня проблемы с логистикой, учитывая, что у меня нет машины, а многие компании находятся за пределами моего города, что означает 1 или 2 часа в общественном транспорте каждый раз, когда мне нужно переехать.

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

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

Что вас беспокоит? извините не до конца понял

1) Да, очевидно, и у меня еще есть возможность работать fullstack-разработчиком. Проблема в том, что в Италии, работая fullstack разработчиком, приходится изобретать еще и ui/ux, а у меня полное отсутствие графических вкусов.
2) С моей точки зрения, написание бэкенда корпоративного приложения и просто работа над одним продуктом с помощью методов редактирования — это разные задачи.
@MarcoSalerno Это НЕ то, что вы хотите сказать (или иметь в виду). У вас полное отсутствие графических вкусов? Хорошо, покажи, что ты ХОЧЕШЬ этому научиться и ждешь ВОЗМОЖНОСТИ
Этому нельзя научиться, и если вы не планируете создавать графические интерфейсы в своей жизни, изучение этого не сделает вас тем, кем вы хотите быть, верно?
Неправильный. Графические интерфейсы просты в освоении (относительно): существует разница между разработчиком интерфейса для 3D-рендеринга игр и разработчиком бэкэнда, который понимает, как работает графический интерфейс, и хочет связать свой код с пользовательским вводом, а затем отображать вывод. Я думаю, вы хотите быть позже, и это очень легко.
@marco Я в основном согласен с Сандрой, я хотел бы кое-что добавить . Что касается графического интерфейса, вы правы, в Италии вы редко будете работать в паре с UX-дизайнером, но у него есть преимущество: вы учитесь (а UX — это не только пользовательский интерфейс). Навыки пользовательского интерфейса — это не пустая трата времени, и даже если вам это никогда не понравится, вы станете лучшим бэкэнд-разработчиком . Поверь мне в этом. Представьте себе API, который идеален с точки зрения бэкенда, но неудобен для использования с точки зрения пользовательского интерфейса. И, честно говоря, если вы только начали, вам все равно нужно точно понять, кем вы хотите быть, не закрывайте ни одну дверь так рано.

Вот почему я думаю о «миграции» на Java, но я все же хотел бы, чтобы ко мне относились как к работнику с некоторым опытом, а не просто весом.

..

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

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

Если вы хотите попробовать себя в роли Java, тогда лучше всего делать то, что вы делали раньше, — изучать язык прямо сейчас . Делайте в нем столько, сколько можете, сколько позволяет свободное время, и публикуйте все, что можете, в учетной записи github (или аналогичной), и тогда у вас будет некоторое знание языка и доказательство этого, доступное для любых рекрутеров на должности Java. Не говоря уже о том, что это даст вам шанс пройти технические тесты. Возможно, поучаствовать в каких-нибудь проектах с открытым исходным кодом?

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

Я хочу быть backend-программистом, в то время как многие вакансии ищут fullstack-разработчика

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

У меня проблемы с логистикой, учитывая, что у меня нет машины, а многие компании находятся за пределами моего города, что означает 1 или 2 часа езды на общественном транспорте каждый раз, когда мне нужно переехать.

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

И в том то и дело, что ты программировал ведьму на C# 15 лет, если завтра C# умрет и тебе придется переходить на Java, можно ли тебя считать Джуниором без опыта? я не уверен в этом
@MarcoSalerno, отложив на время тот факт, что языки на самом деле не умирают полностью (например, см. Продолжающийся спрос на инженеров COBOL), тогда да, если бы это произошло, я был бы облажался, и если бы я решил не возвращаться к роли невмешательства в менеджменте я бы смотрел на младшие роли на другом языке. Что было бы отстойно для меня, но, тем не менее, является реальностью ситуации.

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

Технологии могут (и меняются), и мы (как профессионалы) должны учиться и использовать разные вещи. В моем случае я начал с COBOL. Перешел на VB6, а затем на .NET в его различных воплощениях (от winforms до aspx и MVC). В прошлом году я взялся за проект на java/grails (когда у меня не было опыта работы с ними), когда первоначальный разработчик ушел. Я смог сделать это, потому что я могу мыслить как с точки зрения бизнеса , так и с точки зрения технологий.

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