LINUX.ORG.RU
ФорумTalks

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


0

0

Крик души.

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

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

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

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

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

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

Никогда нельзя путать понятия "тупость" и "невежество". Тупость - это статическая характеристика и является либо врождённой особенностью, либо результатом формирования мозга при бедности нагрузок на него в детстве (первый случай - шимпанзе: сколько её ни учи, а мозг у неё ВРОЖДЁННО слабее; второй - Маугли: мозг с хорошим потенциалом, но возможность развить этот потенциал НАВСЕГДА упущена). А невежество может быть результатом лености при вполне способном мозге. Если человек ТУП, то брать его на творческую работу бесполезно, никакая дрессировка не поможет. А вот в случае невежества надо смотреть дальше: если человек не туп, то от него многого можно добиться, надо лишь как-то заставить его работать головой.

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

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

Так Вы имеете ввиду второй уровень? Плохо, плохо, молодой человек вы знаете предмет... Придете на пересдачу.

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

> А какое отношение математика имеет к программированию?

Опять путаем кодинг с программированием? То, что ты там клепаешь на php, - это, скорее всего, кодинг.

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

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

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

Так вот, в таких условиях надо уметь быстро оценивать основные параметры (память, трудоемкость) по порядку величины на ходу. Для этого у разработчика должны от зубов отскакивать (в два часа ночи после пол-литры) характеристики основных алгоритмов и структур данных. Если же кандидат даже не знает что означает запись O(n) (а таких большинство), то...

Задачки из жизни GUI-разработчика: надо определить попадание мышкой в отрезок прямой +-n пикселов, определить попадание мышкой в эллипс, оси которого не параллельны Ox, Oy. И что? Для такой элементарщины в проекте должен быть еще один сотрудник на зарплате? Или всё-таки программист должен владеть элементарной математикой даже в стрессовых ситуациях? Экзамены-то в ВУЗе он как-то сдавал.

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

Ты издеваешься? Если человек не знает что такое ls, откуда он знает про man?

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

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

Это не путь, это тупик. По моему личному мнению основная разница (и проблема) современного высшего образования заключается в том, что школьник, который приходит учиться, не имеет цели в жизни. Он учится просто чтобы окончить университет. В Швеции большинство абитурьентов конкретно знают куда они хотят идти РАБОТАТЬ. И стремятся получить образование исходя из этого.

>Лично я сам пришел к необходимости изучать функциональное программирование...

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

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

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

У меня - ничего. Слака, итить :)

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

Языком. В первом - немецкий, во втором - английский. Перврод на русский - одинаковый :) Только не "брандемауэр", а "брандмауэр". Brand - пожар, Mauer - стена, забор.

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

Ну блин зато тут на ЛОРе все сплошные звезды. Каждый математик и физик и супер программист.

Есть такая банальная весч как распределение приоритетов. Если у вас в семестре 7 разных предметов из которых 4 - это матан, алгебра, дифуры и физика а остальные худо-бедно программирование и учитесь то вы на программиста, то извините не очень както хочется вычислять какое-нибудь скучное расстояние в целиндрической топологии. А хочется написать чего-нибудь эдакого.

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

>А хочется написать чего-нибудь эдакого.

Интересно, чего?

>Есть такая банальная весч как распределение приоритетов. Если у вас в семестре 7 разных предметов из которых 4 - это матан, алгебра, дифуры и физика а остальные худо-бедно программирование и учитесь то вы на программиста.

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

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

> В Швеции большинство абитурьентов конкретно знают куда они хотят идти РАБОТАТЬ

Швеция - страна победившего рабства 0_o ???

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

>Швеция - страна победившего рабства 0_o ???

Когда я был там, мне показалось, что они построили коммунизм :).

Впрочем целеустремленность абитурьентов есть не только в Швеции, это характерная черта европейских университетов.

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

Я уже отучился. И специальность не математик-программист. К сожалению математику преподавали слишком мнгого и слишком сжато и как результат ее никто не помнит. Банально не все вспоминают на защите что такое кривая гаусса и чего она такого интересного дает в статистике.

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

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

> Впрочем целеустремленность абитурьентов есть не только в Швеции, это характерная черта европейских университетов.

С каких это пор европейское образование пример для подражания???

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

