Re: Приём на работу студентов. Как обнаружить безнадежных?
От: Bromyak Россия  
Дата: 21.07.08 04:12
Оценка:
Здравствуйте, жертва мехмата, Вы писали:

По моему безнадежных нет, просто нужно уметь их грамотно применять.

Кодер — должен кодировать — соответсвенно четкая постановка задачи на входе A на выходе B шаг вправо — попытка к бегству.
Очень нужен в команде человек который умеет быстро и красиво что-нибудь сваять, чтобы закрыть на время вопрос. Не верю, что таких задач у Вас не бывает.
Тот кто умеет лечить — должен лечить, только пусть он лечит не Вас а заказчика, иногда и это полезно.
Некоторые отлично работают дома, некоторым свобода противопоказана, люди настолько разные...

Если у меня проблемы с каким либо сотрудником, я в первую очередь ищу в этом свою вину, как руководителя, знал кого брал на работу, знал что надо будет воспитывать.

А по поводу приема на работу, мне кажеться, Вам нужно самим понять кого Вы хотите найти, попробуйте описать свой рабочий процесс, и выявить требования к участникам этого процесса. Затем останется придумать как эти требования проверить, когда они определены это не так и сложно.

Как ни странно, но в последнее время я все меньше уделяю внимания к профессиональным требованиям, мне гораздо важнее чтобы человек был нормальный, а с остальным разберемся.
Re[8]: Приём на работу студентов. Как обнаружить безнадежных
От: Miroff Россия  
Дата: 21.07.08 04:57
Оценка: 15 (1) :)
Здравствуйте, Lloyd, Вы писали:

L>Причем тут распределенные VCS?


Поясняю. Есть фича на несколько тысяч строк и две недели. Коммитить несобирающийся или незаконченный код в корень VCS считается моветоном достойным канделябра. По-хорошему, надо бы на каждую такую фичу выделять ветку, вести разработку в ней, а затем мержить, но "классические" VCS порождают такой геморрой с мерджем веток, что на это часто забивают. Особенно если фича требует рефакторинга. Отсюда и получаются коммиты в несколько тысяч строк. В принципе, распределенные VCS спасли бы гиганта мысли, но эксперементировать с принципиально другой VCS среди проекта может обойтись слишком дорого.
Re[9]: Приём на работу студентов. Как обнаружить безнадежных
От: SE Украина  
Дата: 21.07.08 05:42
Оценка:
Здравствуйте, Miroff, Вы писали:

M>Поясняю. Есть фича на несколько тысяч строк и две недели. Коммитить несобирающийся или незаконченный код в корень VCS считается моветоном достойным канделябра. По-хорошему, надо бы на каждую такую фичу выделять ветку, вести разработку в ней, а затем мержить, но "классические" VCS порождают такой геморрой с мерджем веток, что на это часто забивают. Особенно если фича требует рефакторинга. Отсюда и получаются коммиты в несколько тысяч строк. В принципе, распределенные VCS спасли бы гиганта мысли, но эксперементировать с принципиально другой VCS среди проекта может обойтись слишком дорого.


И все таки это скорее дао рефакторинга и дзен TDD. Тогда не будет вставать вопрос про несобирающийся код, пусть там даже VSS используется. А коммиты/чекины, каждый из которых прост, понятен и преследует одну простую и понятную (промежуточную) цель — это же наслаждение для взора, можно прямо с логов отчеты генерировать о проделанной работе. Дзен же TDD в том, чтобы писать тестопригодный код, даже если написание тестов не предусмотрено процессом (и такое бывает).
Re[9]: Приём на работу студентов. Как обнаружить безнадежных
От: Lloyd Россия  
Дата: 21.07.08 07:42
Оценка:
Здравствуйте, Miroff, Вы писали:

M>Здравствуйте, Lloyd, Вы писали:


L>>Причем тут распределенные VCS?


M>Поясняю. Есть фича на несколько тысяч строк и две недели. Коммитить несобирающийся или незаконченный код в корень VCS считается моветоном достойным канделябра.


Коммитить несобирающийся или незаконченный код считается моветоном вне зависимости от того, распределенная VCS или нет

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


А что за геморой? Использовали ветки, вроде никакого гемороя замечено не было.

M>В принципе, распределенные VCS спасли бы гиганта мысли, но эксперементировать с принципиально другой VCS среди проекта может обойтись слишком дорого.


В чем заключалось бы спасение? В чем в данном случае принципиальные отличия между распределенной и не-распределенной VCS?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[10]: Приём на работу студентов. Как обнаружить безнадежны
От: Cyberax Марс  
Дата: 21.07.08 07:49
Оценка:
Здравствуйте, Lloyd, Вы писали:

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

