Здравствуйте, BulatZiganshin, Вы писали:
BZ>1. "бойтесь человека, прочитавшего одну книгу" BZ>2. чтение не заменяет опыт работы. это как бы шаблон по которому нужно дальше набивать руку
Вы правы, но мы же вроде говорили о начале карьеры, когда речь не идет об опыте.
BZ>3. проведи опрос в своём вузе — сколько народу изучило хотя бы только упомянутое тобой
К сожалению, учусь не на программиста, поэтому вряд ли получится. Но если бы была возможность, провел бы обязательно.
BZ>4. ... при том, что это ещё далеко не полный список
BZ>так что ты напрасно кипятишься. сначала определись хотя бы, говорим ли мы о среднестатистическом студенте (который, я уверен, ни rsdn, ни по-английски не читает) или тебе лично
Это вполне естественно, что я проецирую на себя ваши замечания по поводу студентов, я ведь один из них , однако с моей стороны было бы глупо кипятится из-за этого. Просто я знаю достаточное количество ребят, которым необходим только правильный вектор и они будут приносить пользу компании, которая их возьмет на работу, и расти профессионально. Нескажу что их много, но и не совсем мало.
>>Мне кажется, что смысл фразы "знать программирование" у нормального студента и у вас, вполне совпадает.
BZ>в этих 4 пунктах я озвучил требования исключительно к бывшему студенту, который перестал гадить и наконец стал приносить хоть какую-то прибыль своей фирме (что тут же приводит к требованию повысить зарплату раза в 1.5-2 ). к ведущему требования гораздо меньше — он должен решать проблемы
Ну, я тоже имел в виду "не гадящего" студента, а не Mr. Wolf'а из Pulp Fiction .
Я вот почему это все пишу — в последнее время все чаще и чаще замечаю, с каким неудовольствием работодатели нанимают на работу студентов. Их отношение варьируется от "we could always build more killbots" (всмысле — "всегда можем нанять этих недотёп") до "да ну их нафиг, они все тупые". Но посмотрите на это все со стороны студента — брать на работу не хотят, нет опыта, чтобы приобрести опыт, надо устроиться на работу. Вы можете возразить, что вы с радостью, вот только если он основ не знает, зачем он нужен. И будете правы. Вот только паренек может не знать, каких основ вы от него хотите. Звучит смешно конечно, но если вспомнить, что в нашей стране (и в вашей, я из Харькова) такого понятия как CS не существует, то не так уж и смешно. Так вот, после интервью с очередным "недотепой", ненадо говорить "спасибо, поржал", "о господи, он даже такого не знал", "ну и студенты пошли", а надо рассказать человеку, что и как, почему он провалился, чего он не знает, что ему надо выучить. Глядишь выучит и прийдет второй раз.
Re[8]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, BulatZiganshin, Вы писали:
BZ>но это имхо только критерии оценки алгоритмического мышления — то, чему хоть отчасти учат в вузе
Простите, я возможно непонимаю, но мы вроде говорили о студентах, которые в перспективе будут хорошими девелоперами, а не о студентах, которые знают определенный набор технологий. Или я вас неправильно понял?
Re: Приём на работу студентов. Как обнаружить безнадежных?
Здравствуйте, жертва мехмата, Вы писали:
ЖМ>Какие вопросы им задавать, какие испытания устраивать? Или же у всех такая беда?
Моя статистика, в которой у меня нет оснований сомневаться, говорит мне, что на группу в 30 студентов:
* 0-2 -- годятся в программисты
* 5-10 -- годятся во вспомогательные рабочие (тестеры, сисадмины, техписатели)
* прочие годятся только чтобы торговать телефонами в киоске
Поскольку разных специализаций много, даже на большом факультете интересных всего несколько на курс. Просто сидеть и ждать, пока они к вам придут неэффективно. Еще менее эффективно задавать идиотские вопросы в надежде отсеять непригодных. Потому как они просто пойдут в другое место, ведь заманчивых денег у вас, как я понимаю, не платят. Иначе вы бы не охотились за студентами, а нанимали специалистов. К счастью есть хорошие, зарекомендовавшие себя методы: устраивайте студенческие и околостуденческие конференции, проводите открытые лекции, устанавливайте связи с преподавателями, договоритесь с деканатом о практике, зашлите, наконец, своего человека вести спецкурс. С этого вы получите имена и фамилии, которых можно адресно пригласить.
Re[6]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, жертва мехмата, Вы писали:
ЖМ>Мы это понимаем, так и стараемся делать, но часто этого не получается. Бывает срочность, бывают нечеловеческие объемы в короткий срок и ревью приходится откладывать. Приходится включать в сборку их творчество и отдавать в проверку. Потому что версия нужна и именно сегодня.
Тогда вы просто не можете брать студентов пока, за стресс — режим и проффи не все берутся и платить за это надо весьма и весьма много
ЖМ>Вопрос мой — по какой мерке их всех мерять, чтобы брать на работу вдумчивых, аккуратных и перспективных (пусть даже и полных новичков), и не брать на работу простого веселого парня, захотевшего вдруг заработать программистские деньги.
Ну только тестовое задание, имхо, если чел способен на последнем курсе за неделю написать хорошую версию игрушки а — ля лайнс, то из него может выйти весьма и весьма неплохой разработчик, а начинающий уже вышел. Если вы ему даете тестовое, а он говорит что подобное уже делал и показывает, то брать бегом, пока конкуренты не перехватили. Еще брать если с математикой дружит и умеет включать/выключать компьютер.
А кого не брать? Отличников, которые умеют только красиво улыбаться и выдавать зазубренные фразы из конспекта...
Re[7]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, VovkaMorkovka, Вы писали:
VM>Ну только тестовое задание, имхо, если чел способен на последнем курсе за неделю написать хорошую версию игрушки а -
а если он на первом курсе написал архиватор — то такого сразу пристрелить шоб не мучался
Люди, я люблю вас! Будьте бдительны!!!
Re[6]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, BokiyIS, Вы писали:
BIS>Я вот почему это все пишу — в последнее время все чаще и чаще замечаю, с каким неудовольствием работодатели нанимают на работу студентов. Их отношение варьируется от "we could always build more killbots" (всмысле — "всегда можем нанять этих недотёп") до "да ну их нафиг, они все тупые". Но посмотрите на это все со стороны студента — брать на работу не хотят, нет опыта, чтобы приобрести опыт, надо устроиться на работу. Вы можете возразить, что вы с радостью, вот только если он основ не знает, зачем он нужен. И будете правы. Вот только паренек может не знать, каких основ вы от него хотите. Звучит смешно конечно, но если вспомнить, что в нашей стране (и в вашей, я из Харькова) такого понятия как CS не существует, то не так уж и смешно. Так вот, после интервью с очередным "недотепой", ненадо говорить "спасибо, поржал", "о господи, он даже такого не знал", "ну и студенты пошли", а надо рассказать человеку, что и как, почему он провалился, чего он не знает, что ему надо выучить. Глядишь выучит и прийдет второй раз.
а зачем работодателю смотреть с вашей стороны? ему деньги нужны, а не благотворительность
посмотри сам — человек считает себя программистом, но при этом не то что ничего не знает — не знает даже что он должен знать! и даже не догадывается где спросить об этом!!! при этом он уже требует денег, поскольку он "5 лет учился". он не знаком ни с технологией программирования, ни с технологиями, у него не было "производственной практики", в течении которой он должен был набить свою порцию шишек не за счёт компании. наконец, "вкладывание в будущее" тоже не очень работает — поскольку обучившись (за счёт компании!) человек требует повышения зарплаты до уровня middle-level программиста, которого за те же деньги можно сразу было бы нанять
Люди, я люблю вас! Будьте бдительны!!!
Re[7]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, BulatZiganshin, Вы писали:
BZ>посмотри сам — человек считает себя программистом, но при этом не то что ничего не знает — не знает даже что он должен знать! и даже не догадывается где спросить об этом!!! при этом он уже требует денег, поскольку он "5 лет учился". он не знаком ни с технологией программирования, ни с технологиями, у него не было "производственной практики", в течении которой он должен был набить свою порцию шишек не за счёт компании. наконец, "вкладывание в будущее" тоже не очень работает — поскольку обучившись (за счёт компании!) человек требует повышения зарплаты до уровня middle-level программиста, которого за те же деньги можно сразу было бы нанять.
Я вас поддерживаю и считаю что вы правы. Просто хочу, чтобы ребятам объясняли, почему их не берут, почему к ним такое отношение. Никто не говорит о благотворительности. Если человек хочет получить работу, он прислушается, выучит все что необходимо и уже потом прийдет и будет требовать денег =).
Re[3]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, жертва мехмата, Вы писали:
ЖМ>Тест на эрудированность у нас есть. Но блин почти никто не в состоянии нормально ответить на вопрос "что такое СУБД?", "чем занимается аналитик?".
Выглядит как попытка "зачморить" студента и показать, какие вы там все в конторе крутые.
ЖМ>Начинаются сочинения на свободную тему
Так это ж хорошо, значит думают люди. А если честно скажут, что не помнят определение, но постараются объяснить свое понимание — вообще супер.
Или вам нужны попугаи цитирующие википедию?
ЖМ>хорошо поржать можно.
И очень зря.
ЖМ>Я уже не знаю, таблицу умножения что ли у них надо спрашивать. Какие были вопросы в вашем тесте на эрудицию?
Давным давно меня просто предупредили, что нужно будет поначалу тупо править HTML, но что меня попробуют научить чему-то большему. Научили
Дело в том, что те студенты, что в состоянии ответить на "глупые" вопросы точно и четко, причем без возмущения этими "глупыми" вопросами — обычно уже вполне сложившиеся профессионалы.
Re[3]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, BokiyIS, Вы писали:
BZ>у меня были два таких студента. no comments (в смысле комментариев не писали), no architecture — вообще не могдли держать в голове те части программы, которые за пределами экрана. расширение функциональности делалось методом cut-n-paste. это, думаю, самые средние выпускники местного техвуза где-то после года или двух работы. один из них был талантлив, другой нет. но технологией программирования оба не владели, да и откуда собственно. в наших вузах о таких вещах и не подозревали никогда
Ну так а умение держать в голове не то что экран, а целиком все проектные мелочи, оно ж только с опытом приходит. А технология (скорее, я бы сказал, техника) программирования — это тем более опыт, опыт плюс самообучение. Я, например, вижу людей, понимающих важность комментирования коммитов, реже чем солнечное затмение
Re[4]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, SE, Вы писали:
SE>Я, например, вижу людей, понимающих важность комментирования коммитов, реже чем солнечное затмение
ИМХО, все буквально понимают важность комментариев к коммитам, просто не все умеют в одной строчке выразить смысл изменений, которые в коде занимают несколько тысяч строк.
Re[3]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, жертва мехмата, Вы писали:
ЖМ>Здравствуйте, denisko, Вы писали:
ЖМ> "чем занимается аналитик?". Начинаются сочинения на свободную тему, хорошо поржать можно. Я уже не знаю, таблицу умножения что ли у них надо спрашивать.
Это не тест на эрудицию. Только состоявшийся аналитик точно скажет что же делает аналитик. Ну еще и "сайгак" — человек который часто меняет работодателей как перчатки, прыгает с работы на работу и умеет пудрить мозги на собеседованиях.
Студента надо окучивать. Работать с ним, напрявлять. Очень просто объяснять ему что нужно сделать. Впрочем, очень просто объяснять нужно всем. Объяснять сложные вещи просто дано только настоящим профессионалам. Туманнее всего объясняют те, кто вопроса не понимает.
Не надо умничать и пугать человека заумными вещами. Объяснил раз, второй, третий если надо. Если студент переспрашивает, значит процесс обучения идет. После нескольких объяснений у самого в голове потрясающая ясность появляется и знания становятся намного более полными.
Если студент не задает вопросов тогда это плохо. Или плохой студент или плохой наставник.
Сам вот редкого экземпляра выращиваю, sound programmerа. Вроде получается Тьфу x3. Это как панд разводить.
Re: Приём на работу студентов. Как обнаружить безнадежных?
1. Сократить список требований до минимума. Дикий список требований выдает нерадивого работодателя или HR. 3-4 пункта оптимально, если есть возможность то меньше. Большой список отпугивает соискателей, особенно умных и толковых, проффесионалов в одной области. Но привлекает эникейщиков-одноневок.
2. Простой тест на алгоритмику.
3. Выяснить насколько человеку интерестна предметная область. Есть ли "врожденные" склонности. Пускай расскажет про себя. Когда Хлестакова понесет, он расскажет на расслабоне много интерестного.
4. Боже упаси вопросы типа "Чему равна константа WM_PAINT" или "Какой по дефолту размер стека в Виндоус". Соискатель сразу поймет что собеседующий лох и/или жмотина, но никак не профессионал.
Re[5]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, Miroff, Вы писали:
M>Здравствуйте, SE, Вы писали:
SE>>Я, например, вижу людей, понимающих важность комментирования коммитов, реже чем солнечное затмение
M>ИМХО, все буквально понимают важность комментариев к коммитам, просто не все умеют в одной строчке выразить смысл изменений, которые в коде занимают несколько тысяч строк.
Этому лень, тому недосуг, а тот скребет затылок — не умеет он свою мысль выразить. Код писать умеет, а мысли выразить — нет.
Да, и еще это — за коммиты, "которые в коде занимают несколько тысяч строк" надо вообще руки отрывать. Такие коммиты ни откатить по частям, ни отревьювить быстро невозможно.
Но в целом удается побороть эти вещи. Кому книжку "Рефакторинг" на стол подкинуть, кого попросить, кого пнуть даже в нужном направлении.
Re[5]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, Miroff, Вы писали:
M>ИМХО, все буквально понимают важность комментариев к коммитам, просто не все умеют в одной строчке выразить смысл изменений, которые в коде занимают несколько тысяч строк.
ты коммит с ежемесячным отчётом часом не путаешь?
Люди, я люблю вас! Будьте бдительны!!!
Re: Приём на работу студентов. Как обнаружить безнадежных?
Здравствуйте, жертва мехмата, Вы писали:
ЖМ>Наша организация принимает на работу людей с опытом профессионального программирования и студентов/выпускников, не имеющих опыта. ЖМ>Про первых не говорю, там вариант совершенно отдельный. Вторых — естественно на соответствующие роли и с соответствующими привилегиями. Большинство из них через несколько месяцев мы можем воспитать до уровня "надо постоянно следить и заставлять переделывать", КПД немного выше нуля. Некоторые, проявив исключительное желание научиться, становятся через годик пригодными к полноценной самостоятельной работе на наших проектах. Совсем редкие вырастают до очень хороших специалистов. Но некоторые из приходящих совершенно безнадежны. И даже через полгода воспитания — нельзя на их работу смотреть без слез. Пищут код курам на смех (зато хорошо умеют присылать смайлики в аське).
ЖМ>Последний вариант для компании — это убытки (рабочее время наставников-профи стоит дорого, реальная работа по проекту замедляется). ЖМ>Вопрос — какие могут быть эффективные методы раннего обнаружения таких нерадивых стажеров? Важно при этом не отсеять перспективный вариант. Были у нас такие, кто сразу честно говорил, что ничего не знает, но руки чешутся работать. Через некоторое время вырастали до приемлемого уровня. Какие вопросы им задавать, какие испытания устраивать? Или же у всех такая беда?
Я бы ставил вопрос так: как обнаружить талантливых
Re[3]: Приём на работу студентов. Как обнаружить безнадежных
ЖМ>Тест на эрудированность у нас есть. Но блин почти никто не в состоянии нормально ответить на вопрос "что такое СУБД?", "чем занимается аналитик?". Начинаются сочинения на свободную тему, хорошо поржать можно. Я уже не знаю, таблицу умножения что ли у них надо спрашивать. Какие были вопросы в вашем тесте на эрудицию?"
Главный критерий такого теста -- чтобы человек мыслил с нами( я и мой соподельник) на одной волне. Проверяем чтобы
1) человек знал и любил "нужные книжки" — любил Рихтера, банду, пристально относился к кнуту, восхищался графоманией Хайкина, читал хотябы Юрова с Гуком по процессорам и.т.д.
2) имел конкретную большую СВОЮ задачу, которую он хотел бы решить, но пока не может. Может даже ждет от нас помощи. Я или соподельник очень часто идем навстречу ребятам и тратим свое время, чтобы помочь решить ИХ задачи.
3) поглощал бы информацию в своей области, мог относится к ней со здоровой долей стеба.
4) имел бы чувство юмора.
Если 1)-4) выполняется обычно мы срабатываемся с человеком и он работает на нас с довольно большой отдачей.
ЖМ>Насчет пункта 1 — это для нас не пофиг. Успешное существование компании может обеспечить не только качество софта с точки зрения юзера, но и качество софта с точки зрения программиста. Это и есть наша "этика и эстетика", не так ли?.
Вполне вероятно что ваша этика и эстетика такова. Мне приходится читать код
1) С 40-летнего гуру написанный для DSP
2) C# обычного человека с другого проекта
3) ++ эстетсвующего питераса, начитавшегося таких же питерасов
4) ++ остроумного раздолбая, но насквозь проникнутые стебом надо мной
5) Javу некоторого очень странного типа
6) ++ человека молящегося на хаскелл
7) кальку с матлаба
+ кучу код различных полутоновых личостей. Перестройка переходит за 5-7 минут и никаких сложностей не вызывает. Более того, наиболее остроумные приемы я(и даже соподельник который страше меня на 20 лет) перенимаем и с удовольствием использую.
В самых запущенных случаях, когда полностью готов функционал вместе садимся пишем строгую спецификацию как должно быть и человек переделывает. Довольно вдумчиво и без аврала. В дальнейшем на это закладывает определенное время.
Насчет затупов и конструкторов -- надо понимать, что человек пишет свой первый код и тыркается во многие места в поисках решения. Если бы он уничтожал все свои тырки перед тем как сделать следующий код писался бы с бесконечно малой скоростью.
ЖМ>Насчет пункта номер три — с нами этот номер не проходит
Тут я за вас только рад. В последнее время процент таких людей довольно высок. Причем как среди профей так и среди студентов.
<Подпись удалена модератором>
Re[6]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, BulatZiganshin, Вы писали:
M>>ИМХО, все буквально понимают важность комментариев к коммитам, просто не все умеют в одной строчке выразить смысл изменений, которые в коде занимают несколько тысяч строк.
BZ>ты коммит с ежемесячным отчётом часом не путаешь? :)))
Ну может, у них еще не постигли дао распределенных VCS вообще и локальных коммитов в частности.
До последнего не верил в пирамиду Лебедева.
Re[7]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, Roman Odaisky, Вы писали:
M>>>ИМХО, все буквально понимают важность комментариев к коммитам, просто не все умеют в одной строчке выразить смысл изменений, которые в коде занимают несколько тысяч строк.
BZ>>ты коммит с ежемесячным отчётом часом не путаешь?
RO>Ну может, у них еще не постигли дао распределенных VCS вообще и локальных коммитов в частности.
Причем тут распределенные VCS?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re: Приём на работу студентов. Как обнаружить безнадежных?
Здравствуйте, жертва мехмата, Вы писали:
TG>а по теме вспомнил интересную статистику по кибернетическим кафедрам лучших вузов москвы ( хотя думаю в МГУ и МФТИ дела обстоят лучше, но тоже не все идеально). Так вот из 50-60 человек, сдающих различные лабы(в тои числе и домашки) в виде программ (хотя более уместно называть их прогами, до уровня настоящих программ явно такие поделки не тянут) реально все сами пишут только 3-6 человек, остальные просто копируют с мелкими изменениями.
Т.е. 3-6 человек коряво "изобретают велосипед", не смущаясь и не отвлекаясь на всякие там книжки, накопленный опыт, вылизанные десятилетиями patterns
А остальные учатся тому, как должно быть, т.е. качественному Rapid Application Development (RAD) c использованию best practices — копипастят, а может даже и генерируют, вылизанные куски кода (в соответствии с определенными best practices)
ЖМ>Последний вариант для компании — это убытки (рабочее время наставников-профи стоит дорого, реальная работа по проекту замедляется).
Это просто неправильно распланированный проект. В планы любого проекта должны закладываться риски и обучение ... а для средних и больших проектов — расширение-набор и обучение нулевых "студентов", предварительное изучение (если не разработка) общих стилей, принятых в компании
Я думаю, что даже, если собирать в новую команду одних гуру, то всё равно нужно время на разработку, изучение и привыкание к общим стилям и стандартам. Тоже работа "замедляется"