LINUX.ORG.RU
ФорумTalks

Тестовое задание.


0

0

Крик души.

На собеседовании (принимаем на работу программиста) в качестве первого тестового задания предлагается написать функцию решения квадратного уравнения вида ax^{2}+bx+c=0 на любом известном ему ЯП (один даже на bash писал), то есть в качестве параметров функции передаются a,b,c, ну а возвращается есстественноо значения корней. Так сказать, чтобы понять способен ли этот человек в принципе "алгоритмизировать".

К моему величайшему удивлению, писали сколь-нибудь вразумительные вещи единицы. Дискриминант в зачастую на неотрицательность не проверялся, а про то, что при a=0 уравнение сообще не является квадратным вспомнил только один. Один раз человек вообще ушел в ступор, из которого его выводить приходилось принудительно.

В связи с этим вопрос: может мы от людей с ВО требуем что-то нереального? Такое повальное "ниасиливание" подобной задачки наводит на грустные размышления. А может человек получив такую фигню пытается найти подвох и на эти мысли расходуется вся его ментальная сила? А может быть теперь строчка "программист" в резюме этого не предполагает?

Помогите разобраться это мы такие, или жизнь такая...

★☆☆

Ответ на: комментарий от Macil

>Ты _это_ считаешь тупой однообразной работой?! Извини, тогда у нас разговор слепого с глухим.

Ну относительно Вашего поста я слегка гипертрофировал. Не принимайте это напрямую, я имел ввиду несколько другое:

Думаю, что Вы со мной согласитесь, что html-верстальщиком может быть школьник, тут особых талантов не нужно. То же верно и в отношении программирования интерфейсных приложений на дельфях, и т.п.

>Согласен, но если человек зная диффуры не умеет проектировать приложения, то грош ему цена как разработчику. И аргумент, что "знающий диффуры" aka "знающий математику" без труда сможет освоить проектирование приложений я не принимаю.

Обычно в команде есть разные специалисты: одни великолепно разбираются в проектировании приложений, другие в сетевых протоколах, третьи в написании "дров" для внешних устройств, задача других состоит в написании АЛГОРИТМОВ (о них речь), ну и контенгент вебпроектирования. Так вот, для написания алгоритмов нужны мозги (знание фундаментальных наук - один из показателей их наличия). Разумеется каждое перечисленное звено необходимо. Речь идет о том, как сложно найти алгоритмиста.

soomrack ★★★★
()
Ответ на: комментарий от Shaman007

>3 - чем отличается брандемауэр от файервола (любимый вопрос)?

Последний вопрос реально отжог - большая часть людей будут действительно терятся

Orlangoor ★★★★★
()
Ответ на: комментарий от soomrack

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

Sun-ch
()
Ответ на: комментарий от Pi

>ни одного русского термина. откуда парень, приехавший из смоленской деревни, будет такое знать? вы там вообще, москали, зажрались :)

если он знает английский и немецкий, то легко ответит

Orlangoor ★★★★★
()

> В связи с этим вопрос: может мы от людей с ВО требуем что-то нереального?

Скорее, вы не умеете формулировать ТЗ. В ТЗ должно быть чётко прописаны ВСЕ требования к программе, включая проверку области допустимых значений аргументов и пр.

И второе. Сейчас промышленностью гораздо больше востребованы именно индусобыдлокодеры - те, которые в математике ничего не смыслят, но к простейшему кодингу способны. Рынок труда быстро адаптируется к этим требованиеям.

anonymous
()
Ответ на: комментарий от Sun-ch

>Ну не знаю, по моему это просто не обсуждается. Как и вопрос, что человек, устраивающийся на работу прогером, должен уметь читать и писать.

А проверить все-таки не помешает. Время-то какое. Сейчас в СПб огромная нехватка математиков-программистов разной специализации, вот и лезут все кому не лень. А выбора нет, многие их берут. И из-за пофигизма к квалификации падает уровень подготовки. Одна фирма не могла полгода найти программиста способного запрограммировать фильтр Калмана, а з/п была не малельнкая. Ужас.

soomrack ★★★★
()

> В связи с этим вопрос: может мы от людей с ВО требуем что-то нереального? Такое повальное "ниасиливание" подобной задачки наводит на грустные размышления. А может человек получив такую фигню пытается найти подвох и на эти мысли расходуется вся его ментальная сила? А может быть теперь строчка "программист" в резюме этого не предполагает?

Да нет, просто посмотрите на уровень образования в современных школах. Программа нереально раздута, а контроль фактических знаний и умений страшно ущербен. И чего вы хотите?

