LINUX.ORG.RU
ФорумJob

Что должен уметь junior C++?

 , ,


1

1

Собственно, вопрос вынесен в заголовок, хочется получить указания от более опытных людей. Понятно, что надо знать синтаксис и базовые конструкции языка (циклы, операторы, функции и т.д.), уметь в ООП, крайне желательно быть знакомым с STL. А что ещё? Нужны ли boost, Qt? SQL? Иногда указывают что-то типа «базовых алгоритмов», это что и в каком объёме? Обязателен ли какой-то стоящий завершённый проект, который новичку не стыдно запостить на github?

О себе: бакалавр по направлению «физика», МГУ, реальные навыки описаны во втором предложении, в принципе во время учёбы пользовался Matlab и могу работать с ним, но почему-то сомневаюсь в его необходимости за пределами университета. Кстати, могут ли возникнуть в будущем затруднения, если остановиться на бакалавре и не получать магистра, или реальный опыт и навыки всегда ценятся выше формальных (надеюсь на это)?

P.S. Если ошибся с форумом и это не для Job, прошу перенести.

P.P.S. Подскажите адекватные среднерыночные деньги, на которые должен рассчитывать в Москве человек, устраивающийся джуном? На HeadHunter в большинстве стартовых вакансий почему-то зарплата не указывается. Я правильно понимаю что адекватно будет 30-40 тысяч?

★★

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

Библиотеки, я думаю, не обязательны.

По деньгам можно раза в два больше, если метить в топовые конторы вроде Google, Facebook, Intel, JetBrains, etc. Проблема только в том, что топовые международные конторы во-первых выводят R&D из России, во-вторых не во всех нужны плюсисты.

staseg ★★★★★
()
Последнее исправление: staseg (всего исправлений: 1)

Подскажите адекватные среднерыночные деньги, на которые должен рассчитывать в Москве человек, устраивающийся джуном?

50-70

umren ★★★★★
()

тебе щас местные насоветуют. ходи на собеседования и смотри что предлагают.

vvviperrr ★★★★★
()

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

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

umren ★★★★★
()

Подскажите адекватные среднерыночные деньги, на которые должен рассчитывать в Москве человек, устраивающийся джуном?

Ща тебе про стотыщьмильёнов расскажут

sidor ★★
()

Джун должен знать и главное помнить все тоже, что и сеньор, но работать при этом за еду. Прописная истина, сэр.

unt1tled ★★★★
()
Ответ на: комментарий от EXL

Нам нужен сильный С++ специалист для работы над ядром продуктов dotTrace/dotCover/dotMemory.

stave ★★★★★
()
Ответ на: комментарий от EXL

Таки решили свои тормозные поделки с Java на C++ переписать, чтобы работали быстро?

Гы, как будто подделки типа qt creator, kdevelop, etc работают лучше (притом функционала там сильно меньше)

umren ★★★★★
()
Ответ на: комментарий от umren

Работают они значительно быстрее, при сравнимом общем функционале.

Это неоспоримый факт.

