LINUX.ORG.RU
ФорумTalks

что творят девелоперы

 


6

5

Решаю задачку на talentbuddy.co, а там...

Задача: смёрджить два отсортированных масива. Больше двух третей ответов в духе return sorted(a+b).

В задании посчитать корень числа без использования библиотечных функций один чувак как-то пропихнул ответ def sqrt(x): return 4 . Не знаю как у него это получилось. Видимо, поймал момент когда не было дополнительных тестов.

У меня есть смутное подозрение что люди неправильно понимают зачем это всё нужно. Вспомнился анекдот:

Недалёкое будущее. Программист:
-- Компьютер, сделай базу данных.
Исправленная версия:
-- Компьютер, сделай базу данных. Чтобы работала.
★★★★★
Ответ на: комментарий от true_admin

Нет, ты говоришь о том, что человек должен знать как работает механизм изнутри. Это - круто, но разве все ваше ООП и прочее не стремится сделать компоненты модулями? То есть ты дал массив, тебе его отсортировали. Ты знаешь что дать на вход и что получить на выходе. Что внутри - пусть там хоть китайские студенты онлайн руками твой массив сортируют. Так и тут. И, исходя из твоих слов, нужно знать как использовать сортировки, но НАСТОЯЩИЙ программист должен знать механизм и уметь воспроизвести его из спичек и желудей, а значит НАСТОЯЩИЙ программист должен знать, как работаю эти простейшие компоненты и, следовательно, смочь написать их на языке низкого уровня, при этом НАСТОЯЩИЙ программист должен еще и знать, как этот низкоуровневый язык работает а, следовательно, уметь написать все это в машинных кодах. Учтем еще и то, что НАСТОЯЩИЙ программист должен знать ту платформу, под которую он пишет досконально... Отсюда следует, что тот, кто не может на элементарной логике спаять используемые им функции по сути нормальным программистом быть не может.

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

ты говоришь о том, что человек должен знать как работает механизм изнутри

Не было такого. Я сказал что было задание написать sorted, это не то же самое что знать. Ну окей, я понял что это задача не для всех :). Предложи свои задачки для собеседования.

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

Я сказал что было задание написать sorted, это не то же самое что знать

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

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

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

Да ёлки-палки, я не говорю что я такой умный и больше всех знаю, просто я действительно(!) не понимаю этого «не можешь написать - иди в сад!». Компьютер это же всего лишь инструмент для решения задачи, разве нет?

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

Кроме этого ты сказал, что это примитив и элементарщина

Угу, только речь шла о мёрдже двух отсортированных массивов, а не о написании «полноценной» сортировки. Впрочем, написать какой-нить quicksort это тоже элементарная задача.

как вы можете писать ваши гномы-кеды-вебы-сапры

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

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

От области же зависит. Если проект-долгострой с хорошим руководством, то берем программистов. Если мультипроект с небольшим кодингом «чтобы работало», наоборот нафиг этих снобов-математиков, они в боевых условиях впадают в ступор и замыкаются. Если человек не может написать ретурн 4 чтобы сдать работу сейчас, а не через неделю — нахрен он такой нужен.

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

Смотря куда - если это какой-то проект, которому нужна огромная производительность и устойчивость, то может быть я бы и спрашивал все эти базовые вещи. Если мы говносайты лопатим на коленке по 10$\штука, при том что чем больше сделаем - тем больше заработаем, то попросил бы какую-нибудь форму сделать, что-нибудь из того, что постоянно используем, при этом-то я и буду смотреть, что он примерно хоть представляет что за функция ему нужна и использует библиотечные функции, чтоб любой мог легко подхватить его код. А ты бы как нанимал? Приходит к тебе студент после института, ты ему «пиши сортировку!». Приходит какой-нибудь прям ОГОГО-ДЕВЕЛОПЕР (ну я не знаю кто там кумиры у вас), ты ему «пиши сортировку!». ??

А вообще я никогда этого не касался, не знаю.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от arturpub

Если человек не может написать ретурн 4 чтобы сдать работу сейчас, а не через неделю — нахрен он такой нужен.

Дык а где гарантии что через неделю там будет нормальный ретурн? :)

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

Такая работа вся на саппорте — как понадобится, так и появится. Или ты такой говнокод решил без поддержки оставить? ;)

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

А ты бы как нанимал?

Смотря куда :). Но базовую планку я бы опускал ниже плинтуса.

Приходит какой-нибудь прям ОГОГО-ДЕВЕЛОПЕР (ну я не знаю кто там кумиры у вас), ты ему «пиши сортировку!». ??

Почему нет? А в чём, по-твоему, отличие между девелоперами?

По поводу собеседования. Я бы не отклонялся от стандартной процедуры. И эта процедура включает в себя написать код, рассказать как работает, оценить производительность итп. Потом задачки на базовые структуры данных. По крайней мере меня такое спрашивали на собеседованиях. Конкретно, в mail.ru просили перемножить матрицы, заодно поговорили о памяти в C итп. В касперском спрашивали как бы я написал tcp/ip с точки зрения буферов на уровне ядра (и это была позиция на сисадмина. Кстати, мой ответ их удовлетворил). В одной гейм-девелопмент конторе спрашивали как бы я написал балансировщик нагрузки, у них это была насущная проблема и не было свободных рук.

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

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