anonymous
()
Ответ на: комментарий от soomrack

> Речь идет о том, как сложно найти алгоритмиста.

ничего себе..хорош алгоритм - 2 условия. Что же тогда будет если на циклы задача ... а если реккурсия 0_o ?

r_asian ★☆☆
() автор топика
Ответ на: комментарий от anonymous

>Скорее, вы не умеете формулировать ТЗ. В ТЗ должно быть чётко прописаны ВСЕ требования к программе, включая проверку области допустимых значений аргументов и пр.

Проверяется именно способность предвидеть все неожиданные варианты.

>И второе. Сейчас промышленностью гораздо больше востребованы именно индусобыдлокодеры - те, которые в математике ничего не смыслят, но к простейшему кодингу способны. Рынок труда быстро адаптируется к этим требованиеям.

См. мой пост. Просто рынок пустой, берут всех.

soomrack ★★★★
()
Ответ на: комментарий от Sun-ch

>Нет, это просто инженерная дисциплина, типа сопромата.

А зачем для ее освоения знать _высшую_ математику? "Просто так"? "В нагрузку"?

Про дискретную - в некотором смысле согласен. Хотя и она не очень применяется при использовании императивного стиля программирования.

Просто исторически сложилось так, что в СССР первые компьютеры были созданы для математических расчетов. Поэтому и программисты были обязаны в достаточно серьезных объемах знать математику. Со временем, выделился целый класс задач для решения которых математика применяется лишь опосредованно: в виде готовых решений (чисенные методы, экономическая статистика и т.д), когда нужно взять нужную формулу (зачастую из уже готовой библиотеки) и подставить свои условия. На первый же план вышли несколько другие аспекты... Собственно, поэтому теперь программистов (в исконном понимании) мало и требуются они редко. Сейчас нужны разработчики, которые могут на практике применять те или иные информационные технологии. Поэтому, когда принимается решения о принятии на работу разработчика от него требуются несколько иные качества и "тестировать" эти качества с помощью решения чисто математических задач - мягко говоря неоптимально.

Macil ★★★★★
()
Ответ на: комментарий от r_asian

>ничего себе..хорош алгоритм - 2 условия. Что же тогда будет если на циклы задача ... а если реккурсия 0_o ?

Рекурсия? Испытуемый это слово знает? Может еще спросить что такое полиморфизм, инкапсуляция, наследование... Я утрирую.

А в качестве тестового задания на изобретательность могу предложить следующее: определите является ли список закольцованным? Доступны только две операции: перемещение по списку и сравнение указателей.

Ответ: надо пустить два указателя с взаимнопростыми шагами (напр., один через 2, другой через 3). Если список закольцован, то однажды они совпадут. Ну как тут без дискретной математики?

soomrack ★★★★
()
Ответ на: комментарий от soomrack

>Так вот, для написания алгоритмов нужны мозги (знание фундаментальных наук - один из показателей их наличия).

Если нужен _алгоритмизатор_ то проверять его знания реализацией решения квадратного уравнения бессмыслено.

Главным образом, алгоритмизаор обязан уметь тестировать свои программы. А это чертовски сложно и в общем случа нерешаемо... Все-таки я решил, что автор данного поста берет на работу разработчика по привычке назвыая его "программистом".

Macil ★★★★★
()
Ответ на: комментарий от Shaman007

Шоман, тебе не стыдно такие вопросы задавать

>1 - что делает команда ls?

man ls

>2 - что находится в /etc/init.d?

cat /etc/init.d | less

>3 - чем отличается брандемауэр от файервола (любимый вопрос)?

офигенно полезный вопрос, сразу же выясняющий всю глубину знаний, ага

ты, друк, просто не умеешь проводить собеседования

theserg ★★★
()
Ответ на: комментарий от as33

> Что самое интересное - некоторые из таких товарищей оказывались вполне вменяемыми и обучаемыми людьми, тот же ccna потом сдавали.

> выводы...

Выводы просто - среди студенчества процветает долбое.изм, когда материал читается один раз за день до экзамена, а потом сразу забывается. Остальное время - подработка, водка, игрушки и бабы. Хоть сами студенты неглупые, просто свой моск они никак не используют.

anonymous
()
Ответ на: комментарий от r_asian

> предлагаешь устроить у нас своеобразный универ и выдавать дипломы гос. образца?

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

anonymous
()
Ответ на: комментарий от r_asian

> Человек, не проверивший дискиминант сегодня, завтра не проверит входные данные, искренне полагая, что "нормальный язык", способен заменить ему моск.

