Сохранен 78
https://2ch.hk/pr/res/396468.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C++ работы тред

 Аноним 17/10/14 Птн 21:36:41 #1 №396468 
14135674011280.jpg
Привет.
Хочу спросить мнение местных ребят насчёт работы С++ джуниором.
Я вот раньше неплохо знал С#(есть сертификат от MS), писал немного на джаве, но сейчас решил хорошо выучить С++ и устроиться на работу.
Поэтому хочу спросить, куда вообще в ДС можно устроиться на работу С++ джуниором/стажером? А то на hh вакансий почти нет. Может быть есть какие-то большие компании, которые проводят стажировки или что-то еще?(Типа net-cracker'a, epama, только для С++)
И что вообще должен знать джуниор? Ну прочел я сначала Кернигана&Ричи, потом шилда по С++, немного в книжке Страуструпа смотрел. Что я должен вообще знать? И что мне дальше делать?
Аноним 17/10/14 Птн 21:46:17 #2 №396471 
>>396468
Почему шарп не хочешь?
Аноним 17/10/14 Птн 21:52:14 #3 №396473 
>>396471
Потому что не хочу заниматься тупыми задачами.
Я как-то сходил на собеседование. Меня там минут 30 спрашивали о какой-то ерунде, не спросив ни слова про C#. Я вышел оттуда и пока шёл до метро, понял какие там уебки работают и решил найти работу на плюсах.
Аноним 17/10/14 Птн 21:52:43 #4 №396474 
Яндекс можешь попробовать, или прошерсти геймдев конторки.
>А то на hh вакансий почти нет.
Я по тегу с++ вижу 577 вакансий. Уверен, что хотя бы 100 из них могут рассмотреть кандидата-джуна.
Аноним 17/10/14 Птн 21:54:25 #5 №396476 
>>396473
Дело скорее всего в конкретной конторе. На шарпе пишут ту же пиркладную и системную шнягу что и на крестах.
Аноним 17/10/14 Птн 22:02:04 #6 №396478 
>Поэтому хочу спросить, куда вообще в ДС можно устроиться на работу С++ джуниором/стажером? А то на hh вакансий почти нет.
Как-то ты вяло ищешь. Буквально неделю назад висела вакансия о наборе крестоджунов в контору, занимающуюся безопасностью.
Что спрашивали в сопроводительном письме:
ООП, VirtualTables, тонкости полиморфизма, шаблоны (которые template, а не проектирования) все вопросы не помню.
>И что вообще должен знать джуниор?
Из вопросов на собеседовании на должность дзява-макаки (что помню):
- реализация строк в дзява;
- тонкости ООП;
- сикель-запросы;
- устройство словарей;
- алгоритмы и структуры данных.
На должности питониста:
- типы данных в питоне и как вообще устроена динамическая типизация;
- мутабельность-иммутабельность;
- устройство словарей;
- декораторы.
Это я то, что вспомнил, написал.
>Что я должен вообще знать?
Всего понемногу.
>И что мне дальше делать?
Учиться, обмазываться быдлокодом, писать на крестах, искать стажировку хоть за корку сыра.
Аноним 17/10/14 Птн 22:03:47 #7 №396479 
>>396474
В Яндекс пробовал с месяц назад. Мне прислали какой-то файл с заданиями и сказали закодить. Я сделал одно задание где-то часов за 8 и забил на остальные, так как был занят. Не знаю сколько у них там кулдаун, но может напишу как-нибудь позже.
А насчёт геймдев контор я даже не знаю. Мне просто разослать письма, вроде "вот моё резюме, у вас случайно нет подходящей вакансии?" ?
Скажи навскидку хоть одну нормальную геймдев контору?
Аноним 17/10/14 Птн 22:53:43 #8 №396494 
роботы нет на крестах дурачек
беги
Аноним 17/10/14 Птн 22:57:59 #9 №396499 
>>396494
>Пишет слово 'работа' как 'робота'
>Удивляется почему нет работы
Аноним 18/10/14 Суб 00:56:04 #10 №396539 
>>396479
Дети Нивала норм вроде должны быть для джуна. Мобильных всяких должно быть несколько, я их не знаю.
Да, можешь прямо так и слать, особенно в большие конторы - они могут постоянно нанимать людей. Зайди на сайт, посмотри раздел вакансий, может найдешь что-то более-менее подходящее, тогда указывай в письме, что туда подаешься. Составь хорошее резюме, без ошибок, серьезное. Письмо тоже пиши в деловом стиле: кто ты такой, почему пишешь (твой интерес), почему им это может быть интересно. Коротко и вежливо, детали - в резюме.

В Яндексе кулдаун год вроде, говорил кто-то на форумах.
Аноним 18/10/14 Суб 23:49:06 #11 №396743 
>>396499
>>396499
Поссал в рот малолетнему грамарнаци
Аноним 19/10/14 Вск 17:42:36 #12 №396881 
>>396743
На лиспе есть?
Аноним 19/10/14 Вск 18:54:24 #13 №396901 
>>396881
нету роботы на крестах
тебе сказали дяди
послушайся потом пожалеешь
лучше освой сишечку алгоритмы типо база будет
а потом суйся туда где хайп сейчас
Аноним 06/11/14 Чтв 11:33:19 #14 №402680 
14152627990520.jpg
>>396478
>За корку сыра
Аноним 06/11/14 Чтв 12:52:49 #15 №402697 
>>396468
>А то на hh вакансий почти нет.
Этого не может быть. Там дохуя работы для джунов. Другое дело, что ты на джуна не совсем тянешь. Я на плюсах даже в своих ебенях нашел работу без опыта в свое время. Если бы не нашел, перебрался бы в ДС.

Керниган-Ритчи - это си. Годнота, но в освоении плюсов это тебе поможет только косвенно.
Шилдт по крестам - это щит. Он дает С++ не с того конца. Страуструпп - для профи. Кури праймер Липпмана 5ю(!) редакцию.
http://dl.e-book-free.com/2013/07/c_primer_5th_edition.pdf
Не знаешь английского - учи английский.

Тебе нужен не просто С++, а С++11. Его уже сейчас требуют в половине вакансий, а пока ты его освоишь на нужном уровне, он будет уже нормой.
Как освоишь 11ю редакцию, принимайся за boost. Плюсы без буста - четверть плюсов.
Еще как и любому другому кодеру, тебе нужно будет знать SQL, системы контроля версий и алгоритмы и структуры данных (Кормен, например). Плюс какой-нибудь скриптовый язык: например, шелл или пайтон.
Аноним 07/11/14 Птн 20:33:10 #16 №403226 
>>402697
>Этого не может быть. Там дохуя работы для джунов. Другое дело, что ты на джуна не совсем тянешь.
define джун
как блять можно на джуна не тянуть? все ебанулись...

>Я на плюсах даже в своих ебенях нашел работу без опыта в свое время.
ZASHQUAR

>Тебе нужен не просто С++, а С++11. Его уже сейчас требуют в половине вакансий, а пока ты его освоишь на нужном уровне, он будет уже нормой.
потому что не знают, что ещё требовать. кроме хипстоты в C++11 нету нихуя, а вся хипстота и так в бусте была. inb4 в C++14 добавят haskell

>Как освоишь 11ю редакцию, принимайся за boost. Плюсы без буста - четверть плюсов.
кстати, легко можно обходиться и без него

>Еще как и любому другому кодеру, тебе нужно будет знать SQL, системы контроля версий и алгоритмы и структуры данных (Кормен, например). Плюс какой-нибудь скриптовый язык: например, шелл или пайтон.
больше похоже на требования для мидла
Аноним 08/11/14 Суб 18:23:11 #17 №403428 
>>403226
>как блять можно на джуна не тянуть?
Не нужно долго искать на hh.ru, чтобы понять, что джун != нет опыта и знаний. Подавляющее большинство джуниор-вакансий подразумевают хорошее(!) знание плюсов, чего у ОПа нет, либо знание алгоритмов и структур данных, либо опыт до года.
Да, конечно, понятие джуниора растяжимое. При этом многие компании его трактуют так, что ОПа назвать джуном не получается.
>ZASHQUAR
Ты это чего?
>кроме хипстоты в C++11 нету нихуя
Конечно нету
>а вся хипстота и так в бусте была
Ну это ты вообще загнул. В бусте чуть больше, чем все проф. разработчики. А хипстоте в принципе плюсы не интересны. Они не модные и сложные.
Буст для хипстоты, ага.
>кстати, легко можно обходиться и без него
И ебашить говнокод, изобретать велосипеды, писать неподдерживаемые программы. Мы же говорим не о лабораторных работах, а о серьезных, коммерциализируемых приложениях и сервисах.
Буквально недавно я рассматривал две вакансии. Одна - разработка демонов, вторая сервисов под виндой, и в обеих требовался буст, при чем на высоком уровне. Если уж такие низкоуровневые вещи пишут с бустом, то ситуация с прикладной бизнес-разработкой, думаю, ясна без дополнительных объяснений.
>больше похоже на требования для мидла
Я и не говорил, что это для джуна. Просто разметил горизонты ОПу, чтобы не занимался хуетой.

Короче, ты диванный. Поэтому просто съеби.
Аноним 08/11/14 Суб 20:30:11 #18 №403508 
>>403226
>кроме хипстоты в C++11 нету нихуя

Ну пиздец же.

auto
{} для перечисления элементов при инициализации строк и векторов
std::istream снятие eofbit флага при unget , а не простановка фэйла

Ну и так далее. Много вещей сделали хоть и по мелочи, но они напрашивались уже очень давно.
Аноним 08/11/14 Суб 21:50:51 #19 №403553 
>>403508
А также:
лямбды!
<thread>
foreach как core фича
rvalue референсы
= delete;
final, override
const_expr

Кто скажет, что НИНУЖНО может смело идти пидорасить легаси проекты
Аноним 08/11/14 Суб 23:07:34 #20 №403581 
>>403553
Но за что я прям готов расцеловать комитет, так это за нормальные функции перевода между строками и числами. Это какой позор был для стандартной библиотеки годами.
Аноним 09/11/14 Вск 00:25:53 #21 №403614 
>>403581
Чем atoi плох?
Или ты про обратный перевод? Стрингстрим - да, довольно неповоротливая штука для этого. Но имхо проблемы это не решает.
Вот чего не хватает плюсам, так это создания форматных строк. Принтф уже отжил свое. Надеюсь, вскоре добавят boost::format в стандарт.
Аноним 09/11/14 Вск 00:32:33 #22 №403616 
>>403553
А как же делегированные конструкторы и отлов исключений в списке инициализации конструкторов?
А как же decltype?
Как же обертка над указателями на функции std::function?
11й стандарт сильно продвинул С++.
Аноним 09/11/14 Вск 01:52:06 #23 №403652 
Есть ли вообще смысл в этих ваших крестах? Практичнее работать сфере пиздонов/джав/ruby/сисярпов, имхо
Аноним 09/11/14 Вск 02:03:29 #24 №403657 
Что можно утащить из буста для игрового движка к примеру, если потоки и таймеры уже есть? lexical_cast прикольный, но не из-за одного его же?
Аноним 09/11/14 Вск 02:23:02 #25 №403661 
А вот насчёт С++11 не понял, что там учить надо. Там же всё тривиально, достаточно статью на английской википедии поскроллить.
Аноним 09/11/14 Вск 02:31:11 #26 №403665 
>>403661
Братиш, зачем ты этот мертвый яп учишь?
Аноним 09/11/14 Вск 02:35:51 #27 №403666 
14154897515830.jpg
>>403665
Аноним 09/11/14 Вск 02:45:33 #28 №403671 
>>403666
Я тоже :C
Почему мы такие?
Аноним 09/11/14 Вск 09:08:04 #29 №403720 
>>403428
>>как блять можно на джуна не тянуть?
>hh.ru
>Подавляющее большинство джуниор-вакансий подразумевают хорошее(!) знание плюсов, чего у ОПа нет, либо знание алгоритмов и структур данных, либо опыт до года.
я чота на hh.ru ни разу ничего нормального не находил
с хорошими знаниями вообще не вижу смысла идти на джуна, т.е. на небольшую зарплату

>>>работа в ебенях
>>ZASHQUAR
>Ты это чего?
обычно смысл там работать только чуть-чуть опыта понахвататься, дальше лучше уезжать или искать дистанционную работу, уровень всего там обычно низкий, а если и высокий, то уровень зарплат всё равно низкий

>>а вся хипстота и так в бусте была
>хипстоте в принципе плюсы не интересны.
имел в виду хипстерские штучки. ололо а вот тута вставляем лямбдочку внутри foreach с std::function, ... пара умных указателей.. блять ну и замороченая хуета получилась же

>>кстати, легко можно обходиться и без него
>И ебашить говнокод
посмотри на плюсовые проекты, хотя бы на opensource, сколько из них зависят от буста, это будут не все, а только примерно половина
использование буста не гарантирует тебе от говнокода (libtorrent как пример)

>Буквально недавно я рассматривал две вакансии. Одна - разработка демонов, вторая сервисов под виндой, и в обеих требовался буст, при чем на высоком уровне. Если уж такие низкоуровневые вещи пишут с бустом, то ситуация с прикладной бизнес-разработкой, думаю, ясна без дополнительных объяснений.
на hh наверное рассматривал? лол
я только имел в виду, что не надо усложнять там, где можно не усложнять, можно хорошо писать и с бустом, и без него, просто надо понимать, когда он нужен, а когда нет

>Короче, ты диванный.
ну почти, 6 лет в индустрии
Аноним 09/11/14 Вск 09:10:29 #30 №403721 
>>403508
>auto
ловите пидараса!
съеби в свой ruby тренд
Аноним 09/11/14 Вск 09:21:34 #31 №403726 
>>403721
Иди еще один тайпдеф напиши.
Аноним 09/11/14 Вск 12:46:53 #32 №403803 
>>403614
>Принтф уже отжил свое.
Всегда хотелось спросить, эту функцию правомерно использовать в "чистом" C++? Я всегда думал, она принадлежит стандартной библиотеке C.
Аноним 09/11/14 Вск 13:13:57 #33 №403822 
>>403657
>но не из-за одного его же?
Во-первых, почему бы и нет.
Во-вторых, можно утащить либы для логгинга, ТДД, риджекс, некоторые алгоритмы и предикаты, которых нет в std, json может пригодиться, сериализация. Не думаю, что имеет смысл продолжать этот список.
Справедливости ради стоит добавить, что потоки и таймеры были взяты из буста.
Аноним 09/11/14 Вск 13:25:47 #34 №403827 
>>403720
>имел в виду хипстерские штучки. ололо а вот тута вставляем лямбдочку внутри foreach с std::function, ... пара умных указателей.. блять ну и замороченая хуета получилась же
>лямбда, std::function, умные указатели
>хипстерские штучки
>6 лет в индустрии
Ты наверное каждый раз, когда нужно сделать некоторую обработку вектора, ебашишь цикл с обходом и проверкой условий, когда это делается в одну, максимум две строчки с лямбдой и подходящим алгоритмом из STL. И получается гораздо более читаемо.
Еще скажи, что move семантика это для хипстоты.
Видел я такой код и не раз от "опытных" девелоперов. Работают уже по 10 лет, и пишут говнокод на уровне процедура из 100+ строк, которую абслютно невозможно поддерживать: любое добавление нового функционала приводит к новым костылям.
>я только имел в виду, что не надо усложнять там, где можно не усложнять
я только имел в виду, что не надо писать заново то, что можно заново не писать.
Аноним 09/11/14 Вск 13:28:43 #35 №403829 
>>403803
Лучше не стоит. Если очень хочется и по каким-то причинам не можется подключить boost::format, то не мешай ее с cin/cout. Либо iostream, либо cstdio.
Аноним 09/11/14 Вск 13:59:19 #36 №403845 
>>403822
Я звял filesystem, format и lexical_cast, теперь любой файл компилируется 10 секунд. Придётся это терпеть.
Аноним 09/11/14 Вск 14:28:01 #37 №403879 
>>403845
Как тебе это удается? Я работаю в проекте с кодом на 10+Гб, и файл средних размеров компилится секунды 3-4. А у нас далеко не только boost.
Попробуй делать файлы с кодом поменьше, реже вноси изменения в заголовочные файлы, упрости параметры компиляции, прогрейди комп в конце концов.
Так или иначе, производительность программ требует жертв. Как минимум на этапе компиляции.
Аноним 09/11/14 Вск 15:26:22 #38 №403897 
>>403879
Ну у меня пентиум 4, так-то без буста за 5 секунд компилось.
Аноним 09/11/14 Вск 15:32:24 #39 №403899 
>>403897
>пентиум 4
Ну а чего ты еще хотел. Не думаю, что если бы ты все это сам написал, компилилось бы быстрее, не говоря уже о потраченном времени.
Другими словами, на написание своего filesystem и format ты потратишь больше времени, чем на сумму дельт по времени компиляции.
Аноним 09/11/14 Вск 16:59:26 #40 №403944 
>>403827
> кококо все есть в стл, программисты не нужны
ясно
понятно
Аноним 09/11/14 Вск 17:30:51 #41 №403969 
>>403944
>Я обожаю велосипеды
Да пожалуйста. Ты только близко к проектам в продакшене не подходи, ок?
Аноним 10/11/14 Пнд 10:29:57 #42 №404241 
>>403969
мамке своей подойди поуказывай, ok?
в каком месте я предлагал велосипеды? понятно же, что если можно пользоваться алгоритмами из stl - то и нужно
Аноним 10/11/14 Пнд 13:31:58 #43 №404287 
>>404241
К чему тогда ты это >>403944 ляпнул?
Аноним 10/11/14 Пнд 14:43:33 #44 №404306 
>>404287
ну смотри, есть вот функции
http://en.cppreference.com/w/cpp/algorithm
хотим мы найти максимальный и минимальный элемент в векторе - тут уже надо c++11 и minmax_element, отдельно min_element и max_element как было раньше - это снижение скорости в два раза

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

если нам надо эффективно найти min_element, max_element и проверить все наши предикаты - то лучше всего будет работать простой цикл с проверкой всех этих условий, попутно найдём min и max

это понятно, что если нам эту поебень надо будет несколько раз проверять и возможно для разных типов данных то можно сделать шаблончик, но тут речь уже о другом
Аноним 10/11/14 Пнд 15:31:17 #45 №404325 
>>403721
Чего, я даже не знаю, чем руби отличается от перла. auto нужно, чтоб не городить быдлокод
Аноним 10/11/14 Пнд 17:17:58 #46 №404360 
>>404306
И нахуя ты это все написал? Где тут про то, что я типа говорю
>все есть в стл, программисты не нужны

И даже, если не обращать внимания на то, что ты отвечаешь на какой-то другой вопрос, что за хуету ты тут написал?
>хотим мы найти максимальный и минимальный элемент в векторе - тут уже надо c++11 и minmax_element, отдельно min_element и max_element как было раньше - это снижение скорости в два раза
Зачем это?
И с хуяли ты так уверен, что в два раза? Да, массив обходим один раз, но условий то проверять в два раза больше.

>а теперь, если нам надо для всех элементов этого списка дополнительно проверить серию предикатов, то в общем случае ничего эффективнее обычного цикла не может быть, зачем тут for_each с лямбдой? что он упрощает?
А это что? Ты думаешь, что если ввели какую-то фичу, то ее куда не воткни, везде будет эффективно? Это плюсы, тут нужны мозги.
Или может быть, фор_ич - единственное место применения лямбды?
>если нам надо для всех элементов этого списка дополнительно проверить серию предикатов
Вот тут ты мне взорвал мозг. Расскажи плз, уж не с минмаксом ли ты решил фор_ич применить? Ты реально собрался обходить все смежные элементы вектора(!), извлекать на каждом шаге(!) минимальный и максимальный элементы из тьюпла и пересохранять их в каких-то еще других переменных, в случае, если они соответственно меньше или больше? Так?

>если нам надо эффективно найти min_element, max_element и проверить все наши предикаты - то лучше всего будет работать простой цикл с проверкой всех этих условий, попутно найдём min и max
Давай рассмотрим случай не твоей курсовой работы по упорядочиванию массива целых, а обход объектов некоторого нетривиального класса. Если мы не хотим засорять пространство имен лишними предикатами, будет удобно и более читаемо выделить условия в лямбды. И внутри твоего цикла запускать уже их. Так мы будем уверены, что проверка отделена от самих условий, и что если ты что-то поменяешь в условиях, тебе не нужно лезть в цикл, и наоборот.
Но не в этом сила лямбды. Лямбда очень полезна для кастомизации алгоритмов STL. Лямбда позволяет быстро, безболезненно и прямо на месте применять эти алгоритмы для объектов пользовательских классов, если для них соответствующие проверки не определены. Лямбда позволяет использовать эти алгоритмы с участием "левых" переменных, используя захват переменных.
Аноним 10/11/14 Пнд 17:37:13 #47 №404374 DELETED
Крестухи, вы быдло!
Аноним 10/11/14 Пнд 17:59:50 #48 №404401 
>>404360
>так уверен, что в два раза
не в 2, в среднем в 1.5, если быть точным

где я про смежные элементы писал, ты наркоман? я всего лишь имел в виду что-то вроде посчитать минимум, максимум, отрицательные значения - вывести красным, от 40000 до 100000 - зелёным и так далее, всё за один проход, ибо элементов овердохуя (либо элементов немного но пересчитывать всю эту парашу необходимо тысячи раз в секунду)

насчёт засорения пространства имён - есть много способов от него уйти: private функции-члены, static функции и т.д.

насчет лямбд - в общем понятно, что ты имеешь в виду - это от стиля кода больше зависит будет ли лучше читаться, как ты пишешь, или с отдельными функциями
Аноним 10/11/14 Пнд 19:24:35 #49 №404465 
>>404401
Если ты хочешь делать несколько проверок элементов массива за один проход (то есть разбитие на несколько обходов для тебя действительно(!) критично), то правильно будет максимально отделить друг от друга эти проверки внутри твоего цикла, так чтобы, если ты убрал или поменял одну из них, цикл гарантированно продолжал работать.
И что бы ты не говорил про стили кода, три ровненьких вызова соответствующих проверок с говорящими названиями будут читабельнее трех блоков кода, которые в этом случае придется дополнять комментариями. Все это становится особенно уместным, когда мы работаем с пользовательскими типами (а ведь это основной случай).
>private функции-члены, static функции и т.д.
Чтобы были private функции, нужно городить класс. Заводить класс только для того, чтобы функцию не было видно? Когда есть лямбда?
Статик функции будут засорять как минимум пространство имен того модуля, где они объявлены. А зачем, если соответствующая функция содержит 1-2 строчки и нужна только в одном(!) месте - в некоторой другой функции.
При использовании безымянных пространств имен аналогичная проблема.

Пойми, STL не просто так делали. Ее алгоритмы хорошо отлажены, гарантировано работают, и что еще очень важно - работают эффективно. Ведь ты в своих самодельных велосипедах наверняка забудешь в нужном месте использовать move-семантику и прочее. И весь твой выигрыш в эффективности от одного прохода пойдет по пизде.
И, возвращаясь к читабельности, алгоритмы STL в отличие от велосипедов, знают все уважающие себя разрабы, что ускоряет понимание твоего кода другими людьми. А алгоритмы STL не мыслимы без лямбды.
Аноним 10/11/14 Пнд 23:05:19 #50 №404551 
>>396473
>спрашивали о какой-то ерунде, не спросив ни слова про C#
Например?
Аноним 11/11/14 Втр 11:12:18 #51 №404647 
>>396468
>куда вообще в ДС можно устроиться на работу С++ джуниором/стажером?
Крупные компании типа яндекса касперского.
Геймдев.
В первых надо писать квиксорт на бумажке, решать задачки с топкодера и стандартные вопросы по плюсам типа "виртуальный деструктор".
Во вторых могут и ничего не спросить кроме поболтать и прислать образец кода, могут тоже самое что в первых.

И да, если на шарпике 70к это человек который может положить в базу данных и не уронить ее, то на плюсах он должен действительно чтото знать.
Аноним 11/11/14 Втр 15:12:34 #52 №404708 
>>404647
Няша, ты можешь назвать несколько таких стандартных вопросов по крест ам?
ещё один воннаби джуниор
Аноним 11/11/14 Втр 17:02:40 #53 №404749 
>>404465
>Ведь ты в своих самодельных велосипедах наверняка забудешь в нужном месте использовать move-семантику и прочее. И весь твой выигрыш в эффективности от одного прохода пойдет по пизде.
в случае когда нужно скорости никто не мешает хранить в контейнере указатели вместо объектов, работать будет быстрее чем move-хуянтика
Аноним 11/11/14 Втр 17:06:30 #54 №404753 
>>404647
>если на шарпике 70к это человек который может положить в базу данных и не уронить ее, то на плюсах он должен действительно чтото знать.
но на c++ это будет уже и не 70к, а больше
Аноним 11/11/14 Втр 17:13:35 #55 №404759 
14157152153140.png
Завалил собеседование на кресты, задавайте свои ответы.
Аноним 11/11/14 Втр 17:19:14 #56 №404760 
>>404708
1) В чем разница между free, delete и delete[]
2) Функция void test() { test(); } - что будет если её позвать и почему
3) В чем разница между list, vector и setи в каком случе стоит юзать каждый из этих контейнеров.
4) В чем разница между unordered_map и map
5) Задача: есть папка, в которой лежит куча документов, внутри документов есть девятизначные телефонные номера. Нужно собрать все уникальные номера. Как будете решать такую задачу?
6) Обясните на пальцах основные этапы компиляции кода
7) Cache miss - для вас это о чем-нибудь говорит?