L>А что за геморой? Использовали ветки, вроде никакого гемороя замечено не было.
А в каких VCS? В SVN/CVS/боже_упаси_VSS объединение сделано через Ж. Хотя, в SVN1.5 это исправили.

M>>В принципе, распределенные VCS спасли бы гиганта мысли, но эксперементировать с принципиально другой VCS среди проекта может обойтись слишком дорого.

L>В чем заключалось бы спасение? В чем в данном случае принципиальные отличия между распределенной и не-распределенной VCS?
Разработчик делает локальные коммиты в процессе работы, которые сохраняются в его собственный репозиторий. Ну и в конце работы над фичей — все изменения из локального репозитория сливаются в общий.
Sapienti sat!
Re[11]: Приём на работу студентов. Как обнаружить безнадежны
От: Lloyd Россия  
Дата: 21.07.08 07:52
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Lloyd, Вы писали:


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

L>>А что за геморой? Использовали ветки, вроде никакого гемороя замечено не было.
C>А в каких VCS? В SVN/CVS/боже_упаси_VSS объединение сделано через Ж. Хотя, в SVN1.5 это исправили.

TFS

M>>>В принципе, распределенные VCS спасли бы гиганта мысли, но эксперементировать с принципиально другой VCS среди проекта может обойтись слишком дорого.

L>>В чем заключалось бы спасение? В чем в данном случае принципиальные отличия между распределенной и не-распределенной VCS?
C>Разработчик делает локальные коммиты в процессе работы, которые сохраняются в его собственный репозиторий. Ну и в конце работы над фичей — все изменения из локального репозитория сливаются в общий.

И в чем принципиальное отличие от ветки?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re: Приём на работу студентов. Как обнаружить безнадежных?
От: _Jane_ Украина  
Дата: 21.07.08 09:46
Оценка:
Здравствуйте, жертва мехмата, Вы писали:

ЖМ>Последний вариант для компании — это убытки (рабочее время наставников-профи стоит дорого, реальная работа по проекту замедляется).

ЖМ>Вопрос — какие могут быть эффективные методы раннего обнаружения таких нерадивых стажеров? Важно при этом не отсеять перспективный вариант. Были у нас такие, кто сразу честно говорил, что ничего не знает, но руки чешутся работать. Через некоторое время вырастали до приемлемого уровня. Какие вопросы им задавать, какие испытания устраивать? Или же у всех такая беда?

На собеседовании это сделать невозможно, но увидеть через 1-2 месяца — вполне. И мы не пускаем студентов сразу в разработку — это может очень плохо кончиться. Поподробнее могу в личку написать, если интересно.
Jane
Re[3]: Чисто offtop
От: PKz Россия  
Дата: 21.07.08 10:17
Оценка: +1
Здравствуйте, жертва мехмата, Вы писали:

ЖМ>Тест на эрудированность у нас есть. Но блин почти никто не в состоянии нормально ответить на вопрос "что такое СУБД?", "чем занимается аналитик?". Начинаются сочинения на свободную тему, хорошо поржать можно. Я уже не знаю, таблицу умножения что ли у них надо спрашивать. Какие были вопросы в вашем тесте на эрудицию?


Вот хочу спросить.
1. А когда вы были студентом, вы знали ответ на вопрос "чем занимается аналитик?"?
2. Сколько нужно времени среднестатистическому студенту, чтобы узнать чем занимается аналитик.

Кстати, а чем у вас занимается аналитик?
Re[2]: Приём на работу студентов. Как обнаружить безнадежных
От: WolfHound  
Дата: 21.07.08 11:04
Оценка: 1 (1) +2 -2
Здравствуйте, Она На Нас Ий, Вы писали:

TG>>а по теме вспомнил интересную статистику по кибернетическим кафедрам лучших вузов москвы ( хотя думаю в МГУ и МФТИ дела обстоят лучше, но тоже не все идеально). Так вот из 50-60 человек, сдающих различные лабы(в тои числе и домашки) в виде программ (хотя более уместно называть их прогами, до уровня настоящих программ явно такие поделки не тянут) реально все сами пишут только 3-6 человек, остальные просто копируют с мелкими изменениями.


ОНН>Т.е. 3-6 человек коряво "изобретают велосипед", не смущаясь и не отвлекаясь на всякие там книжки, накопленный опыт, вылизанные десятилетиями patterns

ОНН>А остальные учатся тому, как должно быть, т.е. качественному Rapid Application Development (RAD) c использованию best practices — копипастят, а может даже и генерируют, вылизанные куски кода (в соответствии с определенными best practices)
Я с тебя просто балдею.
Ты в школе то же все домашние задания списывал?
И объяснял это обучением Rapid Application Development'у?

