И прорыла серьёзный такой водораздел между малыми и большими компаниями.
Вы не угадали, я говорил по опыту работы в нескольких компаниях размером чуть ли не с гугл, которые конкурировали с гуглом и ораклом в своей области по всему миру. В Java мире некоторые фреймворки и библиотеки нужно знать что в большой компании, что в маленькой. Ни разу, не видел вакансию Java синьеора в описании котором не было кучи требований фреймворков и технологий аля: JPA, Wsdl, Weblogic, JMS, Soup, Rest Easy, Hibernate, Spring security,…
В большой же компании — куча своих фреймворков! С которыми за пределами компании никто не работает! И их вам в любом случае придётся осваивать.
А вот от этого большие компании в Java мире пытаются всеми силами отойти. Да, свои наработки есть, но почти в любой используются десяток известных технологий: Spring, GWT, Hibernate и т.п. Более того сейчас есть мода у реально больших компаний, вроде гугла, выкладывать свои фреймворки и библотеки в open-source, просто чтобы не приходилось потом переучивать новых программистов.
Не автор, но попробую ответить, на нескольких собеседованиях сталкивался с вопросами вида «вам дано задание сделать систему, которая могла бы искать оптимальный маршрут в транспортной сети города с учетом пересадок и т.п. (по аналогу гугл мапс). Опишите без всякого кода как бы её реализовывали» или «если бы у вас было бы задание сделать простенькую соц.сеть, как бы вы его реализовали». С одной стороны, тут не требуется писать код или придумывать хитрые алгоритмы, просто рассуждать и описывать как решал бы конкретную проблему (причем она может быть аналогична той что будет реально на работе), с другой легко увидеть как человек размышляет над заданием и ищет решение.
То же самое с технологиями, описать как на каком-то Фреймворке будешь что-то делать даже очень приблизительно крайне сложно без реального знания Фреймворка. А вот вопросы какие типы бинов есть в Java Spring можно тупо выучить, просто вызубрив ответы в статье вида «тысяча вопросов, которые задают на собеседовании Java».
А вот придумать хотя бы очень примерное решение конкретной рабочей задачи с которой ему придется работать, пусть без всякого кода, человеку «не в теме» почти невозможно и это сразу видно.
На самом деле даже на Си никто, как я понимаю, не мешает хранить текст файлов на диске, менять их и вызывать компиляцию из командной строки некоторых из файлов. Придумывать для этого целый свой язык вообще не обязательно. На других языках, даже на Java/C# и т.п. легко генерить классы на лету. Так что проблема изменения исходного кода это самая простая из проблем.
И вообще в повседневной работе парное программирование, когда другой разработчик смотрит, как ты пишешь код — обычная практика. Профессионал не имеет права относится к этому как к стрессу.
А почему профессионал не имеет права отказаться от работы где будет постоянно использоваться парное программирование? Я бы, например, скорее всего бы от такой работы отказался.
как решение задач в реальном времени и демонстрация этого процесса зрителям. Меня не беспокоит лажа или откровенно глупые решения, как это не беспокоит игровых стриммеров.
Не стоит, обычно те кого не беспокоит глупые решения и лажа в собственном коде, работают по принципу тяп ляп и в продакт. Игровой стриммер не будет демонстировать свою игру, если он играет в эту игру в первый раз в жизни, опытный танцор не выйдет на сцену с танцем, который он не умеет танцевать, так видел пару раз по телевизору. Профессионал сначала оттачивает навыки до совершенство, а уже потом идет с ними на публику, так как репутация для него — главный ресурс.
Приведу пример, который сам встречал не раз. Кандидат проходит интервью в двух разных компаниях из одной отрасли… В компании Б дали задание на пару дней, которое кандидат спокойно сделал дома и полностью удовлетворил требования работодателя.
Другой пример, когда подходящих компаний десятка два и каждая пытается дать задание на пару дней на самом первом интервью… Особенно, когда кандидат ещё не уволился с прошлой работы и у него полно других дел, кроме поиска работы. Нет, я понимаю, если это компания мечты всех кандидатов, аля гугл. Но удивляет уверенность работодателей особо ничем не примечательной компании, что их вакансия единственная на рынке и кандидат потратить неделю на объемные задания чтобы лишь попасть на второе интервью, вместо того чтобы за это время пройти десяток собеседований в других компаниях. Во многих случаях опытные разработчики просто забивают на такие задания.
Кстати, у меня есть подозрения что бесплатные онлайн переводчики весьма ограничены в ресурсах, подозреваю добиться лучшего качества перевода можно, но скажем если переводчик будет обрабатывать не сто тысяч запросов в час, а скажем всего тысячу на том же самом железе, тогда можно было бы развернуться с серьезными сетями и хитрыми алгоритмами обучения и анализа, но это просто будет невыгодно для компаний-владельцев переводчиков.
Использовать ИИ (если он бы существовал), вероятно, было бы ещё более невыгодно, так что даже создание ИИ сильно погоды не сделает в ближайшем будущем бесплатных онлайн переводчиков. ИМХО
Да, совсем не обязательно, сейчас в «моде» значительно более узкие экспертные системы/системы с элементами ИИ, чем полноценный ИИ: автопилоты, распознавание речи и картинок, игровые системы. Система, умеющая работать с семантикой естественного языка, совсем не обязана уметь проходить тест Тьюринга, она вполне может работать с переводами методами Китайской комнаты без всякого ИИ, благо сейчас в машинном обучении развитие идет достаточно быстро.
Список умений какой-то очень странный, часть вполне конкрентные продукты и технологии, часть что-то совсем абстрактное: специалист по MapReduce это как специалист по циклу for, идея MapReduce используется от Hadoop'a до отдельных языков программирования, специалист по «платформа как услуга» тоже понятие размытое, это как специалист по «операционной системе»… без уточнения какой.
Я давно понял что меньше работы — больше зарплаты.
Так, меньше работы — больше зарплаты => больше времени на свои проекты во фрилансе => ещё больше зарплаты + опыт.
P.S. Обычно, в начале развития IT карьеры можно выбрать между высокой зарплатой, но без роста полезного опыта или относительно низкой зарплатой, но с перспективой роста как профессионала. Скажем, джуниор Java разработчик может зарабатывать меньше того кто просто ставит 1С пользователем без всякой настройки. Но тот кто ставит 1С программы и через 10 лет будет получать столько же, а Java синеор может просить значительно более высокую зарплату чем джуниор (не говоря уже о возможности переехать в другую страну и получать в десятки раз больше). Что в общем-то и видно на примере автора, принцип «меньше работы — больше зарплаты» на самом деле «поедание» сейчас своей зарплаты лет через 10, т.е. «больше зарплаты сегодня — меньше завтра»
Мне лично из ВУЗовской программы в профессии не пригодилось практически ничего.
Это вам так кажется. Мо жно говорит о плохой ВУЗовской программе, однако удивительно, но программисты из СНГ на Западе вполне конкурентноспособны. Как ни странно, но знаю многих кто к 30-35 годам успел пять лет отучится в ВУЗе и перехать в новую страну и несмотря на проблемы с языком и другим менталитетом, устроиться на высокие должности ничуть не хуже чем местные программисты(архитекторами, синеорами, тим лидами, проджект менеджерами).
Вопрос — почему именно программисты из СНГ так легко устраиваются на высокие должности в крупнейшие IT фирмы по всему миру? Почему не мексиканцы, италянцы, испанцы, сербы или поляки?
А ведь по логике, если Западная модель лучше для обучения хорошего программиста, то как раз русскоязычные программисты должны быть менее конкуретноспособными на Западном рынке труда. Или все-таки тут не все так очевидно как вам кажется?
Это сложный вопрос. Математика все равно полезна как базис для усвоения любых знаний, да можно давать только программирование, но, скажем, если вдруг будет задача чтобы написать программу по квантовой физике, то математика будет лучшим базисом, чем чистое программирование.
Например, наши программисты на Западе ценятся высоко, хотя казалось бы Западная система высшего образования, когда мало что дают кроме программирования должна готовить лучших специалистов и быстрее, но это совсем не очевидно (почему-то практически в любой крупной компании на Западе русские программисты и иногда их чуть ли не больше чем местных). Не говоря уже об индуской или китайской системе образования.
Скажем, так наше высшее образование несовершенно, но определенные плюсы у него все-таки есть.
А на нет и суда нет. Пойдет человек в экономисты или юристы, ну или, если закончил IT вуз, в саппорт, продажники IT программ и т.п… Тоже неплохая работа и хорошие деньги. Каждый свое хобби находит сам.
В первую очередь, чтобы научится учится. Это сложно да, но все остальное после этого ерунда. Как ни странно, всякая высшая математика, которая никогда не пригодится 99.9% программистов, хорошо учит разбираться в самой забубенной научной жути, это умение очень пригодится чтобы, например, осилить полную спецификацию языка программирования или «прочитать» дико запутанный код.
Вопрос даже не в этом. Несколько лет «работал» таким наставником у групп студентов (оплачивала компания где работал), так вот это далеко не самый легкий для самих студентов путь — мотивировать себя ходить на занятия в свободное время, делать не всегда интересные задачи, да ещё тратить в несколько раз больше времени на «домашнюю работу» сложно, а без реальной мотивации эффект будет таким же как от посещений занятий в универе «посетили, сдали, забыли». Это только кажется что наставник под пивко тебя научит тайным знаниям, на самом деле можно дать пару советов, можно сделать code review, но невозможно просто вложить знания, все равно 99% работы придется делать самому.
А Вы были честны с работодателем по причинам ухода? Мне просто ради спортивного интереса, у всех так — молча встал и ушел?..
Не всегда, проблема в том что работодатель склонен уговаривать остаться. А если ты абсолютно уверен, что в другая компания тебе больше подходит и нет 100% понятной причины вроде переезда в другую страну, часто проще уйти молча, иначе после озвучивания тебя будут долго и бессмысленно уговаривать (ну вот, если я уверен что в компании болото и лучше все равно не будет, смысл меня уговаривать?), либо «мстить» все две недели отработки за плохое мнение о компании/менеджменте и т.д. Это мало кому хочется…
Если хотите реально знать причину ухода, попробуйте давать опросник в самый последний день работы перед выдачей трудовой с несколькими вопросами о причинах ухода и обещанием прочитать его только после расчета, тогда есть шанс получить реальные отзывы о компании.
Плохие программисты это те кто ищет причины почему им лень учится. Знания не так структурированы, в универе не учат, работодатель не оплачивает ментерство. Хорошие, те кто ставить себе цель и начинает тупо учится, изучать язык и фреймворки, подтягивать английский.
Поверьте, учил студентов и начинающих программистов от компании, где работал, заметил что если человек хочет чтобы ему знания кто-то вложил бы в голову, пока он пьет пиво и играет в квейк — никакое ментерство и курсы ему все равно не помогут. А если у человека есть цель, то он даже без всяких ментеров станет отличным специалистом.
Так что указанные выше проблемы это лишь отмазки, главная проблема что нужно, увы, вкалывать, вкалывать и вкалывать, чтобы стать хорошим программистом…
P.S. Решение на самом деле, проще заведите трекер времени и каждый день выделяйте по 3-4 часа на изучение выбранного языка, его фреймворков, правил написание хорошего кода, английского.
Ок J# умер, доказав, что не особо-то был и нужен. При этом он не засорил собой код Java, а просто тихо ушел.
Он был нужен, только вместо J#, нужен был open-source аналог Java для Net полностью совместимый со стандартом так чтобы программа и под JVM и под Net работала одинаково.
Фрагментация Linux – не причина, а результат его гибкости
Когда программа в дебиане не запускается в федоре, это сложно назвать гибкостью и удобством для пользователей.
Но MS опять действует в своем стиле, что заставляет задуматься о намерениях и последствиях.
Как будто, монополия гугла с его хромиумом чем-то лучше монополии MS. Без конкуренции теряется смысл open-sourc'a, если open-sourc'е зависит от решений одного вендера это всегда плохо, каким бы белым и пушистым он не казался.
Намерения MS просты и понятны — попытаться подвинуть монополию гугла, если при этом хороший open-source получит дополнительные возможности, фичи и независимость от одного вендера это благо. Успех открытых решений Java мира почти всегда завязан на такой вот конкурентной борьбе крупных корпораций, от которой в первую очередь выигрывает само open-source сообщество.
Если их продукт так полезен и нужен – пусть делают форк с полной поддержкой совместимости, механизм форк/мердж был отработан на iojs
Бессмысленно, практически никто не будет пользоваться таким отдельным форком от MS. Это значит что он 100% гарантировано вымрет, то есть вы предлагаете просто выкинуть весь этот код и оставить полную зависимость от решений гугла.
Уже, проходили с J# вместо Java. Не стоит так делать, ничего хорошего все равно не получится, уж лучше развивать разные движки в рамках одного проекта, чем пытаться пилить свою nod'у c блекджеком и поэтессами. Та же фрагментация Linux платформ одна из главных проблем Linux'a как альтернативной ОС.
Еще вопрос, картинка знатная, но хотелось бы знать как она связана с темой?
Дык, если я не ошибаюсь, то это фото Совета Безопасности ООН во времена СССР (два полукруга столов и ряд столов внутри этого круга это характерно именно для Совбеза ООН). Так что это фото концентрированная Политика Безопасности. Куда уж больше Политики и Безопастности?
Вы не угадали, я говорил по опыту работы в нескольких компаниях размером чуть ли не с гугл, которые конкурировали с гуглом и ораклом в своей области по всему миру. В Java мире некоторые фреймворки и библиотеки нужно знать что в большой компании, что в маленькой. Ни разу, не видел вакансию Java синьеора в описании котором не было кучи требований фреймворков и технологий аля: JPA, Wsdl, Weblogic, JMS, Soup, Rest Easy, Hibernate, Spring security,…
А вот от этого большие компании в Java мире пытаются всеми силами отойти. Да, свои наработки есть, но почти в любой используются десяток известных технологий: Spring, GWT, Hibernate и т.п. Более того сейчас есть мода у реально больших компаний, вроде гугла, выкладывать свои фреймворки и библотеки в open-source, просто чтобы не приходилось потом переучивать новых программистов.
То же самое с технологиями, описать как на каком-то Фреймворке будешь что-то делать даже очень приблизительно крайне сложно без реального знания Фреймворка. А вот вопросы какие типы бинов есть в Java Spring можно тупо выучить, просто вызубрив ответы в статье вида «тысяча вопросов, которые задают на собеседовании Java».
А вот придумать хотя бы очень примерное решение конкретной рабочей задачи с которой ему придется работать, пусть без всякого кода, человеку «не в теме» почти невозможно и это сразу видно.
А почему профессионал не имеет права отказаться от работы где будет постоянно использоваться парное программирование? Я бы, например, скорее всего бы от такой работы отказался.
Не стоит, обычно те кого не беспокоит глупые решения и лажа в собственном коде, работают по принципу тяп ляп и в продакт. Игровой стриммер не будет демонстировать свою игру, если он играет в эту игру в первый раз в жизни, опытный танцор не выйдет на сцену с танцем, который он не умеет танцевать, так видел пару раз по телевизору. Профессионал сначала оттачивает навыки до совершенство, а уже потом идет с ними на публику, так как репутация для него — главный ресурс.
Другой пример, когда подходящих компаний десятка два и каждая пытается дать задание на пару дней на самом первом интервью… Особенно, когда кандидат ещё не уволился с прошлой работы и у него полно других дел, кроме поиска работы. Нет, я понимаю, если это компания мечты всех кандидатов, аля гугл. Но удивляет уверенность работодателей особо ничем не примечательной компании, что их вакансия единственная на рынке и кандидат потратить неделю на объемные задания чтобы лишь попасть на второе интервью, вместо того чтобы за это время пройти десяток собеседований в других компаниях. Во многих случаях опытные разработчики просто забивают на такие задания.
Использовать ИИ (если он бы существовал), вероятно, было бы ещё более невыгодно, так что даже создание ИИ сильно погоды не сделает в ближайшем будущем бесплатных онлайн переводчиков. ИМХО
Так, меньше работы — больше зарплаты => больше времени на свои проекты во фрилансе => ещё больше зарплаты + опыт.
P.S. Обычно, в начале развития IT карьеры можно выбрать между высокой зарплатой, но без роста полезного опыта или относительно низкой зарплатой, но с перспективой роста как профессионала. Скажем, джуниор Java разработчик может зарабатывать меньше того кто просто ставит 1С пользователем без всякой настройки. Но тот кто ставит 1С программы и через 10 лет будет получать столько же, а Java синеор может просить значительно более высокую зарплату чем джуниор (не говоря уже о возможности переехать в другую страну и получать в десятки раз больше). Что в общем-то и видно на примере автора, принцип «меньше работы — больше зарплаты» на самом деле «поедание» сейчас своей зарплаты лет через 10, т.е. «больше зарплаты сегодня — меньше завтра»
Это вам так кажется. Мо жно говорит о плохой ВУЗовской программе, однако удивительно, но программисты из СНГ на Западе вполне конкурентноспособны. Как ни странно, но знаю многих кто к 30-35 годам успел пять лет отучится в ВУЗе и перехать в новую страну и несмотря на проблемы с языком и другим менталитетом, устроиться на высокие должности ничуть не хуже чем местные программисты(архитекторами, синеорами, тим лидами, проджект менеджерами).
Вопрос — почему именно программисты из СНГ так легко устраиваются на высокие должности в крупнейшие IT фирмы по всему миру? Почему не мексиканцы, италянцы, испанцы, сербы или поляки?
А ведь по логике, если Западная модель лучше для обучения хорошего программиста, то как раз русскоязычные программисты должны быть менее конкуретноспособными на Западном рынке труда. Или все-таки тут не все так очевидно как вам кажется?
Например, наши программисты на Западе ценятся высоко, хотя казалось бы Западная система высшего образования, когда мало что дают кроме программирования должна готовить лучших специалистов и быстрее, но это совсем не очевидно (почему-то практически в любой крупной компании на Западе русские программисты и иногда их чуть ли не больше чем местных). Не говоря уже об индуской или китайской системе образования.
Скажем, так наше высшее образование несовершенно, но определенные плюсы у него все-таки есть.
А на нет и суда нет. Пойдет человек в экономисты или юристы, ну или, если закончил IT вуз, в саппорт, продажники IT программ и т.п… Тоже неплохая работа и хорошие деньги. Каждый свое хобби находит сам.
Не всегда, проблема в том что работодатель склонен уговаривать остаться. А если ты абсолютно уверен, что в другая компания тебе больше подходит и нет 100% понятной причины вроде переезда в другую страну, часто проще уйти молча, иначе после озвучивания тебя будут долго и бессмысленно уговаривать (ну вот, если я уверен что в компании болото и лучше все равно не будет, смысл меня уговаривать?), либо «мстить» все две недели отработки за плохое мнение о компании/менеджменте и т.д. Это мало кому хочется…
Если хотите реально знать причину ухода, попробуйте давать опросник в самый последний день работы перед выдачей трудовой с несколькими вопросами о причинах ухода и обещанием прочитать его только после расчета, тогда есть шанс получить реальные отзывы о компании.
Плохие программисты это те кто ищет причины почему им лень учится. Знания не так структурированы, в универе не учат, работодатель не оплачивает ментерство. Хорошие, те кто ставить себе цель и начинает тупо учится, изучать язык и фреймворки, подтягивать английский.
Поверьте, учил студентов и начинающих программистов от компании, где работал, заметил что если человек хочет чтобы ему знания кто-то вложил бы в голову, пока он пьет пиво и играет в квейк — никакое ментерство и курсы ему все равно не помогут. А если у человека есть цель, то он даже без всяких ментеров станет отличным специалистом.
Так что указанные выше проблемы это лишь отмазки, главная проблема что нужно, увы, вкалывать, вкалывать и вкалывать, чтобы стать хорошим программистом…
P.S. Решение на самом деле, проще заведите трекер времени и каждый день выделяйте по 3-4 часа на изучение выбранного языка, его фреймворков, правил написание хорошего кода, английского.
Он был нужен, только вместо J#, нужен был open-source аналог Java для Net полностью совместимый со стандартом так чтобы программа и под JVM и под Net работала одинаково.
Когда программа в дебиане не запускается в федоре, это сложно назвать гибкостью и удобством для пользователей.
Как будто, монополия гугла с его хромиумом чем-то лучше монополии MS. Без конкуренции теряется смысл open-sourc'a, если open-sourc'е зависит от решений одного вендера это всегда плохо, каким бы белым и пушистым он не казался.
Намерения MS просты и понятны — попытаться подвинуть монополию гугла, если при этом хороший open-source получит дополнительные возможности, фичи и независимость от одного вендера это благо. Успех открытых решений Java мира почти всегда завязан на такой вот конкурентной борьбе крупных корпораций, от которой в первую очередь выигрывает само open-source сообщество.
Бессмысленно, практически никто не будет пользоваться таким отдельным форком от MS. Это значит что он 100% гарантировано вымрет, то есть вы предлагаете просто выкинуть весь этот код и оставить полную зависимость от решений гугла.
Уже, проходили с J# вместо Java. Не стоит так делать, ничего хорошего все равно не получится, уж лучше развивать разные движки в рамках одного проекта, чем пытаться пилить свою nod'у c блекджеком и поэтессами. Та же фрагментация Linux платформ одна из главных проблем Linux'a как альтернативной ОС.
Дык, если я не ошибаюсь, то это фото Совета Безопасности ООН во времена СССР (два полукруга столов и ряд столов внутри этого круга это характерно именно для Совбеза ООН). Так что это фото концентрированная Политика Безопасности. Куда уж больше Политики и Безопастности?