Напиши дословно, как именно формуировалось задание. Я бы на месте экзаменуемого 100% придрался. Если от меня требуют скрупулёзности - то я тоже вправе её требовать.

anonymous
()
Ответ на: комментарий от Macil

1) А на работу тестера Вы хотите нанять человека имеющего только знание стандартов?

2) На заметку: рынок программирования микроконтроллеров растет. Им нужны люди умеющие оптимизировать программу при нехватке мощностей. Однажы мне пришлось для какого-то контроллера писать алгоритм расчета ln. Памяти для данных было с два десятка байтов и еще немного на саму программу. Пришлось раскладывать по полиномам Чебышева и памяти на коэффициенты хватило и скорость была высокой и точность с избытком. Вот Вам математика. Многие инжинеры проектируют великолепные схемы, быстрые, надежные, а потом начинают считать экспоненту через ряд по определению. :(

3) М$ всегда охотилась за выпускниками мат-меха.

soomrack ★★★★
()
Ответ на: комментарий от stassats

> P.S. Под нормальными в обоих случаях подразумевался lisp ;)

И много реальных задач решается на лиспе?

anonymous
()
Ответ на: комментарий от Macil

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

Sun-ch
()
Ответ на: комментарий от Shaman007

>3 - чем отличается брандемауэр от файервола (любимый вопрос)?

Словарный запас кандидатов проверяете? Похвально.

anonymousI
()
Ответ на: комментарий от Macil

Хм.. а где они были созданы не для мат. расчётов?

AndreyKl ★★★★★
()
Ответ на: комментарий от as33

> могу заверить - тебя ждет масса удивительных открытий ;)

Я уже работаю. Одно - и самое удивительное открытие я сделал: в институте не дают полезных для работы знаний. Учат систематизировать знания - да, дают базу - может быть, но знаний, нужных работодателю - нет.

> Кстати, чем tcp от udp отличается сможешь сказать? :)

Так вот этот молодой препод нам как раз вкратце и пояснял. По-моему UDP не проверяет доставку пакета. Так?

zodiac ★★
()
Ответ на: комментарий от soomrack

>1) А на работу тестера Вы хотите нанять человека имеющего только знание стандартов?

Я немножко про другое. Лично меня бесит безосновательное приписывание математиков к "компьютерной элите". Вдвойне бесит когда первокурсниов заставляют на паскале исследовать какйю-то математическю функцию, всесто того чтобы учить их работой с файлами, организацией диалога с пользователем, стилю и культуре программирования... Собственно я работаю в области экономических ИС, и не очень сильно сталкиваюсь с математикой, требованием производительности и в принципе, даже надежности. А вот сделать так чтобы новые фичи не предусмотренные ТЗ легко и просто добавлялись, чтобы не росла "случайная" сложность проекта... создает для меня много проблем.

>рынок программирования микроконтроллеров растет

Все больше прошивок для МК пишутся на С. А тут уже и недалеко и до вещей, которые я привел выше.

Как я понял, в Вашей задаче с МК Вы провели аппроксимацию функции ln по Чебышеву. Всегда меня поражало, как просто реализуются сложные на вид вещи из численных методов... Лично для меня они - список удобных математических идиом, которые в чего можно посмотреть в справочнике, как я и писал предыдущем сообщении.

Macil ★★★★★
()
Ответ на: комментарий от Macil

>Если нужен _алгоритмизатор_ то проверять его знания реализацией решения квадратного уравнения бессмыслено.

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

Xellos ★★★★★
()
Ответ на: комментарий от anonymous

Microsoft seeks to hire a Software Architect for the Common Language Runtime organization. Deep experience with execution environments such as Smalltalk, Lisp, or the JVM preferred.

Senior member of multi-disciple technologists. Requires a background in LISP, AI, signal processing, and symbolic reasoning for Arroyo Sciences’ sensor fusion technology. Pasadena, CA.

Highly quantitative position "Your technical skills must include either Python, Smalltalk, Ruby, Lisp/Scheme." Pays well: $225K. New York, NY

LISP, AI, embedded software, experience is a plus for this Product Development and R&D team for Arroyo Sciences division. Pasadena, CA.

Хватит?

Sun-ch
()
Ответ на: комментарий от Macil

исследовать какйю-то математическю функцию, всесто того чтобы учить их работой с файлами, организацией диалога с пользователем,

Этому надо учить в ПТУ, а те которые функции научились исследовать, получают $225k :)))

Sun-ch
()
Ответ на: комментарий от Sun-ch

