Здравствуйте, BulatZiganshin, Вы писали:
BZ>это всё равно что объяснять физику как водить машину, начиная с квантовой хромодинамики
Если это будет также эффективно, то почему бы и нет? Хотя физику нужно начинать объяснять со слов "Возьмём сферический автомобиль в вакууме"... Впрочем, у меня нет большого желания выпрямлять кривые аналогии.
BZ>мы с тобой знаем немало людей здесь на rsdn, которые *знакомы* с ФП языками, но не понимают их, поскольку смотрят на них через амбразуру указателей
Они их не понимают не из-за указателей, а из-за обилия словесной ветоши, которой обычно принято сопровождать разговоры о ФП.
... << RSDN@Home 1.2.0 alpha rev. 771>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, BulatZiganshin, Вы писали:
IT>>Всё. Если человек способен понять эти вещи, то он может стать программистом. Если не способен, то он безнадёжен.
BZ>в хаскеле нет 2 и 3
Боюсь Хаскель как критерий отбора безнадёжных студентов точно не подойдёт
... << RSDN@Home 1.2.0 alpha rev. 771>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, WolfHound, Вы писали:
ОНН>>Т.е. 3-6 человек коряво "изобретают велосипед", не смущаясь и не отвлекаясь на всякие там книжки, накопленный опыт, вылизанные десятилетиями patterns ОНН>>А остальные учатся тому, как должно быть, т.е. качественному Rapid Application Development (RAD) c использованию best practices — копипастят, а может даже и генерируют, вылизанные куски кода (в соответствии с определенными best practices) WH>Я с тебя просто балдею. WH>Ты в школе то же все домашние задания списывал? WH>И объяснял это обучением Rapid Application Development'у?
Вы знаете у меня сын учился некоторое время в неславянской школе, в ЕС, когда я там жил.
Я тоже балдел от того, что, школьные задания, как домой (а домой задавали очень редко, наверное, там считали, что в учебное время — надо учиться, а в неучебное время — не учиться), так и в "рабочее время (т.е. в классе)" задания им задают не per student, а на группу и один из группы — ответственный — сдаёт или отчитывается за всю группу. А, как они организуют это — выберут одного, кто это сделает или решат задачки вместе — методом голосования, это было их делом, учителю в голову не приходило это выяснять, оценка ставилась группе и, соответственно, всем членам та же.
И, сидели они не по 2 за столом, а группами — по 4-6 человек за столом, и не "за", а "вокруг" стола. Припоминается мне, что когда я туда захаживал, то там, кажется, даже стола не было в классе у учителя
Если Вам не дано понять то, что Ваша логика бытия — не единственная, и предположить, что Вы живете и судите не по самым лучшим догмам, и, более чем вероятно, что другим удобно и более эффективно делать по другомк, то мне Вас, а прежде всего Ваших окружающих искренне жаль. А, то у нас грамотных — много, а вот даже неграмотных, умеющих работать в команде и иметь навыки прислушаться друг к другу — днём с огнём не сыщешь:
все, почему-то интегралам учились в школе, а не неизбежным житейским навыкам (типа сесть вокруг стола) — не научены с детства
А в мои школярские годы, когда я учился писать, то я СПИСЫВАЛ из учебника палочки и галочки целыми тетрадями. И, только потом, научившись тому, что было написано в учебнике, я что-то там пытался писать своими буквами и словами.
А. надо было сразу выдумывать мои собственные буквы, шрифты и фонты моей собственной рукописи?
Re[3]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, LordMAD, Вы писали:
LMA>Здравствуйте, franz, Вы писали:
F>>Студентов, которые еще не доучились на работу не брать! Пусть доучатся. LMA>Есть такая старая, но мудрая фраза, что учиться надо всю жизнь. Когда же считать, что он доучился?
Я имел ввиду студентов, которые еще не закончили университет.
F>>Для студента/выпускника: F>>- посмотреть успеваемость в университете, тему дипломной работы. LMA>Успеваемость не говорит ни о чем. Тема диплома говорит еще меньше — за красивыми темами иногда такое скрывается — просто кошмар.
Как показывает практика, студенты с хорошей успеваемостью будут показывать хорошие результаты и на работе.
F>>Попросить рассказать чем он занимался в университете, каких успехов достиг. LMA>Какие "успехи" могут быть у студента? Задача студента — получать фундамент и учиться учиться. "Успехом" в получении фундамента может быть что? Наверное, только если докажет какую-нибудь теорему, которую 200 лет доказать не могли.
Основной успех для студента — усвоить те знания, которые ему дали в университете и научиться мыслить самостоятельно.
F>>Если студент учился "на отлично" в пристижном университете LMA>Категорически нет. Даже если перед Вами выпускник MIT.
Престижном я сказал условно.. не престижный — это разного рода "заборостроительные", где можно не учиться а просто проплачивать каждый семестр.
F>>- предложить поработать некоторое время на должности тестировщика или программиста авто тестирования. LMA>И если согласится — то не брать, ибо либо идиот, либо закомплексованный. Не уверен, по по-моему это еще и Трудовому Кодексу противоречит.
Не понял чем он идиот и в чем противоречие кодексу?
Просто в качестве испытательного срока надо дать ему область работ связанную с проектом, но не влияющую на качество конечного продукта. Это может быть например авто тестирование, где также надо уметь программировать и знать как устроен конечный продукт.
Re: Приём на работу студентов. Как обнаружить безнадежных?
Здравствуйте, жертва мехмата, Вы писали:
ЖМ>Или же у всех такая беда?
Такая беда у всех. Это та цена которую приходится платить. Если берете людей без опыта, студентов, то приличный процент отсева гарантирован. Зато и в случае удачи вы получаете много — задешево молодых голодных до работы и развития сотрудников. Уменьшить процент "отходов" можно только за счет усложнения процедуры предварительного отбора — а чем такая процедура сложнее, тем она дороже. Получается замкнутый круг. В какой точке этот круг разрывать чтоб получить оптимальное соотношение цена-качество — это вопрос однозначного решения не имеющий IMHO.
Re[4]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, franz, Вы писали:
LMA>>И если согласится — то не брать, ибо либо идиот, либо закомплексованный. Не уверен, по по-моему это еще и Трудовому Кодексу противоречит. F>Не понял чем он идиот и в чем противоречие кодексу? F>Просто в качестве испытательного срока надо дать ему область работ связанную с проектом, но не влияющую на качество конечного продукта. Это может быть например авто тестирование, где также надо уметь программировать и знать как устроен конечный продукт.
Если человек выучился на программиста, то для него работать тестером — это "шаг назад". Специальность тестера сейчас осваивают в бывших ПТУ, включая тех, кто "программит" тесты. Если он согласится на такую работу, значит совершенствоваться, как программист, будет очень медленно (если white-box testing) или вообще практически не будет (если black box testing). Причем в первом случае — будучи практически в свободном плавании — может и "не тому" научится — будет воспринимать как должное любую самую мелкую корявость кода по принципу "раз другие так делают, то так делать можно всегда, а может и нужно", хотя на самом деле был случай исключительный.
Да и какой вывод делать, если это ему удастся очень или не очень хорошо? Оценить так можно лишь его общечеловеческие качества, но никак не программистские. С тем же успехом можете предложить его помещения убирать...
А по Трудовому Кодексу, вроде, работодатель должен содействовать профессиональному росту сотрудников, не наоборот.
Re[4]: Приём на работу студентов. Как обнаружить безнадежных
Например: как мне сгенерировать код SQL'ной базы данных с мультимастер репликацией?
Готовых нет.
А мультимастер репликацию очень хочется.
Гусары молчать! Я сам знаю что удар ниже пояса.
ОНН>А, как они организуют это — выберут одного, кто это сделает или решат задачки вместе — методом голосования, это было их делом, учителю в голову не приходило это выяснять, оценка ставилась группе и, соответственно, всем членам та же.
Сюр.
В этом случае все сделает один.
А остальные останутся пробками.
ОНН>Если Вам не дано понять то, что Ваша логика бытия — не единственная, и предположить, что Вы живете и судите не по самым лучшим догмам, и, более чем вероятно, что другим удобно и более эффективно делать по другомк, то мне Вас, а прежде всего Ваших окружающих искренне жаль.
Я в отличии от тебя не живу догмами.
И если тебе не дано понять то что можно жить без догм то мне тебя жаль.
ОНН>А, то у нас грамотных — много, а вот даже неграмотных, умеющих работать в команде и иметь навыки прислушаться друг к другу — днём с огнём не сыщешь: все, почему-то интегралам учились в школе, а не неизбежным житейским навыкам (типа сесть вокруг стола) — не научены с детства
У нас тут несколько сотен грамотных. Есть конечно несколько неуживчивых но остальные легко договариваются.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, _Jane_, Вы писали:
LMA>>Если человек выучился на программиста, то для него работать тестером — это "шаг назад". _J_>Наоборот, поработать тестером на том продукте, с которым надо будет работать — это очень полезно. _J_>Говорю как человек, который через это прошёл.
Тестя чужое — нет. Для изучения проекта существенно больше даст формальный обзор.
Re[7]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, LordMAD, Вы писали:
LMA>>>Если человек выучился на программиста, то для него работать тестером — это "шаг назад". _J_>>Наоборот, поработать тестером на том продукте, с которым надо будет работать — это очень полезно. _J_>>Говорю как человек, который через это прошёл. LMA>Тестя чужое — нет. Для изучения проекта существенно больше даст формальный обзор.
Это если речь идёт о system testing — тупое выполнение тест кейсов. Но ведь есть и другие виды тестирования. Никакой формальный обзор не даст того знания и понимания, что даёт тестирование — возможность "пощупать" продукт со всех сторон и к тому же с пользой.
Jane
Re[8]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, _Jane_, Вы писали:
LMA>>Тестя чужое — нет. Для изучения проекта существенно больше даст формальный обзор. _J_>Это если речь идёт о system testing — тупое выполнение тест кейсов. Но ведь есть и другие виды тестирования. Никакой формальный обзор не даст того знания и понимания, что даёт тестирование — возможность "пощупать" продукт со всех сторон и к тому же с пользой.
Раз Вы пишете про <<возможность "пощупать" продукт>>, я делаю вывод, что речь идет про black box testing. Тогда, чтобы хорошо его "пощупать", нужно тестировать все его части, а следовательно процесс сильно растянется во времени... Единственное исключение — неформальный usability testing, но если он именно неформальный, то Вы должны доверять опыту тестирующего, а тут студент как раз подходит плохо, хотя "свежий глаз"... Но какой вывод можно сделать из этого о студенте как о программисте... да никакого, только как о пользователе. Для самого студента это может быть полезно только если проект находится уже на определенных стадиях. В любом случае, если есть грамотно оформленная архитектура — она даст ему больше (за счет большей абстракции) за меньшее время.
Ну а если сравнивать формальный обзор с white-box testing — все определяется тем, что студент не просто знакомится с тем, как код пишут другие (что происходит при тестировании), а формально описывает, а следовательно возможна обратная связь (процесс не идет на самотек).
Re[9]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, LordMAD, Вы писали:
LMA>>>Тестя чужое — нет. Для изучения проекта существенно больше даст формальный обзор. _J_>>Это если речь идёт о system testing — тупое выполнение тест кейсов. Но ведь есть и другие виды тестирования. Никакой формальный обзор не даст того знания и понимания, что даёт тестирование — возможность "пощупать" продукт со всех сторон и к тому же с пользой. LMA>Раз Вы пишете про <<возможность "пощупать" продукт>>, я делаю вывод, что речь идет про black box testing. Тогда, чтобы хорошо его "пощупать", нужно тестировать все его части, а следовательно процесс сильно растянется во времени...
Да, времени много. Именно поэтому несколько лет назад в нашей компании отказались от этого способа подготовки. Иногда мне кажется, что зря.
LMA>Единственное исключение — неформальный usability testing, но если он именно неформальный, то Вы должны доверять опыту тестирующего, а тут студент как раз подходит плохо, хотя "свежий глаз"... Но какой вывод можно сделать из этого о студенте как о программисте... да никакого, только как о пользователе.
А вот и нет. Хороший программист — он не только пишет код, но и должен быть способен инвестигейтить проблемы. По тому, как человек ищет, исследует и описывает баги с точки зрения тестера, можно определить его абстрактную способность разобраться-исследовать.
LMA>Для самого студента это может быть полезно только если проект находится уже на определенных стадиях. В любом случае, если есть грамотно оформленная архитектура — она даст ему больше (за счет большей абстракции) за меньшее время.
Даст больше, но полностью не заменит. Но это только моё личное мнение, прошу заметить
LMA>Ну а если сравнивать формальный обзор с white-box testing — все определяется тем, что студент не просто знакомится с тем, как код пишут другие (что происходит при тестировании), а формально описывает, а следовательно возможна обратная связь (процесс не идет на самотек).
Jane
Re[5]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, LordMAD, Вы писали:
LMA>Да и какой вывод делать, если это ему удастся очень или не очень хорошо? Оценить так можно лишь его общечеловеческие качества, но никак не программистские. С тем же успехом можете предложить его помещения убирать...
Надо понимать, что для студента это первое место работы. Он должен начится работать в коллективе, соблюдать корпоративные правила. Гений программирования может быть и не полезен корпорации, а наооборот приносить убытки.
За время испытательного срока студенту надо дать:
— ознакомится с системой, например по-средствам функционального тестирования. Протестировать некую ф-ть по спецификации, которую ему потом придется модифицировать
— написать небольшой участок кода, который не влияет на ф-ть всей системы. Это могут быть юнит тесты или ф-ть пока не входящая в состав продукта
— привлекать его к участию в митингах между программистами
— снабдить полезной литературой, например описанием сторонних API
Что вы кстати подразумеваете под программистскими качествами?
LMA>А по Трудовому Кодексу, вроде, работодатель должен содействовать профессиональному росту сотрудников, не наоборот.
А какой у него до это у него был рост, если это его первое место работы??
У него и трудовой-то не должно быть
Re[4]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, Она На Нас Ий, Вы писали:
ОНН>все, почему-то интегралам учились в школе, а не неизбежным житейским навыкам (типа сесть вокруг стола) — не научены с детства
Это да, английское образование выпускает хорошо надрессированный офисный планктон. И за столом умеют сидеть и галстуки носят с 5 лет.
Но не стоит и нас ругать — у нашего образования тоже плюсы есть — я например не слышал, чтобы в Росии на вопрос "кто такой Сталин" отвечали "Первый черный президент США". А над Черчиллем уже поглумились
ЗЫ кто не верит, что их действительно так учат предлагаю отловить знакомого буржуя и задать 2 вопроса:
1. назвать 2-х любых своих национальных писателей (одного могут назвать, вдруг они про Шекспира смотрели голливудское кино)
2. когда была вторая мировая война.
Ответы вас сильно удивят
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re[4]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, elmal, Вы писали:
E>пример из реального кода, как увидел такой, меня чуть кондратий не хватил, писал такое мегаархитектор с 15 годами опыта и 20 000 баксов в месяц зарплатой ):
Это где такие зарплаты? Назовите хотя бы страну, дальше я сам !!!
E>
E>void doSmth(int a) {
E> ... очертенеть как много кода
E> try{
E> ... очертенеть как много кода
E> doA(a);
E> }catch (Exception ex) {
E> doSmth(a);
E> }
E> ... очертенеть как много кода
E>
E>PS Этот код работал
конечно работал. До захода в catch.
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re[5]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, WolfHound, Вы писали:
ОНН>>А, как они организуют это — выберут одного, кто это сделает или решат задачки вместе — методом голосования, это было их делом, учителю в голову не приходило это выяснять, оценка ставилась группе и, соответственно, всем членам та же. WH>Сюр. WH>В этом случае все сделает один. WH>А остальные останутся пробками.
Не угадали. Я сам так поначалу думал "по-старинке"
Команды, как правило. организуются и пересамоорганизуются по силам и интересам — и, сильным ученикам не надо притормаживать за слабыми. И задачи даются не всем одинаковые, а в соответствии с "силой" команды.
Если человеку вообще принципиально не способен или не может учиться как все, то это его личный выбор, достойный уважения (есть много примеров выдающихся людей, которые ещё как "тормозили" в школе, начиная с Эйнштейна). Всем из-за этого отставать в общепринятом образовании и развитии — неразумно.
Некоторым неинтересно доводить или напрямую решать, зато прекрасно оттачивают навыки организовывать и воодушевлять других, генерировать идеи для других, точить карандаши для исполнителей и красиво оформлять (переписывать начисто) черновики. Идет распределение ролей и специализация. Ну, не надо будет им в жизни решать дифуры самим
Ну, нельзя сидеть в работающей команде и вообще ничего не делать. Это можно учителя динамить, но никак не своих товарищей
Всё — как в жизни, и с детского садика (там вообще непонятно, где кончается детсад, и начинается нач. школа. И там, и там занимается примерно одним и тем же)
Re[5]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, EM, Вы писали:
EM>1. назвать 2-х любых своих национальных писателей (одного могут назвать, вдруг они про Шекспира смотрели голливудское кино) EM>2. когда была вторая мировая война.
EM>Ответы вас сильно удивят
Часто приходилось наблюдать при покупках в небольших магазинах, там, где зачастую обслуживает сам владелец и его жена, например, при покупке газеты, что для вычисления размера сдачи владелец идёт метров за 20-50 к калькулятору, а при нескольких айтемз начинает на глазах потеть за калькулятором
Ну, неинтересно челу была арифметика, что не помешало ему открыть своё дело и преуспевать в нём.
По поводу офисного планктона — у меня нет сомнений, что работать там намного комфортнее и эффективнее, создаёт большее юлагосостояние и качество жизни.
А для взятия интегралов всегда есть очередь из иммигрантов,считающих своих нанимателей недообразованными и тупыми
Re[5]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, EM, Вы писали:
E>>пример из реального кода, как увидел такой, меня чуть кондратий не хватил, писал такое мегаархитектор с 15 годами опыта и 20 000 баксов в месяц зарплатой ):
EM>Это где такие зарплаты? Назовите хотя бы страну, дальше я сам !!!
Газпром
Люди, я люблю вас! Будьте бдительны!!!
Re[6]: Приём на работу студентов. Как обнаружить безнадежных
Здравствуйте, franz, Вы писали:
F>За время испытательного срока студенту надо дать: F>- ознакомится с системой, например по-средствам функционального тестирования. Протестировать некую ф-ть по спецификации, которую ему потом придется модифицировать
Если надо, чтобы он ознакомился с системой — надо дать ему ознакамливаться с системой. Тестирование — не самый лучший способ это сделать (ибо (1) долгий, (2) не принесет ему значительной пользы (с учетом потраченного времени), (3) не принесет существенной пользы команде).
Еще предложите, чтобы он ознакомился со своим рабочим местом заняться уборкой помещения. А чтобы ознакомился с графиком рабочего времени — чтобы еду на всех готовил — зато будет знать – кто, когда предпочитает обедать
F>- написать небольшой участок кода, который не влияет на ф-ть всей системы. Это могут быть юнит тесты
Это повлияет на качество системы...
F>Что вы кстати подразумеваете под программистскими качествами?
Какой из него программист получится.
LMA>>А по Трудовому Кодексу, вроде, работодатель должен содействовать профессиональному росту сотрудников, не наоборот. F>А какой у него до это у него был рост, если это его первое место работы??
Не "до", а в процессе его работы.
F>У него и трудовой-то не должно быть
Если уже взяли, то должна. Хотя, сдается мне, Вы путаете профессиональный рост и служебный рост.
Re[10]: Приём на работу студентов. Как обнаружить безнадежны
Здравствуйте, _Jane_, Вы писали:
_J_>Да, времени много. Именно поэтому несколько лет назад в нашей компании отказались от этого способа подготовки. Иногда мне кажется, что зря.
Видимо перешли на лучшие способы?
LMA>>Единственное исключение — неформальный usability testing, но если он именно неформальный, то Вы должны доверять опыту тестирующего, а тут студент как раз подходит плохо, хотя "свежий глаз"... Но какой вывод можно сделать из этого о студенте как о программисте... да никакого, только как о пользователе. _J_>А вот и нет. Хороший программист — он не только пишет код, но и должен быть способен инвестигейтить проблемы. По тому, как человек ищет, исследует и описывает баги с точки зрения тестера, можно определить его абстрактную способность разобраться-исследовать.
А по тому, как он сделает code review, о таких его способностях плохо судить что ли? Разница в том, что при этом он затратит меньше времени, поработает с большим количеством кода, увидит доводы в защиту кода от более опытных разработчиков (т.е. научится большему).