Приходит к тебе студент после института, ты ему «пиши сортировку!».

В институтах учат сортировки, тащемто. И не одну. И в нормальных без этого можешь не получить зачет/экзамен. То есть диплом.

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

как понадобится, так и появится

Дык я и говорю, есть риск через неделю вместо ретурн 4 увидеть, скажем, ретурн 5 :).

Или ты такой говнокод решил без поддержки оставить? ;)

Т.е. ты одобряешь, по сути, ручное исполнение кода? Я так и представил что при передаче неизвестных параметров функции у программера загорается красная лампочка, он быстро хачит код на лету чтоб никто не заметил :)

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

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

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

без проблем закончить любой вуз по айти

Можно. Но люди которые пять лет жизни спустили в мусорку нам не нужны :).

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

просили перемножить матрицы, заодно поговорили о памяти в C итп

Просто показатель того что ты не просто хеллоуворды с книжки понабирал и пошел к ним, а что тебе действительно интересна эта область (хотя бы что ты прочитал одну хоть одну книжку не для новичков)

как бы я написал tcp/ip с точки зрения буферов на уровне ядра

Тут смотря вообще на то, понимаешь ли ты как это работает или нет.

как бы я написал балансировщик нагрузки

А вот это уже интересный вопрос. Потому что тут тебя спросили не как работает что-то сделанное до тебя, а как ты бы сделал. Этим вопросом покрывается огромный спектр твоих знаний - опыт работы, знание принципов того как все работает, знание тех самых библиотечных функций - их плюсов и минусов, знание железа, знание специфики и еще over9000 всяких аспектов.

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

Просто показатель того что ты не просто хеллоуворды с книжки понабирал и пошел к ним, а что тебе действительно интересна эта область (хотя бы что ты прочитал одну хоть одну книжку не для новичков)

Это просто меня жалели, я до следующих вопросов не добрался :). Но это отдельная история. И всё же, разве это плохо попросить написать перемножение матриц? Я ведь мог ответить «возьмите готовую библиотечную функцию».

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

При мердже как бы параллельный обход получается. Меньший от двух следующих.

В отличии от низкоуровневых продуктов, конечный продукт такого рода обычно не является основой всего, а лишь инструментом. Поэтому бизнес-процесс предполагает множество контрольных точек, которые так или иначе будут пройдены. Если программа вернет 4 вместо 5, то оператор об этом скоро узнает и запостит это в саппорт. У тебя и так некоробочное по, в нем 100500 ошибок (ты же не надеялся, правда?), и то, что ты вручную добавил еще 10, большой роли не играет. Зато система запущена и работает. По опыту могу сказать, что система до запуска и через неделю — совершенно разные понятия :)

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

Если бы ты на собеседовании так сказал тебя надо было бы гнать взашей, потому что «Подчиненный перед лицом начальствующим...»(с).

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

Ну конечно можно. Но это не о программировании, а о том, как покупать зачеты у преподавателей.

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

А если нету желания всирать 3(5) лет, но есть желание учиться на программиста(и им стать, т.е учить всякий рокет science в виде графов, поисков и сортировок), где стоит учить это?

Т.е какой либо унифицированный курс в интернете, что бы не гуглить все по отдельности.

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

За всяким рокет сайнсом стоит раздел математики. Графы — одно, отношения — другое. Кто-то вон вечером фигуры в 3d пересекал — это еще другое. Сортировка и поиск обсосаны Кнутом. Скорее всего нет прямо такого места, где «рокетчиков широкого профиля» готовят, только если сам.

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

ретурн 4 чтобы сдать работу сейчас, а не через неделю — нахрен он такой нужен

золотые слова.

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

если второе то «sorted(a+b)» - достаточное решение

если первое но двухпутевое слияние - необходимое и достаточное.

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

Пять баллов!

- Вы не умеете писать сортировку пузырьком!
- А напишите пожалуйста вычисление квадратного уравнения на асме.
- Извините, вы слишком умны для нас, до свидания.
gh0stwizard ★★★★★
()
Ответ на: комментарий от alozovskoy

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

alex-w ★★★★★
()
Ответ на: комментарий от alozovskoy

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

да, всё верно

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

Ну ты пойми, тут сидят программисты, учились лет по 10-20, а ты выскакиваешь с такими речами. Сходи в больницу и скажи «да ну нафиг учиться медицине, можно купить в аптеке лекарство и прочитать инструкцию». Сходи в симфонический оркестр и скажи «да ну нафиг ходить в консерваторию, вон петь как Джастин Бибер и без этого можно, а он столько бабла зашибает». И ты действительно в чем-то будешь прав, но если твоим собеседникам не будет лень тратить время на подробное объяснение твоих заблуждений, то они по крайней мере посоветуют куда тебе пойти и не лезть не в свою компетенцию.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.