>что школьник, который приходит учиться, не имеет цели в жизни

Ну у меня цель была... Кстати, может на собеседовании нужно спрашивать какая цель у претендента? О! Идея!

>И стремятся получить образование исходя из этого.

Точно, когтяим выцарапывал.

>Хорошо бы было если в этом случаи Вы могли бы прийти к шефу и сказать

Не бередите душу... Хорошо было бы если бы я мог прийти к шефу и сказать: "не до$%# до меня вопросами сопровождения опердня, решением пользовательских проблем и обеспечением работоспособности сети"

Именно поэтому мои задачи написать приложение быстро, без ошибок и с возможностью дальнейшей реюзабельности. И поэтому пришлось столкнуться с многими положениями XP т.к. сам программирую в экстримальных условиях... И кроме того, разочаровался в ООП и решил посмотреть что такое ФП. Результаты пока удовлетворительные.

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

Хотя, судя по всему теперь и нам похвалиться за редким исключением нечем :-(

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

>Кстати, может на собеседовании нужно спрашивать какая цель у претендента? О! Идея!

Баян. Во всех анкетах есть опросник "расставьте приоритеты от 1 до 10" .

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

>С каких это пор европейское образование пример для подражания???

Не образование, а целеустремленность абитурьентов. :)

Хотя и из ПРОЦЕССА образования тоже можно было бы кое-чего позаимствовать. Например модульность курсов (как в Австралии): сама программа состоит из набора модулей. Каждый модуль дает конкретные знания, по матанализу, по работе с mySQL, по проектированию бурильных установок и т.д. Из этих мало независимых модулей, каждый из которых учит теории и решению конкретной задачи составляется программа. Например: инжинер-математик, экономист-математик, программист-геолог и т.д. Плюсы в том что Вас учат теории и решению конкретных задач с помощью этой теории в смежных областях.

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

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

Зайдите, например, на сайт интела, транзаса (питерская комп.), в конце концов, на сайт M$,

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

Фигня. Образование должно быть не модульным, а целостным. Чтобы было понятно, зачем нужны диффуры в курсе "разработка БД". Этого в достаточной степени не было у нас, и нет у них.

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

>Точно, когтяим выцарапывал.

Да, я тоже.

>Не бередите душу... Хорошо было бы если бы я мог прийти к шефу и сказать: "не до$%# до меня вопросами сопровождения опердня, решением пользовательских проблем и обеспечением работоспособности сети"

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

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

>Фигня. Образование должно быть не модульным, а целостным. Чтобы было понятно, зачем нужны диффуры в курсе "разработка БД". Этого в достаточной степени не было у нас, и нет у них.

Модули должны быть взаимосвязанными! Если Вам читают дифф.уры и БД, то надо применять одно в другом. Нельзя модули перетасовывать абы как. В этом и сложность составления таких курсов. Зато система очень гибка и легко модифицируется под запросы рынка.

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

> то извините не очень както хочется

Студент - туп. Не имеет права хотеть или не хотеть, чтоб потом не кусать себе локти за то, что не выучил матан, потому что хотелось всякий бред покодерасить.

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

Неправда ваша. Яндекс - раз, за дальнейшими сходите на rsdn в раздел работа.

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

>Если же кандидат даже не знает что означает запись O(n) (а таких большинство)

Простите, не верю ни разу, что большинство.

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

> не видно предложений по специальности математик-программист

Не там ищете. В любой банк загляните, да?

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

>>Если же кандидат даже не знает что означает запись O(n) (а таких большинство)

>Простите, не верю ни разу, что большинство.

Большинство. А из тех кто "знает" вряд ли много отличат О(n) от o(n), а уж P и NP...

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