Мимо нанимаю джуниворов
Аноним 11/11/14 Втр 17:19:58 #57 №404761 
>>404759
Что спрашивали?
Какие были задания и тд?
Аноним 11/11/14 Втр 17:41:45 #58 №404772 
>>404761
Ну я собеседовался на сетевого разработчика, а в сетях я не особо шарю. Ну по самому языку особо вопросов сложных небыло, ну там про виртуалный деструктор спросили, умные указатели, зачем нужны weak-поинтеры, про многопоточность, вот был вопрос который меня в тупик поставил:
из-за чего вы можете заподозрить участок кода в дедлоке, какие у вас критерии? Ну я тут особо ничего не ответил.

Вот когда про сети спрашивали - вот тут мой пукан извергал огонь как ракетоноситель: Как устроен HTTP, SSL, как устанавливается сессия TCP. Далее более прикладные вопросы: Как работает какой-нибудь кодек сжатия видео, какие характеристики аудиопотока. Ну короче я всем этим никогда не занимался и не интересовался особо, поэтому завалился на них.

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

Пойду теперь жавамакакой собеседоваться, лол.
Аноним 11/11/14 Втр 18:21:33 #59 №404782 
>>404760
>1) В чем разница между free, delete и delete[]
фри это из C и освобождает после маллока, делете/делете[] из C++ и освобождает после new, [] это для массивов.
>2) Функция void test() { test(); } - что будет если её позвать и почему
Стак оверфлоу ексепшен
>3) В чем разница между list, vector и set
Лист это связный список, вектор - обёрнутый массив, сет - содержит только уникальные элементы. Использовать лучше вектор, если нужна уникальность - сет.
>4) В чем разница между unordered_map и map
Понятия не имею
>5) Задача: есть папка, в которой лежит куча документов, внутри документов есть девятизначные телефонные номера. Нужно собрать все уникальные номера. Как будете решать такую задачу?
Парсить регексом
>6) Обясните на пальцах основные этапы компиляции кода
Обработка препроцессором, трансляция в объектные файлы и слепление в ексешник.
>7) Cache miss - для вас это о чем-нибудь говорит?
Ни о чём не говорит

