"Если сотрудник стал выполнять задачи не за 8 часов, а за 4 часа" — эмм, мы о программистах говорим или о грузчиках на складе? Грузчик может быстрее машину разгрузить и пойти отдыхать, пока следующая не приехала. А представить, что у программиста кончились задачи, я лично не могу. Их сотни висит в баг-трекере. Если прогаммист простаивает, это ошибка найма и убытки для бизнеса.
Если программист начал работать продуктивнее, он может делать больше (лучше) и претендавать на большую зарплату.
Саморазвитие — отдельный пункт, который должен либо по договору с работодателем либо планированием самого разработчика занимать N-ную часть рабочего процесса — и это может быть как pet project, так и изучение книг, напрсание статей, рефакторинг проекта… И это не 4 часа из 8, а максимум 1.
Сам Maybe — это optional, конечно. Но есть иногда желание возвращать что-то более хитрое, самый банальный пример (из статьи) — результат | код ошибки с сообщением. Либо хранить состояние вместе с его параметрами, но не делая под это полноценный класс.
Спасибо за последний пример с std::variant. А то я все думал, как в С++ сделать красивые algebraic data types вроде Haskell'овского Maybe (Nothing | Just a).
Просто поддержка старой ОС для разработчиков этих "других компиляторов" в меньшем приоритете, чем другие задачи. Вполне разумно при ограниченных ресурсах.
Да, в целом согласен.
Спасибо, натолкнули на интересные мысли. Конечно, нужны и придумывальщики, и писальщики, а еще больше — прикладные программисты, которые все эти алгоритмы аккуратно в программу встроят. Потому что фреймворк с графикой, бизнес-логикой и GUI тоже на С++. 10 лет назад это было еще норм, 5 лет назад свалили с MFC на Qt (почему-то Qt победил WPF), а сейчас, возможно, пора дальше двигаться. Хотя двигаться, когда в проекте пара сотен человеко-лет заложена — тонкая работа;)
У нас, кстати, ни один из этих трех пунктов не выполняется — вычислительно нагруженный проект (CAD для алмазной промышленности), VS2015 (соответственно, C++11/14/17 в неплохом объеме). И все же.
Думаю, одна их главных причин — что мы не Яндекс;) По моим скромным наблюдениям, "стандартный" путь программиста сейчас — небольшие компании -> Яндекс/Mail/Касперский/… -> забугор. Т.е. если человек достиг хорошего уровня, он и работодателя себе ищет покрупнее (даже при более низкой зарплате).
Вообще, среди знакомых программистов на С++ я не встречал мнений типа "я знаю редкий/сложный язык, поэтому должен получать кучу денег". Да, зарплаты в C++ больше, чем в PHP — это не проблема. Если хороший специалист будет много хотеть — ок. А когда мало что умеют, а хотят много — вот это завышенные ожидания.
"Завышенные зарплатные ожидания" — это когда человек приходит на варансию "архитектор/инегратор" и не может на практике применить базовые паттерны из GOF.
Дело тут не в языке — в любой вакансии есть процент людей, которые мало умеют, но много хотят. И процент неадекватов, и процент не обладающих soft skills, и процент тех, кто в итоге откажется от оффера по своим причинам. Если все это перемножить, получим, коэффициент просева A. Скажем, 1/5 проходит фильтр (не считая тех, кто не прошел фильтр HR ).
В Java коффициент будет примерно такой же, но домножаться будет на более крупный пул разработчиков (примем Ваше положение о редкости C++). В итоге даже если нет отбоя от кандидатов (хотя я не верю, что middle/senior разрабы Java толпами ищут работу), все равно вы проведете пяток собеседований перед тем, как взять человека. Плюс, опять же, время на обучение.
Вот и получается, что уход ценного специалиста задержит его направление как минимум на пару месяцев.
А напишите статью, как уметь искать свежих программистов на С++ уровня Middle/Senior. Не в Яндекс и Mail.ru, а в обычную не особо известную компанию. С реальными знаниями и умениями, а не только завышенными зарплатными ожиданиями. С умением активно и самостоятельно работать в коммерческом проекте, а не ковырять в свое удовольствие проект с гос. финансированием. И в целом адекватного;)
У нас на поиск такого человека уходит примерно полгода. Плюс время на обучение предметной области и "въезжание" в проект.
Вам (вместе с другом) просто два раза не повезло, статистика штука такая. Я, например, перед уходом сказал об этом за полгода и мы вместе подобрали сотрудника на мое место, было время ему передать опыт и т.п. В итоге хорошие отношения, возможность вернуться.
"Чем больше убытков понесёт компания с твоим уходом, тем лучше." — это дорожка, ступив на которую в итоге сам превратишься в начальника, который увольняет со скандалом и оскорблениями.
+1 успешно вернувшийся. Имхо, для компании от возвращения польза еще и в том, что сотрудник набрался нового опыта, который не мог бы получить внутри компании.
Вы смешали в кучу префиксы по типу и по видимости, от чего автор как раз предостерегает. Если у вас только 'm', то прекрасно понятно, писать его или нет, ведь вы точно знаете, какую переменную ищете — локальную или член класса.
Coding Conventions не помогут вам в коде метода класса понять, например, использует/изменяет ли данный кусок кода состояние класса (т.е. переменные-члены) и можно ли его отрефакторить,
lpsz_name — корректный вариант при использовнии гайдлайна по префиксам при именовании переменных с_разделением_слов_подчеркиванием. Общий гайдлайн Microsoft включает в себя рекомендации не только по префиксам, но и по именованию (camelCase). Но нет никакой проблемы, что в проекте гайдлайн используется не целиком, а частично.
А в данном случае это, скорее всего, просто мелкая невнимательность автора, который привел не совсем удачный пример.
Стоило дожить до Web 2.0 и реалистичной 3D-графики, чтобы оценить простоту и изящество текстовых интерфейсов. Отсутствие визаульного мусора (не говоря уж о рекламном) и возможность самому додумать картинку — это здорово:)
Как ни странно, к старым протоколам и форматам это тоже относится — удивительно, как люди проектировали штуки, которые живут уже 20 с лишним лет и до сих пор востребованы. Может быть это ошибка выжившего, но думается, что из "тех" времен процент выживших гораздо больше современного.
Раньше думал, что все равно, "чем там они занимаются", но с какого-то момента стало не все равно.
Первый вопрос (фильтр) — не занимается ли компания чем-то противозаконным или противоречащим моим убеждениям (например им противоречит трейдинг).
Второй вопрос (фильтр) — движуха там или болото, что можно нередко понять по частоте релизов, наполнению сайта,…
Третий — а интересно ли мне поучаствовать в данном проекте. Но это уже на собеседовании скорее выясняется, особенно если это не маленький стартап, а большая корпорация с кучей направлений. И тут еще все зависит от того, насколько срочно нужна работы и достаточно ли ты востребованный специалист, чтобы выбирать.
А для VisualStudio Есть бесплатный VsVim (и платный ViEmu, но особых преимуществ я у него не смог обнаружить). Интегрируется не идеально, но вот уже который раз после переустановки студии ставлю его, значит есть польза;)
Особенно он выручает при работе с ноутбука, когда есть только тачпад и нельзя мышкой вжух-вжух.
Какое же это свободное время, если ты обязан сидеть его в офисе?
"Если сотрудник стал выполнять задачи не за 8 часов, а за 4 часа" — эмм, мы о программистах говорим или о грузчиках на складе? Грузчик может быстрее машину разгрузить и пойти отдыхать, пока следующая не приехала. А представить, что у программиста кончились задачи, я лично не могу. Их сотни висит в баг-трекере. Если прогаммист простаивает, это ошибка найма и убытки для бизнеса.
Если программист начал работать продуктивнее, он может делать больше (лучше) и претендавать на большую зарплату.
Саморазвитие — отдельный пункт, который должен либо по договору с работодателем либо планированием самого разработчика занимать N-ную часть рабочего процесса — и это может быть как pet project, так и изучение книг, напрсание статей, рефакторинг проекта… И это не 4 часа из 8, а максимум 1.
Сам Maybe — это optional, конечно. Но есть иногда желание возвращать что-то более хитрое, самый банальный пример (из статьи) — результат | код ошибки с сообщением. Либо хранить состояние вместе с его параметрами, но не делая под это полноценный класс.
Спасибо за последний пример с
std::variant. А то я все думал, как в С++ сделать красивые algebraic data types вроде Haskell'овского Maybe (Nothing | Just a).Просто поддержка старой ОС для разработчиков этих "других компиляторов" в меньшем приоритете, чем другие задачи. Вполне разумно при ограниченных ресурсах.
Да, в целом согласен.
Спасибо, натолкнули на интересные мысли. Конечно, нужны и придумывальщики, и писальщики, а еще больше — прикладные программисты, которые все эти алгоритмы аккуратно в программу встроят. Потому что фреймворк с графикой, бизнес-логикой и GUI тоже на С++. 10 лет назад это было еще норм, 5 лет назад свалили с MFC на Qt (почему-то Qt победил WPF), а сейчас, возможно, пора дальше двигаться. Хотя двигаться, когда в проекте пара сотен человеко-лет заложена — тонкая работа;)
У нас, кстати, ни один из этих трех пунктов не выполняется — вычислительно нагруженный проект (CAD для алмазной промышленности), VS2015 (соответственно, C++11/14/17 в неплохом объеме). И все же.
Думаю, одна их главных причин — что мы не Яндекс;) По моим скромным наблюдениям, "стандартный" путь программиста сейчас — небольшие компании -> Яндекс/Mail/Касперский/… -> забугор. Т.е. если человек достиг хорошего уровня, он и работодателя себе ищет покрупнее (даже при более низкой зарплате).
Вообще, среди знакомых программистов на С++ я не встречал мнений типа "я знаю редкий/сложный язык, поэтому должен получать кучу денег". Да, зарплаты в C++ больше, чем в PHP — это не проблема. Если хороший специалист будет много хотеть — ок. А когда мало что умеют, а хотят много — вот это завышенные ожидания.
"Завышенные зарплатные ожидания" — это когда человек приходит на варансию "архитектор/инегратор" и не может на практике применить базовые паттерны из GOF.
Дело тут не в языке — в любой вакансии есть процент людей, которые мало умеют, но много хотят. И процент неадекватов, и процент не обладающих soft skills, и процент тех, кто в итоге откажется от оффера по своим причинам. Если все это перемножить, получим, коэффициент просева A. Скажем, 1/5 проходит фильтр (не считая тех, кто не прошел фильтр HR ).
В Java коффициент будет примерно такой же, но домножаться будет на более крупный пул разработчиков (примем Ваше положение о редкости C++). В итоге даже если нет отбоя от кандидатов (хотя я не верю, что middle/senior разрабы Java толпами ищут работу), все равно вы проведете пяток собеседований перед тем, как взять человека. Плюс, опять же, время на обучение.
Вот и получается, что уход ценного специалиста задержит его направление как минимум на пару месяцев.
А напишите статью, как уметь искать свежих программистов на С++ уровня Middle/Senior. Не в Яндекс и Mail.ru, а в обычную не особо известную компанию. С реальными знаниями и умениями, а не только завышенными зарплатными ожиданиями. С умением активно и самостоятельно работать в коммерческом проекте, а не ковырять в свое удовольствие проект с гос. финансированием. И в целом адекватного;)
У нас на поиск такого человека уходит примерно полгода. Плюс время на обучение предметной области и "въезжание" в проект.
Вам (вместе с другом) просто два раза не повезло, статистика штука такая. Я, например, перед уходом сказал об этом за полгода и мы вместе подобрали сотрудника на мое место, было время ему передать опыт и т.п. В итоге хорошие отношения, возможность вернуться.
"Чем больше убытков понесёт компания с твоим уходом, тем лучше." — это дорожка, ступив на которую в итоге сам превратишься в начальника, который увольняет со скандалом и оскорблениями.
+1 успешно вернувшийся. Имхо, для компании от возвращения польза еще и в том, что сотрудник набрался нового опыта, который не мог бы получить внутри компании.
… а код эти 50 человек пишут одноразовый, поэтому не может возникнуть необходимости разбираться в нем через год (тем более другому разработчику0...
Вы смешали в кучу префиксы по типу и по видимости, от чего автор как раз предостерегает. Если у вас только 'm', то прекрасно понятно, писать его или нет, ведь вы точно знаете, какую переменную ищете — локальную или член класса.
Coding Conventions не помогут вам в коде метода класса понять, например, использует/изменяет ли данный кусок кода состояние класса (т.е. переменные-члены) и можно ли его отрефакторить,
lpsz_name — корректный вариант при использовнии гайдлайна по префиксам при именовании переменных с_разделением_слов_подчеркиванием. Общий гайдлайн Microsoft включает в себя рекомендации не только по префиксам, но и по именованию (camelCase). Но нет никакой проблемы, что в проекте гайдлайн используется не целиком, а частично.
А в данном случае это, скорее всего, просто мелкая невнимательность автора, который привел не совсем удачный пример.
Еще можно брать информацию с домашних метеостанций. Вот так:
https://weathermap.netatmo.com/
Стоило дожить до Web 2.0 и реалистичной 3D-графики, чтобы оценить простоту и изящество текстовых интерфейсов. Отсутствие визаульного мусора (не говоря уж о рекламном) и возможность самому додумать картинку — это здорово:)
Как ни странно, к старым протоколам и форматам это тоже относится — удивительно, как люди проектировали штуки, которые живут уже 20 с лишним лет и до сих пор востребованы. Может быть это ошибка выжившего, но думается, что из "тех" времен процент выживших гораздо больше современного.
Раньше думал, что все равно, "чем там они занимаются", но с какого-то момента стало не все равно.
Первый вопрос (фильтр) — не занимается ли компания чем-то противозаконным или противоречащим моим убеждениям (например им противоречит трейдинг).
Второй вопрос (фильтр) — движуха там или болото, что можно нередко понять по частоте релизов, наполнению сайта,…
Третий — а интересно ли мне поучаствовать в данном проекте. Но это уже на собеседовании скорее выясняется, особенно если это не маленький стартап, а большая корпорация с кучей направлений. И тут еще все зависит от того, насколько срочно нужна работы и достаточно ли ты востребованный специалист, чтобы выбирать.
А для VisualStudio Есть бесплатный VsVim (и платный ViEmu, но особых преимуществ я у него не смог обнаружить). Интегрируется не идеально, но вот уже который раз после переустановки студии ставлю его, значит есть польза;)
Особенно он выручает при работе с ноутбука, когда есть только тачпад и нельзя мышкой вжух-вжух.