> Говорят, что они даже сортировку пузырем делали. :(

А чё, вы сортировку каждый раз по новой изобретаете??

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

> Одна фирма не могла полгода найти программиста способного запрограммировать фильтр Калмана, а з/п была не малельнкая.

Неужели нет готовых решений???? Фильтр-то известный.

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

>А чё, вы сортировку каждый раз по новой изобретаете??

В том-то и дело, что они каждый раз изобретали, и не что-нибудь, а пузырь, с его сложностью n*(n-1)/2.

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

>Неужели нет готовых решений???? Фильтр-то известный.

Гм. его нужно пограммировать под конкретную задачу. Фильтр известный, теория построена большая, а настройка параметров? А спецификации? А проектироавние на его базе других фильтров?

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

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

>и не что-нибудь, а пузырь, с его сложностью n*(n-1)/2.

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

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

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

> Рекурсия? Испытуемый это слово знает?

Да, это должен знать.

> Может еще спросить что такое полиморфизм, инкапсуляция, наследование...

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

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

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

А как ты предлагаешь ему это проверять?

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

> Как следствие --- перестаем вылизывать с точностью до такта и до байта

Если вы занимались этим в условиях отсутствия конкурентов, то вы, по-моему, просто идиот. Перед вами - рынок, который НИКЕМ не занят, на котором вы можете гребсти бабло лопатой, а вы хернёй маетесь. В этом случае надо как можно скорее выпускать РАБОТОСПОСОБНЫЙ продукт, а уже потом заниматься его оптимизацией.

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

> Ну, и перекуры сокращать надо :)

Всё это годится для аврала длительность пара недель, не более. Потому что потом придёт расплата - люди выдохлись и будут долго приходить в себя.

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

>> У меня - ничего. Слака, итить :)

> Садись, не зачет.

Как я понимаю, ты МОЕЙ СЛАКЕ незачот поставил за то, что у неё нет этого каталога? Пойду сообщу ей - авось коркнется с горя (хотя до сих пор она этого не делала - не шляпа какая, прости господи).

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

>Зато система очень гибка и легко модифицируется под запросы рынка.

Да нифига. Либо у нас модули, глубоко пустившие корни друг в друге, либо у нас гибкая система.

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

>>Простите, не верю ни разу, что большинство. >Большинство. А из тех кто "знает" вряд ли много отличат О(n) от o(n), а уж P и NP...

o(n)???

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

> Например модульность курсов (как в Австралии): сама программа состоит из набора модулей. Каждый модуль дает конкретные знания, по матанализу, по работе с mySQL, по проектированию бурильных установок и т.д. Из этих мало независимых модулей, каждый из которых учит теории и решению конкретной задачи составляется программа. Например: инжинер-математик, экономист-математик, программист-геолог и т.д. Плюсы в том что Вас учат теории и решению конкретных задач с помощью этой теории в смежных областях.

Ага, учат не теории, а тому, что нужно конкретно для Австралии, по мнению государства, в данный момент для страны, вот у нас, где я учусь (Норильский индустриальный институт) тоже учат металлургов, горняков и автоматчиков (я учусь по специальности "электропривод и автоматизация технологических процессов и производственных комплексов").

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

>Ага, учат не теории, а тому, что нужно конкретно для Австралии, по мнению государства, в данный момент для страны, вот у нас, где я учусь (Норильский индустриальный институт) тоже учат металлургов, горняков и автоматчиков (я учусь по специальности "электропривод и автоматизация технологических процессов и производственных комплексов").

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

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

> 1 - чтo дeлaeт кoмaндa ls?

Показывает файлы и их аттрибуты.

> 2 - чтo нaxoдитcя в /etc/init.d?

скрипты запуска/остановки/etc демонов

> 3 - чeм oтличaeтcя бpaндeмayэp oт фaйepвoлa

названием.

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

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

Запомнить указатель на вход в список. После каждого шага -- сравнивать. Если есть совпадение, то список закольцован. ИМХО, это проще.

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

Согласен. Причём решение будет найдено за меньшее количество шагов.

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

>Запомнить указатель на вход в список. После каждого шага -- сравнивать. Если есть совпадение, то список закольцован. ИМХО, это проще.

Это не проще список может быть не ПОЛНОСТЬЮ закольцован: 1-2-3-4-5-6-7-5

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

> Запомнить указатель на вход в список. После каждого шага -- сравнивать. Если есть совпадение, то список закольцован. ИМХО, это проще.

А если кольцо начинается с элемента N, где N!=0?

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

Тут тебе не ответят, слишком простой вопрос.

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

>Это не проще список может быть не ПОЛНОСТЬЮ закольцован: 1-2-3-4-5-6-7-5

Посыпаю голову пеплом и ищу ближайшую апстену :(

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

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

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

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