мимо-джяваблядок-самоучка-17лвл
 Аноним 11/11/14 Втр 18:42:14 #60 №404790 
14157205346760.jpg
>>404782
>Парсить регексом
Ну и истории. Парсить и всё что ли?
Аноним 11/11/14 Втр 18:50:12 #61 №404791 
>>404790
>Весь пост состоит из пздеца вместо ответов
>Доебался только до регекспов
Странный ты.
Аноним 11/11/14 Втр 18:50:57 #62 №404792 
>>404782
New/delete вызывает конструктор/деструктор
Malloc/free соотвественно нет

 Аноним 11/11/14 Втр 18:58:18 #63 №404796 
>>404791
На мой взгляд, программера в человеке выдает инстинкт глядеть в обе стороны, при переходе через дорогу с односторонним движением. Этакая предусмотрительность.

Вопрос нашего друга-hr'а был не только про парсинг. Задача комплексная. Парсинг регекспами, по-моему, не тот аспект, которым стоило ограничиваться. Особенно учитывая, что номера могут быть в совершенно поехавших и отличающихся друг от друга форматах.

Кодю больше 10 лет, из них 5 — за деньги
Аноним 11/11/14 Втр 19:13:18 #64 №404801 
>>404760
1) free не бросит исключениt. также делит вызывает деструктор объекта. делит[] - для массивов объектов
2) stack overflow, т.к. глубина рекурсии бесконечна - адреса возврата забьют весь стек
3) в листе нет рандом аксесс - только перебирать с начала или с конца, в векторе есть, по индексу, в сете по самому значению. лист там, где надо много переставлять элементы, т.к. ссылки переставлять быстрее, чем содержание; вектор в 90% случаев, где обычно массив, а сет в 5 задаче
4) без гугла хз ладно-ладно, я понял, пойду контейнеры учить
5) другие цифровые последовательности в них могут быть? номера могут содержать +-()? хотя вопрос наверное о другом, каждую найденную последовательность будем пихать в std::set<std::string>
6) препроцессор подставляет вместо #include содержимое того, что заинклюжено, подставляет макросы-дефайны. потом компилятор обнаруживает ошибки типа незакрытых скобок и пилит из текста объектный код, по одному объектному файлу на один файл исходного кода. потом линкер объединяет эти объектные файлы, по пути прикручивая объектный код из других библиотек, если он используется в программе.
7) не говорит
Аноним 11/11/14 Втр 19:31:03 #65 №404807 
>>404796
Вангую - тебе 25.
Аноним 11/11/14 Втр 19:43:02 #66 №404813 
>>404796
>могут быть в совершенно поехавших и отличающихся друг от друга форматах.

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