Но тема не об этом, каюсь за оффтоп и сворачиваю беседу на эту тему. Если хочешь продолжить разговор, пиши в личку.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Насколько я знаю, нативного кода у JetBrains если и есть, то очень немного, в отличие от C++/CLI (требуещееся владение C# намекает, что это как раз тот случай).

чтобы работали быстро

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

Softwayer ★★
()
Ответ на: комментарий от Softwayer

Насколько я знаю, нативного кода у JetBrains если и есть, то очень немного,

Нативного у них как минимум интеграция с дебаггерами, они недавно искали человека пилить lldb/gdb-интерфейс в их clion.

C++/CLI

Засунь себе свой копрофантазии куда-нибудь подальше.

hateyoufeel ★★★★★
()

Э-э-э... кое-как уметь нечто и уметь учить машину этому нечто?

ados ★★★★★
()
Ответ на: комментарий от Softwayer

Ну, так многие поделия на java жрут просто как жабы. Особенно раму. Вот пример: YouTrack. Какая-то простая система учёта проектов еле ворочается на 1 гиге оперативе... Jira: валится на гиге только в путь. Их (атласиан) git webserver тоже жрёт на старте под 2 гига, а даёт всё то же, что и https://gogs.io/ При этом gogs отвечает молниеносно и жрёт что-то около 10 Мб оперативки. Вот тебе и java.

На рубях такая же хрень - вся обвязка gitlab'а жрёт под 2 гига, а толку столько же, что и от gogs с 10 мегабайтами.

Так что будущее за go и swift.

menangen ★★★★★
()
Ответ на: комментарий от menangen

Будущее за теми, кто умеет читать документацию про Xmx, как вообще работают различные аллокаторы и зачем JVM выделяет себе столько памяти.

И еще. Go и swift совершенно разные языки. Первый имеет GC, второй нет. Про это тоже почитай.

xpahos ★★★★★
()
Последнее исправление: xpahos (всего исправлений: 1)

Иногда указывают что-то типа «базовых алгоритмов», это что и в каком объёме?

Умение писать fizzbuzz, insertion sort, mergesort, quicksort. Различные деревья с балансировкой и без. Алгоритмы на графах. Строковые алгоритмы. Динамическое программирование. Если ты никогда с этим не сталкивался, то можешь пройти курс Седжвика на курсере, а потом курс основанный на Кормане. Порешай задачки на leetcode, hackerrank, timus, project euler, etc.

Кстати, могут ли возникнуть в будущем затруднения, если остановиться на бакалавре и не получать магистра, или реальный опыт и навыки всегда ценятся выше формальных (надеюсь на это)?

Физика вряд ли тебе пригодится. Можешь пойти в ШАД, если тебе интересен ML.

Я правильно понимаю что адекватно будет 30-40 тысяч?

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

xpahos ★★★★★
()
Ответ на: комментарий от xpahos

Ага, я тоже могу тебя отослать читать про то, что не язык имеет GC, а его реализация. Ты нашёл разность - теперь найди общее.

menangen ★★★★★
()
Ответ на: комментарий от menangen

Так что будущее за go

Жаль только гуев там буквально нет, сообщество не тянет, а создатели не хотят

поэтому нетормозящей идеи на го мы никогда не увидим

umren ★★★★★
()
Ответ на: комментарий от menangen

Ну, так многие поделия на java жрут просто как жабы. Особенно раму. Вот пример: YouTrack. Какая-то простая система учёта проектов еле ворочается на 1 гиге оперативе... Jira: валится на гиге только в путь. Их (атласиан) git webserver тоже жрёт на старте под 2 гига, а даёт всё то же, что

Бизнес и ничего личного: [сервер 128GB ram](http://www.ebay.com/sch/i.html?_from=R40&_trksid=p2050601.m570.l1313.TR12... ) стоит 40к рублей, или 312 рублей за GB, или 44 минуты рабочего времени разработчика с окладом 90к в месяц.

snizovtsev ★★★★★
()

На самом деле нет такого формализованного понятия Junior в С++ и соответственно нету и строгих требований. Каждая контора набирающая юных программистов имеет какой то свой профиль работы и соответственно свои неповторимые требования к кандидатам. Кто то пишет гуёвые проги на Qt, кто то прошивки для всяких встраиваемых устройств. У всех контор требования абсолютно разные. А тебе при этом надо изучать вещи универсальные для С++, основы языка, STL и пр. То что пригодиться в большинстве случаев. Чем лучше ты это изучишь, тем больше шансов попасть в Junior-ы. Пока свободен учись. Можешь поучиться подольше, написать какие то свои небольшие проекты тогда признают и опытным разрабом. Бакалавр ты или магистр значения не имеет, абсолютно никакого. Реальные навыки и только это.

Согласен, (с предыдущим оратором) лучше будет начинать в больших конторах. Но не факт что большие конторы захотят с тобой начинать. Как повезёт.

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

Тут на форуме постоянно набирает начинающих сишников NatSys-Lab. Думаю будет очень хорошая позиция для тебя. Они занимаются системным софтом для Linux. Это конечно не C++, а просто C, но очень перспективное направление.

khenty
()
Ответ на: комментарий от xpahos

никому не нужное дерьмо

insertion sort, mergesort, quicksort. Различные деревья с балансировкой и без. Алгоритмы на графах. Строковые алгоритмы. Динамическое программирование. Если ты никогда с этим не сталкивался, то можешь пройти курс Седжвика на курсере, а потом курс основанный на Кормане. Порешай задачки на leetcode, hackerrank, timus, project euler, etc.

всё это дерьмо не нужно на практике ( если ты не практикующий олимпиадник )

по сабжу. джуну C++ необходимо на три с плюсом знать язык ( т.е. как минимум осилить Страуструпа ) и знать азы апи операционки ( т.е. основы работы с памятью, файлами, тредами, процессами ) под которую он решил писать код, т.е. для онтопика это позикс.

peacelove
()
Ответ на: никому не нужное дерьмо от peacelove

всё это дерьмо не нужно на практике ( если ты не практикующий олимпиадник )

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

по сабжу. джуну C++ необходимо на три с плюсом знать язык ( т.е. как минимум осилить Страуструпа ) и знать азы апи операционки ( т.е. основы работы с памятью, файлами, тредами, процессами ) под которую он решил писать код, т.е. для онтопика это позикс.

Ахаха, ну да, ну да. А потом у таких спрашивают на собеседовании про виртуальные конструкторы и они начинают нести чушь. Треды и процессы это отдельная огромная часть CS. Lock free, сами блокировки, модель памяти итд итп.

xpahos ★★★★★
()

kirk_johnson недавно говорил, что ищет спеца по плюсам. Может он тебя просветит про текущее положение дел на рынке.

shrub ★★★★★
()
Ответ на: комментарий от xpahos

фантазируй дальше

Без знания алгоритмов ты никогда не попадешь в команду разработки очередной крутой распределенной системы

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

Ахаха, ну да, ну да. А потом у таких спрашивают на собеседовании про виртуальные конструкторы и они начинают нести чушь.

вопрос о джунах или куда? этарас. А этадва, сам вопрос про «виртуальный конструктор» выдаёт миддла который только-только понабрался fancy слов и решил за умного сойти. Спроси про фабрику, Василий.

Треды и процессы это отдельная огромная часть CS. Lock free, сами блокировки, модель памяти итд итп.

поэтому я и написал про основы, потому что смысл спрашивать «всё» ? Я например ещё не встречал человека, который одновременно знает что такое сети петри и aba-проблема, так что теперь, увольнять (не нанимать) всех?

peacelove
()

Надо уметь в стандартную библиотеку, boost очень неплохо знать, ну и база (алгоритмы, математика). Адекватно просить 1k $ минимум.

peregrine ★★★★★
()
Ответ на: комментарий от umren

Для завода трактора лучше магистра иметь, как минимум, а если трактор заводить далеко (за океан), то лучше иметь ученую степень или много бабосиков.

peregrine ★★★★★
()
Ответ на: фантазируй дальше от peacelove

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

Это суровая реальность. Сколько бы эти компании не стоили бы, они никогда не будут заниматься разработкой критически важных компонентов. Аутсорс это про другое. Соотвественно задачи там значительно проще. Мой опыт общения с крупнейшими компаниями говорит о том, что без алгоритмов никак.

вопрос о джунах или куда? этарас. А этадва, сам вопрос про «виртуальный конструктор» выдаёт миддла который только-только понабрался fancy слов и решил за умного сойти. Спроси про фабрику, Василий.

Даже джуниор должен знать что в C++ нет виртуальных конструкторов. Есть костыли, но все равно это не оно. И это не рокетсайнс, это нужно знать. А «за умного сойти» можно противопоставить любому вопросу, ответа на который человек не знает. Не знаешь алгоритмы - интервьювер просто решил тебя завалить. Так конечно же проще.

поэтому я и написал про основы, потому что смысл спрашивать «всё» ? Я например ещё не встречал человека, который одновременно знает что такое сети петри и aba-проблема, так что теперь, увольнять (не нанимать) всех?

Смысл как раз в том чтобы знать как можно больше. От этого зависит твой грейд(левел) в компании и задачи/зарплата. И мы опять возвращаемся к алгоритмам :)

xpahos ★★★★★
()
Ответ на: комментарий от xpahos

опять фантазии :(

Аутсорс это про другое

с чего ты взял что я говорил про аутсорс? насколько я знаю на NYSE вообще аутсорсовых компаний нет, хотя могу ошибаться

Даже джуниор должен знать что в C++ нет виртуальных конструкторов.

а, я думал что ты хотя бы до миддла дорос, и вопрос был про https://en.wikibooks.org/wiki/More_C++_Idioms/Virtual_Constructor ну раз нет, тогда другой вопрос, зачем джуну задавать заведомо некорректные вопросы? для лулзов? искать надо что знает, а что не знает, это первое правило на собеседовании, причём не только джунов

Смысл как раз в том чтобы знать как можно больше

смысл в том что всё знать невозможно, и необходимо выбирать, и пока ты учишь «insertion sort, mergesort, quicksort. Различные деревья с балансировкой и без. Алгоритмы на графах. Строковые алгоритмы.» чтобы, о боже, попасть в гуглы/фейсбуки/прочий скам, другие учат вещи, необходимые на практике, и создают те самые продукты, которые гуглы/фейсбуки и прочие потом скупают и выдают за свои.

peacelove
()
Ответ на: комментарий от peregrine

Для завода трактора лучше магистра иметь, как минимум, а если трактор заводить далеко (за океан), то лучше иметь ученую степень или много бабосиков.

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

umren ★★★★★
()
Ответ на: комментарий от peregrine

и да, для H1B тебе бенефитов выше бакалавра никаких не будет, так что смысла 0.

umren ★★★★★
()
Ответ на: опять фантазии :( от peacelove

с чего ты взял что я говорил про аутсорс? насколько я знаю на NYSE вообще аутсорсовых компаний нет, хотя могу ошибаться

Ок, покажи мне хотя бы одну компанию, которая имеет рейтинг на глассдоре хотя бы выше 3,5 и при этом не спрашивает алгоритмы на собеседовании.

а, я думал что ты хотя бы до миддла дорос, и вопрос был про https://en.wikibooks.org/wiki/More_C _Idioms/Virtual_Constructor ну раз нет, тогда другой вопрос, зачем джуну задавать заведомо некорректные вопросы? для лулзов? искать надо что знает, а что не знает, это первое правило на собеседовании, причём не только джунов

Попросить подготовить список того что он знает и потом спрашивать? :)

смысл в том что всё знать невозможно, и необходимо выбирать, и пока ты учишь «insertion sort, mergesort, quicksort. Различные деревья с балансировкой и без. Алгоритмы на графах. Строковые алгоритмы.» чтобы, о боже, попасть в гуглы/фейсбуки/прочий скам, другие учат вещи, необходимые на практике, и создают те самые продукты, которые гуглы/фейсбуки и прочие потом скупают и выдают за свои.

Маскарад, проданный FB полностью алгоритмы. Из еще не купленных стартапов общался с Мезосферой и ты не проверишь - тоже алгоритмы. Ладно, ты можешь сколь угодно доказывать что они не нужны, меня это не переубедит. И людей из крупных компаний тоже. И из мелких стартапов единорогов, которые уже были куплены/собиратся продаваться. Задачки на алгоритмы решаю параллельно изучению других тем. Меня это никак не отрывает от «необходимых на практике» задач и вещей, которые интересны.

xpahos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.