Живу в Москве, работаю почти 14 лет в госконторе программистом драйверов на чистом C. Железо и операционка у нас свои собственные.
Знаю Linux на уровне продвинутого юзера, т.к. сборка образа нашей ОС происходит под Linux.
Платят мне копейки, да и в целом вакансий по встраиваемым системам мало и они так себе оплачиваются.
Думаю попробовать податься джуниором в какую-нибудь востребованную область, а то надоело сидеть в своём маленьком, оторванном от мира, загончике.
Возраст уже 36 лет, умственные способности оцениваю как средние, софт скиллс — как низкие (иначе я не писал бы тут эту писанину, а давно нашёл бы нормальную работу ).
Когда-то изучал в университете SQL, Delphi, HTML и web-дизайн, из интереса изучал C#, но знания, естественно, поверхностные и уже подзабылись и устарели.
Из направлений думаю больше всего мне понравится бэкенд.
Мобильная разработка — тоже неплохо, но, мне кажется, там работы меньше, чем в бэкенде. Для геймдева я старый, остаются в основном мобильные приложения всяких банков и магазинов, мне кажется, работы не так уж и много.
Во фронтенде, мне кажется, мне иногда придётся разрабатывать дизайн сайта. Понятно, что для этого есть дизайнер, но скорее всего будут возникать ситуации, когда дизайнер в отпуске/заболел/уволился и руководство мне скажет "тыж web-программист! Ну и сделай сайт.". А рисовать я не умею и не люблю, фотошоп открывал лет 15 назад, когда учился у университете.
1С совсем не моё.
Думаю попробовать податься в Java или Go. Java популярнее, но зато Go молодой, поэтому, как мне кажется, в Go легче попасть джуниором?
.net отпадает из-за санкций.
Есть ещё Python, вроде бы он популярный, но если копнуть глубже, то в большинстве вакансий он требуется для автоматизации и всяких научных вычислений. Для разработки он применим в основном к web на Django и таких вакансий не так уж много. Кроме того, мне больше нравятся "нормальные" C-подобные компилируемые языки. От bash и makefile я плююсь каждый раз, когда на них нужно что-то сделать.
Но проблема в том, что, насколько я знаю, благодаря множества курсов и толпе вайтишников, на позиции джуниора сейчас огромный конкурс, больше 200 откликов на вакансию.
Читал, что найти работу Android junior без коммерческого опыта сейчас сложно, в других популярных областях ситуация, наверное, не лучше.
А у меня большой возраст для джуниора, ещё и работал всё это время в единственной госконторе, а, насколько я знаю, HR не любят как летунов, так и тех, кто долго сидит на одном месте, особенно в госконторах.
Вроде бы я не вайтишник, у меня более-менее профильное образование и есть опыт программирования на C, но C — это процедурно-ориентировпнное программирование, а не ООП, как Java. Собственно ООП в C ограничено структурами с указателями на функции в качестве методов. Никаких шаблонов проектирования вроде всяких там фабрик и прочего не применяется.
Так что опыт программирования на C, мне кажется, не очень мне поможет.
Нет и опыта в современных методологиях разработки и тестировании.
Типичное моё задание выглядит так: руководитель отдела говорит мне "тут не работает, разберись почему"/"поставили новый чип памяти, добавь в драйвер его поддержку"/"аппаратчики сделали новую железку, напиши для неё драйвер". Я делаю задание, при необходимости общаясь с аппаратчиками, сам же проверяю и если вроде бы работает — делаю коммит в svn и на этом всё.
Вот и весь процесс разработки
С такими данными есть ли у меня шанс попасть в джуниоры в популярные направления, или не стоит и пытаться и лучше остаться программировать железки?
Со знаниями в embedded у меня тоже не всё в порядке — я программирую под нашу собственную ОС а-ля VxWorks и под наше же железо, кроме того, фактически не знаю схемотехнику. Ну то есть я представляю, например, на какие ножки памяти какое напряжение и с какой частотой надо подать, чтобы она заработала. А вот откуда берётся это напряжение — этого я не знаю. У нас разделение на аппаратчиков и программистов. Если железка не работает, я иду к аппаратчику.
Поэтому мне подойдут только фирмы, где есть крупные проекты и разделение на аппаратчиков и программистов. Мелкие проекты, где схемотехник и программист — один человек, мне не подойдут.
Из плюсов области — мне кажется нет дискриминации по возрасту, железками в основном занимаются дядьки за 40 и старше, молодые выбирают более востребованные и денежные направления. Кроме того, специалистов тоже немного. Ради интереса посмотрел на HH вакансии Linux Kernel — вакансий мало, но некоторые из них висят несколько недель и на них плашка "Будьте первыми", что говорит о том, что не было ни одного отклика.
Вот я в раздумьях: стоит ли пытаться вкатиться в мейнстрим (например Java или Go)? Если стоит, то в какое направление попасть проще всего? Или смириться с тем, что все полимеры уже просраны (в связи с возрастом и огромной конкуренцией на джуниорские вакансии) и остаться в железках?
Re: В какую область в моём случае проще попасть джуниором?
Здравствуйте, __kot2, Вы писали:
__>А что мешает просто попробовать все варианты?
Все варианты (т.е. попробовать и фронт, и бэк, и мобильники и т.д.) я не успею чисто физически. В той же Java помимо собственно java Core нужно знать ещё кучу всего, что требует времени на изучение. А для джуниора возраст уже поджимает, меня уже сейчас скорее всего большинство работодателей будут фильтровать по возрасту при отклике на джуниорские вакансии.
Re: В какую область в моём случае проще попасть джуниором?
C/Linux kernel, C++, Go в таком порядке — имхо. Первые пункты ближе к твоему опыту, последние дальше, но более востребованы. Java тебе скорей всего самому не понравится, хоть язык на C где-то и похож, но общепринятые методики разработки бесконечно далеки от embedded и перестроиться может быть сложно.
Альтернативно — попробуй поискать работу по профилю. Мне кажется, в России хватает железячных контор, может найдёшь что поинтересней и не придётся морочить голову со всеми этими даунгрейдами. В связи с известными событиями, как мне кажется, актуальность этой области падать не будет.
Если хочешь хардкорной смены парадигмы — разберись в kubernetes как администратор и программист. Там всё на go пишут. Область нужная, но не очень популярная. Как мне кажется, специалисты в ней ещё долго будут обеспечены работой.
Здравствуйте, vsb, Вы писали:
vsb>C/Linux kernel, C++, Go в таком порядке — имхо.
А на Go есть джуниорские вакансии? Видел вакансии, где согласны взять с опытом на другом языке, но наверное хотят опыт бэкенда на Java/.net/Python, не думаю, что опыт C под embedded им подойдёт.
Re[2]: В какую область в моём случае проще попасть джуниором?
Здравствуйте, IgorVlasov, Вы писали:
IV>Боюсь, это не для средних умов. Учитывая отсутствие опыта прохождений собеседований, на 99% уверен, что завалю собес.
Что мешает скачать книгу "как проходить собеседования " (прикалываюсь, но наверно такая книга существует)
Написать резюме и начать их проходить.
Уверяю, после 30-го себеседования, свой прогресс уверенности вырастит минимум в 50 раз
Re[3]: В какую область в моём случае проще попасть джуниором
Здравствуйте, IgorVlasov, Вы писали:
vsb>>C/Linux kernel, C++, Go в таком порядке — имхо.
IV>А на Go есть джуниорские вакансии?
Ну на hh находит.
> Видел вакансии, где согласны взять с опытом на другом языке, но наверное хотят опыт бэкенда на Java/.net/Python, не думаю, что опыт C под embedded им подойдёт.
Я думаю, что какие-то навыки продемонстрировать надо, ну это, наверное, очевидно, а так — хз, по-мне Go к C в каком-то смысле ближе, чем к Java. Впрочем я точно утверждать не могу, чего хотят собеседующие. Лично для меня человек, который уже умеет программировать, априори предпочтительней тех, про кого ничего не понятно. Но у других людей могут быть свои тараканы, конечно.
Да и зачем жаверу переходить в го. В жаве и так неплохо кормят, кажется.
Мне кажется, надо просто чётко обозначить план. Я бы так это делал:
1. Какие преимущества у вас есть перед войтивайтишниками? Вы имеете опыт программирования.
2. Какие преимущества у вас есть перед опытными специалистами? Вам достаточно небольшой зарплаты.
3. Вы уже выучили го, написали какой-то проект из той области, которые обычно пишут на го (веб-серверы). То бишь вы уже сделали усилия, а не просто так ходите праздно по собеседованиям.
Думаю, с такими вводными работу найти реально, может не суперскую, но пару лет оттарабанить на опыт и уже можно смело тыркаться в мидлы и просить рыночную зарплату.
Я бы так выстраивал стратегию перехода в смежную область.
Здравствуйте, AWSVladimir, Вы писали:
AWS>Что мешает скачать книгу "как проходить собеседования " (прикалываюсь, но наверно такая книга существует)
Существует Карьера программиста
Re[3]: В какую область в моём случае проще попасть джуниором?
Здравствуйте, IgorVlasov, Вы писали: IV>Все варианты (т.е. попробовать и фронт, и бэк, и мобильники и т.д.) я не успею чисто физически. В той же Java помимо собственно java Core нужно знать ещё кучу всего, что требует времени на изучение. А для джуниора возраст уже поджимает, меня уже сейчас скорее всего большинство работодателей будут фильтровать по возрасту при отклике на джуниорские вакансии.
мне кажется одного дня достаточно, чтобы оформить резюме и разослать его всем, в том числе и тем, кто будто должен отказать. пусть они сами лично напишут что, как и почему. и если уже тогда не будет ответа — тогда можно брать косвенную инфу от знакомых кролика на форуме, а не от самих компаний
Re[3]: В какую область в моём случае проще попасть джуниором?
Здравствуйте, IgorVlasov, Вы писали: IV>Боюсь, это не для средних умов. Учитывая отсутствие опыта прохождений собеседований, на 99% уверен, что завалю собес.
я завалил куда больше собесов, чем прошел. но если бы не заваливал, то и не прошел бы вообще ничего
Re: В какую область в моём случае проще попасть джуниором?
IV>Но проблема в том, что, насколько я знаю, благодаря множества курсов и толпе вайтишников, на позиции джуниора сейчас огромный конкурс, больше 200 откликов на вакансию.
Позиции джуниора бывают разные — см. ниже.
Бывают и такие позиции, на которые толкового разработчика с удовольствием возьмут (возможно, и не на топовую зарплату, но на более-менее нормальную)
IV>Вроде бы я не вайтишник, у меня более-менее профильное образование и есть опыт программирования на C, но C — это процедурно-ориентировпнное программирование, а не ООП, как Java. Собственно ООП в C ограничено структурами с указателями на функции в качестве методов. Никаких шаблонов проектирования вроде всяких там фабрик и прочего не применяется. IV>Так что опыт программирования на C, мне кажется, не очень мне поможет. IV>Нет и опыта в современных методологиях разработки и тестировании. IV>Типичное моё задание выглядит так: руководитель отдела говорит мне "тут не работает, разберись почему"/"поставили новый чип памяти, добавь в драйвер его поддержку"/"аппаратчики сделали новую железку, напиши для неё драйвер". Я делаю задание, при необходимости общаясь с аппаратчиками, сам же проверяю и если вроде бы работает — делаю коммит в svn и на этом всё.
Это не такая уж проблема. ООП, шаблоны проектирования и т.п. — это все можно наверстать, тем более если есть хороший задел в виде опыта программирования в других парадигмах.
Если у тебя есть успешный опыт решения проблем типа "не работает, разберись почему" или "добавь в драйвер его поддержку" — можно полагать, что и культура программирования какая-то сформировалась, а это важно.
IV>С такими данными есть ли у меня шанс попасть в джуниоры в популярные направления, или не стоит и пытаться и лучше остаться программировать железки?
А почему рассматриваешь только крайние варианты?
Бывают и вполне нормальные промежуточные варианты: когда контора не занимается непосредственно встраиваемыми системами, а, например, есть какой-то проект, в котором задействовано железо и надо программировать софт, каким-то боком с этим железом взаимодействующий. Например, если в составе какой-то системы есть какие-то специфичные железки, и ими надо управлять или мониторить их по SNMP.
Кстати, в гос- и около-гос- конторах как раз такие промежуточные варианты нередко встречаются. Если у тебя нет каких-то предубеждений именно против госконтор — можно смело искать варианты в этом направлении.
IV>Со знаниями в embedded у меня тоже не всё в порядке... IV>Поэтому мне подойдут только фирмы, где есть крупные проекты и разделение на аппаратчиков и программистов. Мелкие проекты, где схемотехник и программист — один человек, мне не подойдут.
Почему такая уверенность?
Знаю контрпримеры — кода, например, человек разбирается в железе, и еще берется кое-что понемногу программировать (естетсвенно, с обоюдного согласия его самого и руководства)
IV>Вот я в раздумьях: стоит ли пытаться вкатиться в мейнстрим (например Java или Go)? Если стоит, то в какое направление попасть проще всего? Или смириться с тем, что все полимеры уже просраны (в связи с возрастом и огромной конкуренцией на джуниорские вакансии) и остаться в железках?
Как я отметил выше — это не взаимоисключающие варинты, есть гибридные варианты работ где и того и этого понемногу.
Re[2]: В какую область в моём случае проще попасть джуниором?
Z>>а как же Касперский ОСь? Аурига, Яндекс, Астралинукс, Сбер — там вроде бывают вакансии по профилю?
IV>Боюсь, это не для средних умов. Учитывая отсутствие опыта прохождений собеседований, на 99% уверен, что завалю собес.
Без этого никак. Но имхо завалить собеседование в области, в которой работал много лет сложнее, чем в той, в которой вообще не работал.
Я так понимаю время есть, поэтому надо просто пару месяцев интенсивно готовиться. Поизучать типичные вопросы, порешать задачки и тп. Это не так сложно, на самом деле. Ну и потом делать максимум попыток. Я не верю что везде 100% отказ будет, а там принимать любой оффер, я так понимаю хуже всё равно не будет.))
Re: В какую область в моём случае проще попасть джуниором?
IV>Живу в Москве, работаю почти 14 лет в госконторе программистом драйверов на чистом C. Железо и операционка у нас свои собственные. IV>Знаю Linux на уровне продвинутого юзера, т.к. сборка образа нашей ОС происходит под Linux. IV>Платят мне копейки, да и в целом вакансий по встраиваемым системам мало и они так себе оплачиваются.
Или в Каспер. И совсем не джуном.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: В какую область в моём случае проще попасть джуниором?
Z>>а как же Касперский ОСь? Аурига, Яндекс, Астралинукс, Сбер — там вроде бывают вакансии по профилю? IV>Боюсь, это не для средних умов. Учитывая отсутствие опыта прохождений собеседований, на 99% уверен, что завалю собес.
Не бойся. Драйверы — это как раз самое то, что там делает одна из групп.
Надо просто попробовать.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: В какую область в моём случае проще попасть джуниором?
Здравствуйте, IgorVlasov, Вы писали:
IV> Поэтому мне подойдут только фирмы, где есть крупные проекты и разделение на аппаратчиков и программистов. Мелкие проекты, где схемотехник и программист — один человек, мне не подойдут.
Здравствуйте, IgorVlasov, Вы писали:
IV>Живу в Москве, работаю почти 14 лет в госконторе программистом драйверов на чистом C. Железо и операционка у нас свои собственные. IV>Знаю Linux на уровне продвинутого юзера, т.к. сборка образа нашей ОС происходит под Linux.
IV>Платят мне копейки, да и в целом вакансий по встраиваемым системам мало и они так себе оплачиваются.
IV>Думаю попробовать податься джуниором в какую-нибудь востребованную область, а то надоело сидеть в своём маленьком, оторванном от мира, загончике.
IV>Возраст уже 36 лет, умственные способности оцениваю как средние, софт скиллс — как низкие (иначе я не писал бы тут эту писанину, а давно нашёл бы нормальную работу ). IV>Когда-то изучал в университете SQL, Delphi, HTML и web-дизайн, из интереса изучал C#, но знания, естественно, поверхностные и уже подзабылись и устарели.
IV>Из направлений думаю больше всего мне понравится бэкенд. IV>Мобильная разработка — тоже неплохо, но, мне кажется, там работы меньше, чем в бэкенде. Для геймдева я старый, остаются в основном мобильные приложения всяких банков и магазинов, мне кажется, работы не так уж и много. IV>Во фронтенде, мне кажется, мне иногда придётся разрабатывать дизайн сайта. Понятно, что для этого есть дизайнер, но скорее всего будут возникать ситуации, когда дизайнер в отпуске/заболел/уволился и руководство мне скажет "тыж web-программист! Ну и сделай сайт.". А рисовать я не умею и не люблю, фотошоп открывал лет 15 назад, когда учился у университете. IV>1С совсем не моё.
IV>Думаю попробовать податься в Java или Go. Java популярнее, но зато Go молодой, поэтому, как мне кажется, в Go легче попасть джуниором? IV>.net отпадает из-за санкций. IV>Есть ещё Python, вроде бы он популярный, но если копнуть глубже, то в большинстве вакансий он требуется для автоматизации и всяких научных вычислений. Для разработки он применим в основном к web на Django и таких вакансий не так уж много. Кроме того, мне больше нравятся "нормальные" C-подобные компилируемые языки. От bash и makefile я плююсь каждый раз, когда на них нужно что-то сделать.
IV>Но проблема в том, что, насколько я знаю, благодаря множества курсов и толпе вайтишников, на позиции джуниора сейчас огромный конкурс, больше 200 откликов на вакансию. IV>Читал, что найти работу Android junior без коммерческого опыта сейчас сложно, в других популярных областях ситуация, наверное, не лучше. IV>А у меня большой возраст для джуниора, ещё и работал всё это время в единственной госконторе, а, насколько я знаю, HR не любят как летунов, так и тех, кто долго сидит на одном месте, особенно в госконторах.
IV>Вроде бы я не вайтишник, у меня более-менее профильное образование и есть опыт программирования на C, но C — это процедурно-ориентировпнное программирование, а не ООП, как Java. Собственно ООП в C ограничено структурами с указателями на функции в качестве методов. Никаких шаблонов проектирования вроде всяких там фабрик и прочего не применяется. IV>Так что опыт программирования на C, мне кажется, не очень мне поможет. IV>Нет и опыта в современных методологиях разработки и тестировании. IV>Типичное моё задание выглядит так: руководитель отдела говорит мне "тут не работает, разберись почему"/"поставили новый чип памяти, добавь в драйвер его поддержку"/"аппаратчики сделали новую железку, напиши для неё драйвер". Я делаю задание, при необходимости общаясь с аппаратчиками, сам же проверяю и если вроде бы работает — делаю коммит в svn и на этом всё. IV>Вот и весь процесс разработки
IV>С такими данными есть ли у меня шанс попасть в джуниоры в популярные направления, или не стоит и пытаться и лучше остаться программировать железки?
IV>Со знаниями в embedded у меня тоже не всё в порядке — я программирую под нашу собственную ОС а-ля VxWorks и под наше же железо, кроме того, фактически не знаю схемотехнику. Ну то есть я представляю, например, на какие ножки памяти какое напряжение и с какой частотой надо подать, чтобы она заработала. А вот откуда берётся это напряжение — этого я не знаю. У нас разделение на аппаратчиков и программистов. Если железка не работает, я иду к аппаратчику. IV>Поэтому мне подойдут только фирмы, где есть крупные проекты и разделение на аппаратчиков и программистов. Мелкие проекты, где схемотехник и программист — один человек, мне не подойдут. IV>Из плюсов области — мне кажется нет дискриминации по возрасту, железками в основном занимаются дядьки за 40 и старше, молодые выбирают более востребованные и денежные направления. Кроме того, специалистов тоже немного. Ради интереса посмотрел на HH вакансии Linux Kernel — вакансий мало, но некоторые из них висят несколько недель и на них плашка "Будьте первыми", что говорит о том, что не было ни одного отклика.
IV>Вот я в раздумьях: стоит ли пытаться вкатиться в мейнстрим (например Java или Go)? Если стоит, то в какое направление попасть проще всего? Или смириться с тем, что все полимеры уже просраны (в связи с возрастом и огромной конкуренцией на джуниорские вакансии) и остаться в железках?
А сколько денег то тебе нужно и сколько сейчас, зачем в джуниоры идти если у тебя 14 лет опыта?