Ни на один из вопросов, заданных тут >>404760 по-хорошему кратко, одной строкой, ответить нельзя.
 Аноним 11/11/14 Втр 20:09:04 #67 №404822 
>>404807
В точку.

>>404813
>в условиях задачи неплохо бы оговаривать сразу же
Как-то раз препод нам рассказал байку про то, как на заводе спирт воровали из цистерны. С этим люто боролись, опечатывали вентили, но кражи всё равно продолжались. Стабильно по 10л каждый раз. Вопрос: как рабочим это удавалось?

Препод сказал, что математики\программеры не могут решить эту задачу, потому что начинают задавать вопросы, уточнять что-либо. Инженеры, в свою очередь, справляются, потому что сразу ищут решение, а не упарываются дополнительными условиями.

На собеседовании, мне кажется, важен именно подход. Ты можешь заебать вопросами про кодировку документов, а можешь быстренько накидать алгоритм, коснуться структур данных, пояснить за тонкие места.
Аноним 11/11/14 Втр 20:19:31 #68 №404829 
>>404822

Инженеры ищут решения конкретных задач, зная условия. Точно также, как работяги (или кто там был) знали чего они хотят (спиздить спирт), сколько (10л) и какие препятствия у них на пути (опечатанные вентили и прочее).

Пытаться решать задачу, сходу покрывая все возможные варианты, мне кажется путь не слишком разумный, тем более все все равно не покроешь, потому что можешь о каких-то моментах не знать. Гораздо проще задать 2 вопроса:
1) Задан ли формат входных данных.
2) Если нет, могу ли я сам его задать
Аноним 11/11/14 Втр 20:58:24 #69 №404852 
>>404829
Популярная байка у преподов, Решение Синяки на дно цистерны перед заливкой опускали пустые вёдра. простое, но в группе только один байтоёб догадался и та не сразу, репу чесал, чертил в тетрадке чёто, мы ещё все с него проигрывали.
Аноним 11/11/14 Втр 23:24:03 #70 №404920 
>>404772
Хули ты тогда сети не задрочил перед собеседованием. Такую возможность проебать. Теперь будешь создавать фабрики фабрик.
Аноним 11/11/14 Втр 23:24:49 #71 №404921 
>>404772
Хули ты тогда сети не задрочил перед собеседованием. Такую возможность проебать. Теперь будешь создавать фабрики фабрик.
Аноним 12/11/14 Срд 08:46:21 #72 №404970 
14157711818700.jpg
>>404852
>Это решение
Как они, блядь, ведра опускали, если вентили опечатаны?
Они что, получается, имеют прямой доступ к цистерне? Тогда проще будет спирт сразу транспортировать в желудках алкашей.