> Этому надо учить в ПТУ, а те которые функции научились исследовать, получают $225k

То есть? Поясни, если этому не учат в большинстве школ, то почему бы ВУЗу не уделить время на объяснение?

zodiac ★★
()
Ответ на: комментарий от Sun-ch

>Этому надо учить в ПТУ

Вот и иди преподом в ПТУ. Вырази, так сказать, свою гражданскую позицию.

Macil ★★★★★
()
Ответ на: комментарий от PAY

> Вообще собеседование это в определённой степени стрессовая ситуация.

Работа программистом в наше время --- это сплошь и рядом стрессовая ситуация. Приходит ПМ и говорит, что по политическим соображениям надо закончить проект на 20% времени раньше, чем в плане. И начинается гонка. Если человек в стрессовой ситуации лепит полную лажу, то... срок исполнения увеличивается на 20% от плана.

И вообще, стрессовость собеседования --- от неуверенности, а неуверенность --- от незнания. Если ты знаешь и уверен в своих знаниях, то собеседование проходит абсолютно спокойно. Для аутотренинга могу посоветовать еще рассматривать собеседование симметрично относительно участвующих сторон --- кандидат тоже, в некотором роде, собеседует работодателя --- у него ведь не одно предложение и он должен выбрать (часто не только из соображений оплаты).

watashiwa_daredeska ★★★★
()

Вы случайно не телепатические способности кандидатов проверяете?

Человек за 4 года например может забыть формулки и загогулинки. Постоянно держать в голове с каждым годом увеличивающиеся объемы знаний по всем областям просто не реально - их иногда таки нужно освежать ибо мозг волей-не-волей включает гарбэйдж коллектор.

Не надо пожалуйста говорить про то что это якобы всем известная задача. Вот скажите вы помните правила правописания по русскому языку - тоже надо сказать базовые знания. А кто их вообще помнит после 4-5 лет не пользования? Так и тут, вам претендент может ответить как квиксорт работает но формулы вычисления не вспомнит.

А вы их в идиоты уже записали.

anonymousI
()
Ответ на: комментарий от zodiac

> Поясни, если этому не учат в большинстве школ, то почему бы ВУЗу не уделить время на объяснение?

Это элементарные требования к оформлению работы. По хорошему, это надо один раз объяснить и контролировать в выполненных лаб. работах. Уделять много времени на обучение этому недостойно человека, получающего высшее образование. Другое дело, что квалификация преподавательского состава по ИТ тематикам в подавляющем большинстве случаев неудовлетворительна.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

Стресс у разработчика будет только если он начинающий, а если нет - то будет работать как и работал. И правильно сделает. Ибо быстро, хорошо и дешево не бывает, выберите любые два.

Нефик бесплатно рвать на себе попу в сверхурочные и выходные чтобы у манагера перед начальством были красивые столбики на очередной презентации.

anonymousI
()
Ответ на: комментарий от zodiac

>По-моему UDP не проверяет доставку пакета. Так?

ага, вроде.нам тоже не так давно рассказывали :-)

(*размышления*)

Да и квадратное уравнение решить смогу, делов-то.

c, python, pascal - без разницы...

==> Значит все у меня не так плохо, как казалось :-D

(*размышления*)

meshkcah
()
Ответ на: комментарий от Shaman007

>2 - что находится в /etc/init.d?

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

dn2010 ★★★★★
()
Ответ на: комментарий от Sun-ch

> Что предлагаешь, чтобы профессор тебе во время лекции рассказывал

Нет, но какой-нибудь man top с примерами было бы кстати...

zodiac ★★
()
Ответ на: комментарий от zodiac

>Так вот этот молодой препод нам как раз вкратце и пояснял. По-моему UDP не проверяет доставку пакета. Так?

UDP это протокол не устанавливающий канала связи. Банально для отправителя нет никакой информации о пакетах. Поэтому они могут приходить в разнобой или вообще не доставляться.

Зачем надо - более быстрый по доставке, хорош для потокового видео и аудио и вообще приложений где потеря пары пакетов не критична.

Вообще советую сделать так - взять словарь компутерных акронимов и начинать их по порядку для себя выяснять и расшифровывать. Интересные вещи узнаете ну и повротите что подзабыли перед собеседованием/резюме.

anonymousI
()
Ответ на: комментарий от meshkcah

>По-моему UDP не проверяет доставку пакета. Так?

Будь я преподом, на экзамене за такой ответ на некорректно поставленный вопрос задолбал бы дополнительными вопросами типа "на каком уровне модели OSI находится протокол PPP"

