Здравствуйте, merge, Вы писали:
M>Когда-то начинал с ++, как многие. M>Если раньше меня спросили бы что учить если хочешь писать сложные интересные системы и быть востребованным как в РФ, так и с прицелом на отъезд, я бы точно сказал учи С++ M>Но сейчас, я в этом не уверен. M>Какой язык посоветуете учить человеку чтобы к примеру начать работать в яндексе дойти до хорошего уровня и с прицелом на собеседование в FAANG для отъезда?
Здравствуйте, merge, Вы писали:
M>Когда-то начинал с ++, как многие. M>Если раньше меня спросили бы что учить если хочешь писать сложные интересные системы и быть востребованным как в РФ, так и с прицелом на отъезд, я бы точно сказал учи С++ M>Но сейчас, я в этом не уверен. M>Какой язык посоветуете учить человеку чтобы к примеру начать работать в яндексе дойти до хорошего уровня и с прицелом на собеседование в FAANG для отъезда?
На сколько я знаю, Гугл и Амазон не предъявляют требований к языкам: алгоритмы + структуры данных.
Другое дело, что C++ часто используют в тех областях и проектах, в которых требуется знания алгоритмов и структур данных.
Естественно, что на C#, Java, JavaScript проектов, требующих знания алгоритмов и структур данных — на много меньше.
Особнячком стоит Python, на котором можно эффективно решать практически все задачи.
У меня вопрос-оффтопик: а с каких пор Netflix стал превлекательным работодателем, на равне с Google, Amazon (хотя вот спорный момент, что там классно работать из-за вечных переработок) Apple и Facebook(хотя чего интересного в Facebook — тоже не совсем понятно)?
Здравствуйте, AmSpb, Вы писали:
AS>Здравствуйте, gyraboo, Вы писали:
G>>Спасибо за рекомендации. А функциональщина наседает в C++ или там всё чисто ООП-шно?
AS>Я бы сказал, что python-щина наседает в С++, но в хорошем смысле. С++ берет кое-какие классные фишки из питона.
вы хотите сказать последние версии с++ вполне изменились по сравнению с 10 летней давностью?
Прямо захотелось написать что-то.
я вот всё хочу что-то роботизированное для детей сделать простое, думаю как раз освежить.
только под железо вроде С чистый
Здравствуйте, merge, Вы писали: M>Какой язык посоветуете учить человеку чтобы к примеру начать работать в яндексе
Все гиганты и гигантики, занимающиеся высоконагруженным софтом (Google, Facebook, Yandex и проч.) имеют компоненты в строю, разработанные на C++.
Весь эмбеддед, критичный к производительности и особенно реал-тайм в основном C++ (и рeже Java или еще реже Ada).
Никакой ЯП не сравнится с C++ по соотношению высокоуровневости, портируемости на различные аппаратные архитектуры, оптимальности и временной предсказуемости генерируемого кода.
Здравствуйте, so5team, Вы писали:
mgu>>Это хорошо известно тем, кто хоть раз прошёл подобный путь. К сожалению, среди нанимателей таких людей мало.
S>Еще меньше тех, кто готов нормально платить за разгребание говн, произведенных изучившими C++ за две недели.
так надо не брать копрофилов — а сколько недель c++ изучался совершенно не имеет значения.
копрофилия легко выявляется тестовым заданием и обсуждением написанного. отмечу, что самая лютая, бешенная, разнузданная форма копрофилии — это "в языке есть такая фича, поэтому надо её тут применить"
опа опа мы воюем с нато
любит хавать этот кал
путинская вата
Здравствуйте, sr_dev, Вы писали:
S>>Еще меньше тех, кто готов нормально платить за разгребание говн, произведенных изучившими C++ за две недели.
_>так надо не брать копрофилов
Отличный совет, спасибо, кэп. Может вы еще и знаете, почему этому совету не следуют?
_>а сколько недель c++ изучался совершенно не имеет значения.
Здравствуйте, student__, Вы писали:
__>Никакой ЯП не сравнится с C++ по соотношению высокоуровневости, портируемости на различные аппаратные архитектуры, оптимальности и временной предсказуемости генерируемого кода.
Здравствуйте, so5team, Вы писали:
S>С++ позволяет писать в разных стилях. Так что это полностью зависит от каши в башке программиста: покусанные функциональщиной будут писать а-ля Хаскелль, люди с ООП головного мозга в терминальной стадии в Qt-шном стиле и т.д.
Хотелось бы пример "Qt-шного стиля" без Qt Мне на ум приходит только преобладание динамического полиморфизма над статическим (наследование vs шаблоны).
Здравствуйте, Skorodum, Вы писали:
S>>С++ позволяет писать в разных стилях. Так что это полностью зависит от каши в башке программиста: покусанные функциональщиной будут писать а-ля Хаскелль, люди с ООП головного мозга в терминальной стадии в Qt-шном стиле и т.д. S>Хотелось бы пример "Qt-шного стиля" без Qt Мне на ум приходит только преобладание динамического полиморфизма над статическим (наследование vs шаблоны).
думаю оно. но не понимаю, чем это плохо.
по крайней мере этот подход дает реальную раздельную компиляцию и не приходится выжидать перекомпиляции всего проекта если пришлось где-то в реализации что-то поправить.
Здравствуйте, merge, Вы писали:
M>вы хотите сказать последние версии с++ вполне изменились по сравнению с 10 летней давностью?
Лямбды добавили как раз 10 лет назад, в С++11. Потом в стандартную библиотеку много чего перекочевало из буста (например, thread, chrono filesystem). Стала меньше потребность в велосипедах для стандартных задач.
Я бы сказал, что больше всего код отличается "до С++11" и "после С++11" (если фичи используются).
M>Прямо захотелось написать что-то.
M>я вот всё хочу что-то роботизированное для детей сделать простое, думаю как раз освежить. M>только под железо вроде С чистый
С чего это? Если стандартные АРМ'овские процессоры а-ля М4, М7, то там что угодно можно, вплоть до С++20.
Здравствуйте, so5team, Вы писали:
S>Проблема с C++ не в изучении синтаксиса, а в том, чтобы выработать рефлексы писать так, чтобы конечности не отстреливались.
Еще системы сборки и управления зависимостями. В любом более-менее сложном и развивающемся проекте это не тривиально (для новичка) и никак не стандартизированно. Особенно если поддерживаемых платформ, процессоров и компиляторов несколько.
нормальное управление исходниками тоже далего не все освоить могут. Хоть это и ортогонально С++, но в джентельменский набор входит.
Пришел тут к нам новый application engineer, вроде как с навыками в разработке, говорит в Нокии работала. Спрашиваю "Какой компилятор использовали, подо что собирали"? Отвечает: "Eclipse"
Здравствуйте, night beast, Вы писали:
NB>думаю оно. но не понимаю, чем это плохо.
Производительность. Если проивзодительность КРИТИЧНА и обращений к VTABLE может быть тысячи в секунду, то, конечно же, надо предпочитать статический полиморфизм, ведь это zero overhead в runtime.
NB>по крайней мере этот подход дает реальную раздельную компиляцию и не приходится выжидать перекомпиляции всего проекта если пришлось где-то в реализации что-то поправить.
Вижу познавшего PIMP идиому я
Укушенные Александреску адепты буста привыклю к компиляции по полчаса (а как еще на кывт/политика сидеть?)
Здравствуйте, Skorodum, Вы писали:
NB>>думаю оно. но не понимаю, чем это плохо. S>Производительность. Если проивзодительность КРИТИЧНА и обращений к VTABLE может быть тысячи в секунду, то, конечно же, надо предпочитать статический полиморфизм, ведь это zero overhead в runtime.
Ну, в некоторых случаях можно добиться ускорения при девиртуализации, если везде где можно ставить final. Так что С++ движется к тому, чтобы менять некоторые best practices из прошлого.
Здравствуйте, Skorodum, Вы писали:
NB>>думаю оно. но не понимаю, чем это плохо. S>Производительность. Если проивзодительность КРИТИЧНА и обращений к VTABLE может быть тысячи в секунду, то, конечно же, надо предпочитать статический полиморфизм, ведь это zero overhead в runtime.
это да, но как часто оно реально нужно?
имхо, в большинстве случаев производительность менее важна чем понятность, удобство использования
Здравствуйте, so5team, Вы писали:
S>И здесь разве что еще раз повторить: мало кто готов платить за разгребания подобных говн адекватно.
Более того, соотношение "требуемый опыт для эффективной работы"/ЗП в С++ далеко не самое выгодное на сегодня. Java/C# намного выгоднее.
Здравствуйте, Skorodum, Вы писали:
S>Производительность. Если проивзодительность КРИТИЧНА и обращений к VTABLE может быть тысячи в секунду, то, конечно же, надо предпочитать статический полиморфизм, ведь это zero overhead в runtime.
Критична производительность только в узких местах программы, обычно для нескольких классов. И там обычно можно использовать простые шаблоны или вообще обойтись без полиморфизма.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, night beast, Вы писали:
NB>имхо, в большинстве случаев производительность менее важна чем понятность, удобство использования
Вот поэтому дотнетчиков и жабистов сильно больше (смайлик по вкусу).