Что касается паттернов то они годны только для фраз типа: "Отрефакторил проект. Выкинул синглетоны. Прикрутил IoC. Жить стало легче."
А тех кто проектирует паттернами нужно отстранять от разработки за профнепригодность.

За копипаст нужно вобще мочить. За исключением тех случаев когда высока вероятность того что код в ближайшее время очень сильно изменится.
А самое веселье для копипастеров начинается тогда когда скопипастить неоткуда. Ну не написали еще нужный код.

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

ЖМ>>Последний вариант для компании — это убытки (рабочее время наставников-профи стоит дорого, реальная работа по проекту замедляется).

ОНН>Это просто неправильно распланированный проект. В планы любого проекта должны закладываться риски и обучение ... а для средних и больших проектов — расширение-набор и обучение нулевых "студентов", предварительное изучение (если не разработка) общих стилей, принятых в компании
ОНН>Я думаю, что даже, если собирать в новую команду одних гуру, то всё равно нужно время на разработку, изучение и привыкание к общим стилям и стандартам. Тоже работа "замедляется"
Гуру договорятся за несколько дней.
А в фразе на которую ты отвечаешь говорят о людях которые вобще не способны что-то сделать. Те на них можно потратить хоть год времени, а пользы не будет.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[12]: Приём на работу студентов. Как обнаружить безнадежны
От: WolfHound  
Дата: 21.07.08 11:43
Оценка:
Здравствуйте, Lloyd, Вы писали:

C>>А в каких VCS? В SVN/CVS/боже_упаси_VSS объединение сделано через Ж. Хотя, в SVN1.5 это исправили.

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

C>>Разработчик делает локальные коммиты в процессе работы, которые сохраняются в его собственный репозиторий. Ну и в конце работы над фичей — все изменения из локального репозитория сливаются в общий.

L>И в чем принципиальное отличие от ветки?
В распределенных VCS каждый коммит ветка.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Чисто offtop
От: Roman Odaisky Украина  
Дата: 21.07.08 11:43
Оценка: 3 (1)
Здравствуйте, PKz, Вы писали:

PKz>1. А когда вы были студентом, вы знали ответ на вопрос "чем занимается аналитик?"?

PKz>2. Сколько нужно времени среднестатистическому студенту, чтобы узнать чем занимается аналитик.

Мне четырех лет на специальности «Системный анализ и управление» пока не хватило, чтобы узнать, чем же я занимаюсь.
До последнего не верил в пирамиду Лебедева.
Re[13]: Приём на работу студентов. Как обнаружить безнадежны
От: Lloyd Россия  
Дата: 21.07.08 11:54
Оценка:
Здравствуйте, WolfHound, Вы писали:

C>>>А в каких VCS? В SVN/CVS/боже_упаси_VSS объединение сделано через Ж. Хотя, в SVN1.5 это исправили.

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

Это и есть обещанный "геморрой с мерджем веток"?

C>>>Разработчик делает локальные коммиты в процессе работы, которые сохраняются в его собственный репозиторий. Ну и в конце работы над фичей — все изменения из локального репозитория сливаются в общий.

L>>И в чем принципиальное отличие от ветки?
WH>В распределенных VCS каждый коммит ветка.

То есть если я локально сделал 10 коммитов, то будет 10 веток? Ты это серьезно?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[12]: Приём на работу студентов. Как обнаружить безнадежны
От: Roman Odaisky Украина  
Дата: 21.07.08 12:05
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>И в чем принципиальное отличие от ветки?


Реализовано это именно как ветка. Собственно, в распределенных VCS всё представлено ветками. Результат bzr checkout ‹url› — ветка, общий репозиторий — тоже ветка, результат bzr branch ‹откуда-то› ‹куда-то› — тем более ветка. Можно обновить свою ветку, сделав ее копией другой ветки (bzr pull), можно учесть изменения других веток (bzr merge). (Можно s/bzr/hg/g, у Mercurial основной интерфейс такой же точно.)

Разница в том, что при использовании SVN или другой классической VCS есть централизованный репозиторий, и создание ветки — серверная операция. Коммиты — тоже. В то же время распределенные VCS позволяют коммитить в свою ветку, создавать локальные ветки, и вести прочую работу, не засоряя сервер кодом, который даже не компилируется. А когда всё будет готово, можно с легкостью сделать bzr push в центральный репозиторий. Опять же, push можно делать в любую ветку. Например, в ветку того, кто ведет code review.
До последнего не верил в пирамиду Лебедева.
Re[13]: Приём на работу студентов. Как обнаружить безнадежны
От: Lloyd Россия  
Дата: 21.07.08 12:10
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