Не знаю, как там на заводе все устроено, но если абстрагироваться, то надо запретить прямой доступ, или ввести независимые проверки на каждом этапе.
Аноним 12/11/14 Срд 10:27:18 #73 №404978 
>>404970
Ебу что ли? Может они блять мутанты X и могут проходить сквозь стены. В группе только байтоёб один догадался, а препод выслушал его, одобрительно покивал и сказал что бы мы равнялись на него.
Аноним 12/11/14 Срд 13:05:16 #74 №405011 
>>404970
Он неправильно условие описал. Там у цистерны два люка - сверху для залива и снизу для слива. В цистерну наливают, запечатывают, цистерна перемещается, открывают нижний люк, сливают - хуяк - а там на 10л меньше. Водила обратно едет пустой, поэтому люк сверху открыт. По пути он останавливается и забирает ведро со дна цистерны.
Аноним 12/11/14 Срд 13:42:07 #75 №405034 
>>404978
>Он неправильно условие описал. Там у цистерны два люка - сверху для залива и снизу для слива. В цистерну наливают, запечатывают, цистерна перемещается, открывают нижний люк, сливают - хуяк - а там на 10л меньше. Водила обратно едет пустой, поэтому люк сверху открыт. По пути он останавливается и забирает ведро со дна цистерны.
Ну что, милок, соснул?
Аноним 12/11/14 Срд 20:06:03 #76 №405209 
>>404852
Я так понимаю, эта задача из серии - почему люки круглые, как мячиками для пинг-понга измерить диаметр ануса и т.д.
Аноним 12/11/14 Срд 20:24:01 #77 №405219 
>>405209
>как мячиками для пинг-понга измерить диаметр ануса
И как?
Аноним 12/11/14 Срд 20:37:20 #78 №405224 
>>405219
Тебе так сразу и скажи. Этого знания достоин только истинный байтоёб.
comments powered by Disqus

Отзывы и предложения