утопия, достаточно глянуть то, что пишут люди с 3мя годами опытаOtherSide wrote:Опыт нужен, но не очень много. 2-3 года хватит.Alexandr wrote:я вас уже неоднократно показал, что чтобы хорошо программировать нужен ОПЫТ и знанияOtherSide wrote:Я бы не сказал, что программирование для меня противно. Все-таки я занимаюсь им всю жизнь (с 11 лет). Скорее тут вопрос самореализации и перспектив. Что бы программировать вовсе не нужно быть особенно умным, нужна быстрая соображалка и энергря юность. А тот ум, который основан на жизненном опыте в программировании не задействован практически.valeriypi wrote:Вы же не хотите больше программировать, не увлекайтесь в дебри, сначала будет ентузиазм, подьем желания, тем больше противно станет ремесло по прошествию короткого времени, а до конца пути еше столько лет. Ишите и сосредоточивайтесь на другом более подходяшем дла зарабатывания на жизнь
какая бы ни была энергия юности, но без знаний и опыта, такую библиотеку как boost нельзя создать, формочки клепать да, а что-то действительно серьезное - нет
Как пройти собеседование?
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Как пройти собеседование?
По-моему вы сами писали, что толковые студенты начинают работать со 2-го курса. А как любители - в средней школе. Получается 3 года после ВУЗа это от 7-10 лет опыта реального.Alexandr wrote: утопия, достаточно глянуть то, что пишут люди с 3мя годами опыта
И чего такого можете предложить, что затруднительно создать программисту в 25 лет? Многие софтверные гиганты были основаны людьми куда младше.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
у нас был отдельный курс логики, но я не помню, чтобы там стрелка пирса впринципе упоминаласьOtherSide wrote:Ну вот вы и попались А кто-то недавно писал о непрофессионалах, отсутвии глубины и прочем. Просто вы сидите на своей кочке и считаете себя самым крутым, не видя ничего вокругAlexandr wrote: зачем мне это?
я и большую часть школьной программы по химии, например, не вспомню
тут речь не в завалить, а в практическом применении того, что есть в стандарте
просто большинство не пользуется многими возможностями С++, например шаблонами, поэтому им кажется, что они либо не нужны, либо детали как они работают не важны, но они важны, если класс задач повышается,
например, написать собственную библиотеку грамотно
Мне в работе куда чаще нужно было знать что такое нормальное распределение чем устройство кеш-памяти.
симплекс-метод мож и упоминался на вычмате, хз, не помню
где я таким себя считаю? LOLПросто вы сидите на своей кочке и считаете себя самым крутым, не видя ничего вокруг
мы вели вечь о С++ и тут я считаю себя достаточно квалифицированным, чтобы можно было поспорить/пообщаться на определенные темы
вы думаете, если вы что-то поверхам нахватались делает вас "видящим вокруг"?
расскажите, как вы на практике симплекс метод применяете? а стрелку пирса?
что такое нормальное распределение я тоже вкурсеМне в работе куда чаще нужно было знать что такое нормальное распределение чем устройство кеш-памяти.
но мне вот интересно, как вы на практике применяете симплекс-метод
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
вы сказали 2-3 года опыта достаточно, так что если со второго курса работает берем выпускникаOtherSide wrote:По-моему вы сами писали, что толковые студенты начинают работать со 2-го курса. А как любители - в средней школе. Получается 3 года после ВУЗа это от 7-10 лет опыта реального.Alexandr wrote: утопия, достаточно глянуть то, что пишут люди с 3мя годами опыта
И чего такого можете предложить, что затруднительно создать программисту в 25 лет? Многие софтверные гиганты были основаны людьми куда младше.
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Как пройти собеседование?
Зашибись, по каким "верхам нахватался", вы о чем? Я вообще-то на С++ пишу почти каждый день лет 10 уже. Понятно, что на собеседовании и спрашивают такие вещи, которые редко используются, и если годами в Страуструпа не заглядывал - можно и забыть.Alexandr wrote: где я таким себя считаю? LOL
мы вели вечь о С++ и тут я считаю себя достаточно квалифицированным, чтобы можно было поспорить/пообщаться на определенные темы
вы думаете, если вы что-то поверхам нахватались делает вас "видящим вокруг"?
расскажите, как вы на практике симплекс метод применяете? а стрелку пирса?
Аппеляция к практике - вопрос на собеседовании неуместный. Я на практике и виртуальное наследование не использую и эксепшены из конструктора стараюсь не кидать.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
вот и зряOtherSide wrote:Зашибись, по каким "верхам нахватался", вы о чем? Я вообще-то на С++ пишу почти каждый день лет 10 уже. Понятно, что на собеседовании и спрашивают такие вещи, которые редко используются, и если годами в Страуструпа не заглядывал - можно и забыть.Alexandr wrote: где я таким себя считаю? LOL
мы вели вечь о С++ и тут я считаю себя достаточно квалифицированным, чтобы можно было поспорить/пообщаться на определенные темы
вы думаете, если вы что-то поверхам нахватались делает вас "видящим вокруг"?
расскажите, как вы на практике симплекс метод применяете? а стрелку пирса?
Аппеляция к практике - вопрос на собеседовании неуместный. Я на практике и виртуальное наследование не использую и эксепшены из конструктора стараюсь не кидать.
но давайте вернемся к симплекс методу, ну и стрелке пирса
как вы это на практике применяете?
я вот на практике не применяю try блок конструктора, так я о нем никогда и не спрашиваю
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Как пройти собеседование?
1Я думаю что не зря - такой код потом не очень-то удобно поддерживать. Куда удобнее и красивее идея интерфейсов в шарпах и яве. Можно смело добавлять в классы унифицированные возможности, не боясь что код превратиться в вермишель, а компилятор не напихает в экземпляр класса лишнего мусора.Alexandr wrote: 1 вот и зря
2 но давайте вернемся к симплекс методу, ну и стрелке пирса
как вы это на практике применяете?
я вот на практике не применяю try блок конструктора, так я о нем никогда и не спрашиваю
2 Особенность стрелки пирса в том, что ее достаточно, что бы через нее выразить любую функцию булевой алгебры. Знание булевой алгебры ( в частности широкоизвестное правило де-моргана) используются для оптимизации кода (упрощении выражений)
Симплекс метод используется для решения определенного класса экономических задач, например.
Last edited by OtherSide on 17 Apr 2012 12:00, edited 1 time in total.
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Как пройти собеседование?
Я думаю что не зря - такой код потом не очень-то удобно поддерживать. Куда удобнее и красивее идея интерфейсов в шарпах и яве. Можно смело добавлять в классы унифицированные возможности, не боясь что код превратиться в вермишель, а компилятор не напихает в экземпляр класса лишнего мусора.Alexandr wrote: вот и зря
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
1) так и не надо туда лазить, классы в целом для изменений должны быть закрыты,OtherSide wrote:1Я думаю что не зря - такой код потом не очень-то удобно поддерживать. Куда удобнее и красивее идея интерфейсов в шарпах и яве. Можно смело добавлять в классы унифицированные возможности, не боясь что код превратиться в вермишель, а компилятор не напихает в экземпляр класса лишнего мусора.Alexandr wrote: 1 вот и зря
2 но давайте вернемся к симплекс методу, ну и стрелке пирса
как вы это на практике применяете?
я вот на практике не применяю try блок конструктора, так я о нем никогда и не спрашиваю
2 Особенность стрелки пирса в том, что ее достаточно, что бы через нее выразить любую функцию булевой алгебры. Знание булевой алгебры ( в частности широкоизвестное правило де-моргана) используются для оптимизации кода (упрощении выражений)
Симплекс метод используется для решения определенного класса экономических задач, например.
часть из них спроектирована для расширения, это и надо пользовать
в железе ее нет, и соответственно компиляторам она тоже до лампочкиОсобенность стрелки пирса в том, что ее достаточно, что бы через нее выразить любую функцию булевой алгебры.
я уже говорил, что я не помню вообще какого-либо упоминания о ней в курсе (целый семестр шло) логики, наверное не особенно нужна, но для общего развития полезно
вот это никак со стрелкой пирса не связано, так как хардварной реализации ее нетЗнание булевой алгебры ( в частности широкоизвестное правило де-моргана) используются для оптимизации кода (упрощении выражений)
а булева алгерба, да, полезна, спору тут нет
конкретно из вашей практики пример можно?Симплекс метод используется для решения определенного класса экономических задач, например.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Как пройти собеседование?
После того как автор темы освежил свои знания и успешно прошел собеседование, просьба глянуть на задачку и поделиться мнением:
- Встречалось ли на интервью нечто подобное. Насколько задача выглядит типовой.
- Показалась ли задача сложной для пятиминутноого, получасового размышления
- Какие идеи возникли для ее решения
Итак имеем несколько предварительно инициализированных стандартных контейнеров разного типа, включая ассоциативные. Для простоты хранимые в них значения одного типа (int).
std;:map<std::string,int> mp;
..........
std::vector<int> vp;
.............// код инициализации
Требуется написать шаблонную функцию формата
template<typename iterator_type>
int S(iterator_type b, iterator_type e) {
............... // собственно предлагается реализовать тело обьявленной функции
}
которая принимает на вход начальный и конечный итераторы контейнера а на выходе, к примеру, возвращает сумму хранимых им данных (подразумевается что в случае массива суммирование нужно вести по pair.second)
stdout << S(mp.begin(),mp.end()) << S(vp,begin(),vp.end()) << endl;
Насколько задача покажется сложнее если int заменить на произвольный скалярный тип ?
- Встречалось ли на интервью нечто подобное. Насколько задача выглядит типовой.
- Показалась ли задача сложной для пятиминутноого, получасового размышления
- Какие идеи возникли для ее решения
Итак имеем несколько предварительно инициализированных стандартных контейнеров разного типа, включая ассоциативные. Для простоты хранимые в них значения одного типа (int).
std;:map<std::string,int> mp;
..........
std::vector<int> vp;
.............// код инициализации
Требуется написать шаблонную функцию формата
template<typename iterator_type>
int S(iterator_type b, iterator_type e) {
............... // собственно предлагается реализовать тело обьявленной функции
}
которая принимает на вход начальный и конечный итераторы контейнера а на выходе, к примеру, возвращает сумму хранимых им данных (подразумевается что в случае массива суммирование нужно вести по pair.second)
stdout << S(mp.begin(),mp.end()) << S(vp,begin(),vp.end()) << endl;
Насколько задача покажется сложнее если int заменить на произвольный скалярный тип ?
-
- Уже с Приветом
- Posts: 13716
- Joined: 20 Nov 2009 04:01
Re: Как пройти собеседование?
Смешно, самом деле. Устраивать экзамен на знание основ - это самый дурацкий способ найти успешного кандидата. Ну как проще спросить о предыдущих достижениях рассказать.
-
- Уже с Приветом
- Posts: 13716
- Joined: 20 Nov 2009 04:01
Re: Как пройти собеседование?
Недавний пример. Мой ребёнок прпросил помощи в интегрироивании в криволинейных координатах. Мне понадобилось полчаса, чтобы вспомнить основы, после чего я смог оказать ему помощь, даже в самых заковыристых задачах. Ну не каждый день я интегрирую в криволинейных координатах.
Т.е. интервьюеры, спрашивающие такие детальные вопросы - лишь узнают чем занимался претендент прямо перед интервью, а не его способности. Причём разница во вникание специфики - может быть только час-два, пока отвергнутый претендет не досатигнет уровня прошедшего.
Т.е. интервьюеры, спрашивающие такие детальные вопросы - лишь узнают чем занимался претендент прямо перед интервью, а не его способности. Причём разница во вникание специфики - может быть только час-два, пока отвергнутый претендет не досатигнет уровня прошедшего.
-
- Уже с Приветом
- Posts: 9194
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Как пройти собеседование?
Для получения суммы со всех элементов в контейнере? Или это вопрос на то, что кандидат ожидает от "скалярного" типа? Вроде того что int some_type::getInt() ему должен ему представляться. Это опять конфуз, вроде того, с его тема начиналась.Мальчик-Одуванчик wrote: Насколько задача покажется сложнее если int заменить на произвольный скалярный тип ?
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Как пройти собеседование?
Я наверное не совсем точно пояснил свою мысль. Под скалярным типом имеется виду любое числовой тип { short int, int, long, double, ... float }. Операция приведения cуммы к типу int не рассматривается.
scalar_type result = F(begin, end);
std::map<std::string, double> mp;
std::deque<long> dp;
std::vector<int> vp;
..... инициализация контейнеров
double d1 = F(mp.begin(),mp.end());
long l1 = F(dp.begin(),dp.end());
int i1 = F(vp.begin(),vp.end());
Повторюсь, входные данные только итераторы начала и конца контейнера. Тип контейнера в фунцию не передается и из типа итератора не выводится (впрочем это и не требуется).
scalar_type result = F(begin, end);
std::map<std::string, double> mp;
std::deque<long> dp;
std::vector<int> vp;
..... инициализация контейнеров
double d1 = F(mp.begin(),mp.end());
long l1 = F(dp.begin(),dp.end());
int i1 = F(vp.begin(),vp.end());
Повторюсь, входные данные только итераторы начала и конца контейнера. Тип контейнера в фунцию не передается и из типа итератора не выводится (впрочем это и не требуется).
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
Мальчик-Одуванчик, навскидку и без буста, где-то так
Code: Select all
template<class T>
class ValueTypeTraits
{
public:
typedef T value_type;
static value_type& value(T& v)
{
return v;
}
};
template<class Key, class Value>
class ValueTypeTraits<pair<Key, Value>>
{
public:
typedef Value value_type;
static value_type& value(pair<Key, Value>& v)
{
return v.second;
}
};
template<class Iter>
typename ValueTypeTraits<typename Iter::value_type>::value_type Sum(Iter begin, Iter end)
{
ValueTypeTraits<typename Iter::value_type>::value_type result = ValueTypeTraits<typename Iter::value_type>::value_type();
for (Iter it = begin; it != end; ++it)
result += ValueTypeTraits<typename Iter::value_type>::value(*it);
return result;
}
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
тип значения может быть любым, лишь бы был конструктор по умолчанию, оператор = и +=
на простых понятное дело будет работать по умолчанию
на простых понятное дело будет работать по умолчанию
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Как пройти собеседование?
Ну как раз буст и не желателен.
Насколько, на Ваш взгляд, эта задача может показаться сложной для интервью в зависимости от времени данной на ее решение ( четверть часа, полчаса, час) и насколько типовой?
Вы тоже считаете что задача лишь только проверка основ и всего лишь натренированный на стандартных интервью соискатель через неё легко перескочит?
Что еще посоветуете проверять: SFINAE, trampoline ...?
Насколько, на Ваш взгляд, эта задача может показаться сложной для интервью в зависимости от времени данной на ее решение ( четверть часа, полчаса, час) и насколько типовой?
Вы тоже считаете что задача лишь только проверка основ и всего лишь натренированный на стандартных интервью соискатель через неё легко перескочит?
Что еще посоветуете проверять: SFINAE, trampoline ...?
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
спрашивать нужно так (имхо): зацепиться за что-то более менее простое, например, текущая задача (хотя я думаю она чуточку больше, чем просто основы) и далее ковырять вглубь и ширь пока кандидат не начнет плаватьМальчик-Одуванчик wrote:Ну как раз буст и не желателен.
Насколько, на Ваш взгляд, эта задача может показаться сложной для интервью в зависимости от времени данной на ее решение ( черверть часа, полчаса, час) и насколько типовой?
Вы тоже считаете что задача лишь только проверка основ и натренированный на стандартных интервью говнокодер через него легко перескочит.
Что еще посоветуете проверять: SFINAE, trampoline ...?
по сути SFINAE - это основа всех извращений с шаблонами, так что понимание быть должно
ну и основы понятное дело - шаблоны, шаблоны шаблонов, специализации, ...
т.е. ваша задача как интервьюера - понять границы знаний кандидата и что уже было в опыте
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
так вы ему еще вопросы позадавайте по шаблонам и сразу будет видно выучил он конкретную задачку или обладает навыкамиВы тоже считаете что задача лишь только проверка основ и всего лишь натренированный на стандартных интервью соискатель через неё легко перескочит?
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Как пройти собеседование?
Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
как по мне, так нормальная задачка, не сложная, но и не на 100% тривиальнаяМальчик-Одуванчик wrote:Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
-
- Уже с Приветом
- Posts: 9258
- Joined: 14 Dec 2001 10:01
- Location: Российская Федерация
Re: Как пройти собеседование?
Даже в футболе мало уметь бить обоими ногами, обводить и иные тех. элементы (читай опыт и знания). Профи в футболе обязан думать, не говоря уже об иных важных качествах.
Миру мир
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Как пройти собеседование?
Задача из самых типичных на интервью, но вопрос уже из категории "сложных". Алкесандер я так понял поболее меня натаскался на интервью, поэтому он решит быстро, я не уверен что написал бы решение на листике, но как тестовое задание - легко.Мальчик-Одуванчик wrote:Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
Обычно на решение таких задач предлагают 5-10 минут. Решение нужно просто знать - помнить что итераторы ассоциативных контенеров содержат не значение, а пару. Думать особенно не о чем.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
OtherSide wrote:Задача из самых типичных на интервью, но вопрос уже из категории "сложных". Алкесандер я так понял поболее меня натаскался на интервью, поэтому он решит быстро, я не уверен что написал бы решение на листике, но как тестовое задание - легко.Мальчик-Одуванчик wrote:Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
Обычно на решение таких задач предлагают 5-10 минут. Решение нужно просто знать - помнить что итераторы ассоциативных контенеров содержат не значение, а пару. Думать особенно не о чем.
я правильно написал, так как в студии написал, а потом просто на форум скопировал, на листике написал бы с арфаграфическеме ашипками (постоянно забываю тот же typename писать для зависимых имен), но интервьюера убедил бы что знаю о чем говорю
задача совсем не об этом. то, что в map значение - это пара, об этом знают примерно 100% кандидатов, а вот как абстрагироваться от этого - это и есть то, что требуется в этом задаченужно просто знать - помнить что итераторы ассоциативных контенеров содержат не значение, а пару
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
Мальчик-Одуванчик, вот еще вспомнил
на таких задачках, еще полезно, если интервьюер выполняет роль компилятора, т.е. если кандидат допускает ошибки, ну просто описки у него можно уточнить, а вот на принциальные ошибки лучше говорить, что компилятор вам не даст это сделать потому то и потому то (попутно можно обсудить почему в С++ так-то и так-то делать нельзя), чтобы у кандидата была возможность поправиться и сделать как-то по другому
т.е. сама задачка - это не бинарная функция "решил" либо "не решил", а это просто тема для общения, местами достаточно обширного
на таких задачках, еще полезно, если интервьюер выполняет роль компилятора, т.е. если кандидат допускает ошибки, ну просто описки у него можно уточнить, а вот на принциальные ошибки лучше говорить, что компилятор вам не даст это сделать потому то и потому то (попутно можно обсудить почему в С++ так-то и так-то делать нельзя), чтобы у кандидата была возможность поправиться и сделать как-то по другому
т.е. сама задачка - это не бинарная функция "решил" либо "не решил", а это просто тема для общения, местами достаточно обширного