1. Это будет рассмотрено в следующих частях.
2. Готовую функцию могут вызвать все, но не многие могут объяснить как она работает и тем более как ее реализовать.
3. Знание фреймворков может стать не актуальной через некоторое время, лучше быть готовым изучать новые фреймворки, понимая, что там творится под капотом.
4. В статье я не говорю что-то новое, я просто предоставляю руководство(скромное) для людей интересующихся, а проблемы «тупых» интервью пусть решат сами конторы.
Максимальное время работы Bucket sort не О(nlog(n)), а всетаки — О(n). Пруф-линк 1.Пруф-линк 2.
Сортировать по возрастам используя блочную сортировку не является ошибкой, представьте «блоки» маленькими (по году каждый).
Третья часть статьи будет посвящена языкам программирования, и планируется написать еще несколько частей, рассматривающих более сложные собеседования, скажем, на должность сениора. Если есть какие-то предложения, буду только рад.
Доля правды в этом есть, но эти знания нужны просто, как база, а так, интервьюеры сами придумывают задачи, их основная цель — понять как думает кандидат и, что более важно, как быстро он думает. Сейчас ситуация такая, что уволить с работы очень трудно, нужно «придумывать» веские причины, поэтому интервьюеры/рекрутеры стараются как можно больше «убедить» себя, что кандидат хороший и нужный. Отсюда мораль, если вы профессионально пишете код, достаточно хорошо владеете базовыми/фундаментальными знаниями, то у вас проблем не будет.
P.S. Как однажды сказал мне мой интервьюер компании, в которой сейчас работаю я — "есть люди, которые прекрасно владеют математикой, фундаментальными знаниями, алгоритмы и т.п., они могут с легкостью доказать сложную теорему, решать сложные задачи, но нам нужны практические люди, люди, которые имеют «ньюх», которые могут в уме компилировать код, при этом учуяв ошибки, люди, которые смогут работать. Практики, а не теоретики".
Нет, цифры расставлены «в обратном порядке». В задаче тоже написано — «Числа хранятся в обратном порядке». Если звучит не понятно скажите, я помодифицирую условие задачи.
> P.S. кстати, а зачем здесь использовать vector? он же, блин, медленнее и вообще его использование считается плохим тоном
Не согласен, я никогда не слышал, что использование вектора считается плохим тоном и даже не «замечал» в проектах.
> std::vector char_set(sizeof(wchar_t), false);
Что вы здесь имели в виду? Это строка создает вектор с 2 (размер wchar_t, если не ошибаюсь) элементами, инициализировав их значением false. И наверное парсер съел <wchar_t>
Вы, конечно правы, но не во всем). Во-первых, если вы начнете писать комментарии во время интервью — вас тут-же попросят написать код, а комментарий, если нужно, потребуют после приема на работу).
Во-вторых, return, break, continue — не то, чтоб крайне нежелательны, а именно желательны, во многих случаях они помогут не тратить в пустую дополнительные переменные и еще — конкретная «куча» кода может быть просто сэкономлена(не выполнена), поскольку при «желании», достижении того, для чего кусок кода предназначался, просто выходим из цикла)
И в третьих, расстановка скобок и т.д. — это чисто вопрос вкуса, и в основном принятых стандартов в компании, где вы работаете/будете работать. Если в фирме «требуют» писать имена функции со строчными буквами, то, несмотря на ваш любовь на прописные буквы, вы будете «должны» писать со строчными.
2. Готовую функцию могут вызвать все, но не многие могут объяснить как она работает и тем более как ее реализовать.
3. Знание фреймворков может стать не актуальной через некоторое время, лучше быть готовым изучать новые фреймворки, понимая, что там творится под капотом.
4. В статье я не говорю что-то новое, я просто предоставляю руководство(скромное) для людей интересующихся, а проблемы «тупых» интервью пусть решат сами конторы.
Сортировать по возрастам используя блочную сортировку не является ошибкой, представьте «блоки» маленькими (по году каждый).
И P.S. о фреймворках вы это в точку)
P.S. Как однажды сказал мне мой интервьюер компании, в которой сейчас работаю я — "есть люди, которые прекрасно владеют математикой, фундаментальными знаниями, алгоритмы и т.п., они могут с легкостью доказать сложную теорему, решать сложные задачи, но нам нужны практические люди, люди, которые имеют «ньюх», которые могут в уме компилировать код, при этом учуяв ошибки, люди, которые смогут работать. Практики, а не теоретики".
Не согласен, я никогда не слышал, что использование вектора считается плохим тоном и даже не «замечал» в проектах.
> std::vector char_set(sizeof(wchar_t), false);
Что вы здесь имели в виду? Это строка создает вектор с 2 (размер wchar_t, если не ошибаюсь) элементами, инициализировав их значением false. И наверное парсер съел <wchar_t>
Во-вторых, return, break, continue — не то, чтоб крайне нежелательны, а именно желательны, во многих случаях они помогут не тратить в пустую дополнительные переменные и еще — конкретная «куча» кода может быть просто сэкономлена(не выполнена), поскольку при «желании», достижении того, для чего кусок кода предназначался, просто выходим из цикла)
И в третьих, расстановка скобок и т.д. — это чисто вопрос вкуса, и в основном принятых стандартов в компании, где вы работаете/будете работать. Если в фирме «требуют» писать имена функции со строчными буквами, то, несмотря на ваш любовь на прописные буквы, вы будете «должны» писать со строчными.
Думаю все) Ваш вариант тоже понравился.