L>>И в чем принципиальное отличие от ветки?


RO>Реализовано это именно как ветка. Собственно, в распределенных VCS всё представлено ветками. Результат bzr checkout ‹url› — ветка, общий репозиторий — тоже ветка, результат bzr branch ‹откуда-то› ‹куда-то› — тем более ветка. Можно обновить свою ветку, сделав ее копией другой ветки (bzr pull), можно учесть изменения других веток (bzr merge). (Можно s/bzr/hg/g, у Mercurial основной интерфейс такой же точно.)


А если нет отличий от ветки, то куда девается "геморрой с мерджем веток"?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[3]: Приём на работу студентов. Как обнаружить безнадежных
От: Lloyd Россия  
Дата: 21.07.08 12:20
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Что касается паттернов то они годны только для фраз типа: "Отрефакторил проект. Выкинул синглетоны. Прикрутил IoC. Жить стало легче."

WH>А тех кто проектирует паттернами нужно отстранять от разработки за профнепригодность.

Почему?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[14]: Приём на работу студентов. Как обнаружить безнадежны
От: WolfHound  
Дата: 21.07.08 12:52
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>>>TFS

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

L>Это и есть обещанный "геморрой с мерджем веток"?

На вопросы ответь.
Ибо если он все это не может то гемор будет по люблому.
Хотябы из-за тормозов на удаленные вызовы. Это даже если предположить что сеть хорошо работает.

L>То есть если я локально сделал 10 коммитов, то будет 10 веток? Ты это серьезно?

Да.
А в чем проблема?
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Приём на работу студентов. Как обнаружить безнадежных
От: WolfHound  
Дата: 21.07.08 12:52
Оценка: +1 -1
Здравствуйте, Lloyd, Вы писали:

WH>>Что касается паттернов то они годны только для фраз типа: "Отрефакторил проект. Выкинул синглетоны. Прикрутил IoC. Жить стало легче."

WH>>А тех кто проектирует паттернами нужно отстранять от разработки за профнепригодность.
L>Почему?
Даже не знаю как на этот вопрос можно цензурно ответить.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: Приём на работу студентов. Как обнаружить безнадежны
От: Miroff Россия  
Дата: 21.07.08 12:56
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>А что за геморой? Использовали ветки, вроде никакого гемороя замечено не было.


Мерждить ветку в транк можно только один раз. После этого классическая VCS "забывает" о мердже и в следующий раз предлагает опять разрешить кучу невнятных конфликтов, причем разрешить руками. Аналогично, мерджить по частям неудобно, потому что легко забыть что уже смерджено, а что еще нет. В распределенных VCS с этим получше. Тот же git отслеживает ближайшего общего родителя для файла в ветке и в транке и сдвигает его после мерджа. Плюс branch, merge и rebase операции в классических VCS довольно медленные. По крайней мере в CVS и SVN.
Re[2]: Приём на работу студентов. Как обнаружить безнадежных
От: Lonely Dog Россия  
Дата: 21.07.08 13:05
Оценка:
Здравствуйте, Miroff, Вы писали:

M>Здравствуйте, жертва мехмата, Вы писали:


ЖМ>>Какие вопросы им задавать, какие испытания устраивать? Или же у всех такая беда?


M>Моя статистика, в которой у меня нет оснований сомневаться, говорит мне, что на группу в 30 студентов:

M>* 0-2 -- годятся в программисты
M>* 5-10 -- годятся во вспомогательные рабочие (тестеры, сисадмины, техписатели)
M>* прочие годятся только чтобы торговать телефонами в киоске
У меня в группе из тех, кто остался к 5 курсу работают программерами все! (11 или 12 человек)
3 отчислили.
Учился я в СПбГПУ (Политех), Физико-механический факультет, кафедра "прикладная математика"
Кстати, начиная с 4 курса нам давали именно программерские дисциплины. (Теория алгоритмов, комп. графика, выч. геом. и пр.)
IMHO, ваша статистика не совсем верна.
Re[15]: Приём на работу студентов. Как обнаружить безнадежны
От: Lloyd Россия  
Дата: 21.07.08 13:08
Оценка:
Здравствуйте, WolfHound, Вы писали:

L>>>>TFS

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

L>>Это и есть обещанный "геморрой с мерджем веток"?

WH>На вопросы ответь.

Ага, разбежался. Ты сначала прочти про что ветка, а потом пыхти.

L>>То есть если я локально сделал 10 коммитов, то будет 10 веток? Ты это серьезно?

WH>Да.
WH>А в чем проблема?

А зачем, если репозитарий локальный?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.