Macil ★★★★★
()
Ответ на: комментарий от zodiac

> Учат систематизировать знания - да, дают базу - может быть, но знаний, нужных работодателю - нет.

Жизнь слишком разнообразна --- одному работодателю нужны одни знания, другому --- другие. На всех не напасешься. Для знаний, которые более менее устаканились есть ПТУ, а в ВУЗ'е готовят людей, способных анализировать окружающий мир и _создавать_ новое знание.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от Macil

>Я немножко про другое. Лично меня бесит безосновательное приписывание математиков к "компьютерной элите".

Знающий человек такое не сделает. Просто с некоторыми задачами математики справляются лучше. С другими --- вообще не справляются.

>А вот сделать так чтобы новые фичи не предусмотренные ТЗ легко и просто добавлялись, чтобы не росла "случайная" сложность проекта... создает для меня много проблем.

Конечно, тут важно знать уже разработанные стандарты проектирования (а их же выше крыши). Умение предсказать возможные направления роста проекта, умение систематизировать, отделять теплое от мягкого, разделять одну большую задачу на много маленьких и независимых. Если Вы это делать умеете, то зачем Вам математика? Просто раньше, когда обучение и контроль за ним был на уровне человек с ВО был обязан это уметь. Диплом как бы подтверждал это.

>Как я понял, в Вашей задаче с МК Вы провели аппроксимацию функции ln по Чебышеву.

Точно, часть вычислений была сделана заранее на нормальном комп. (т.е. посчитаны оптимальные коэффициенты).

>Всегда меня поражало, как просто реализуются сложные на вид вещи из численных методов... Лично для меня они - список удобных математических идиом, которые в чего можно посмотреть в справочнике, как я и писал предыдущем сообщении.

Точно. Только во-первых, надо знать куда смотреть, а во-вторых, понять что там написано :). Неплохо бы еще понять границы применимости. Ну и наконец это была самая простая задача из всех, которые я решал. Тем не менее она кое-что иллюстрирует. Кое-для чего нужно самому конкретизировать теоретичесие математические схемы.

>Все больше прошивок для МК пишутся на С. Точно, только вот многие С уже не изучают, скорее С++, java,... А уж про оптимизацию программ я и не говорю.

soomrack ★★★★
()
Ответ на: комментарий от WerNA

>>А зачем? В нормальных языках есть комплексные числа. 

> это если ты объявил что корни complex =)

Я ж говорю в нормальных, а не во всяких фортранах 8)

stassats ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

> Другое дело, что квалификация преподавательского состава по ИТ тематикам в подавляющем большинстве случаев неудовлетворительна.

К чему я и клоню. Живой пример: лабораторная, задание: смоделировать генератор случайных чисел. Принимают два препода, один помоложе и будет вести у нас потом ассемблер, второй старенький. Первому сдать списанную задачу невозможно, ибо он смотрит, понимаешь ли ты, что написано в коде. Второму можно сдать чего угодно, хоть код блокнота... но будет спрашивать по теории.

zodiac ★★
()
Ответ на: комментарий от Macil

> на каком уровне модели OSI находится протокол PPP

Я как раз этот предмет ботаю ) выкуси: на уровне звена передачи данных

zodiac ★★
()

> А может человек получив такую фигню пытается найти подвох и на эти мысли расходуется вся его ментальная сила?

Именно так и есть обычно. Меня на одном собеседовании просили тупенький дифур первого порядка решить, я на него минут 20 угробил, пытаясь сообразить, где же тут мина зарыта. Там же протормозил на задачке, решаемой в ОДНО арифметическое действие - не мог поверить, что в инвест. банке могут ТАКОЕ спрашивать.

anonymous
()
Ответ на: комментарий от soomrack

>Точно, только вот многие С уже не изучают, скорее С++, java,... А уж про оптимизацию программ я и не говорю.

Ах, да! Как же я про AVR32 забыл? Там уже аппаратно исполняется байт-код JVM. И линукс там работает ;)

А вообще, я главным образом про то, что путей к Просветлению много. И форсированное изучение математики без разбора "а вдруг понадобится" далеко не единственный путь.

Лично я сам пришел к необходимости изучать функциональное программирование... и в учебнике по дискретной математике как-то сразу стало все понятно... и вообще иногда просто сижу с открытым ртом: "Как это вообще работает", а оказывается работает.

Macil ★★★★★
()
Ответ на: комментарий от Orlangoor

> Во время обучения математика казалась им не особо нужной

Ну и кому они нужны, такие неумные?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.