Re[7]: Как я провалил этой весной
От: divergo  
Дата: 13.07.11 04:24
Оценка: +1
G> А потом приходит на собеседование и выясняется, что он не способен за разумное время решить несложную задачку на написание sql скрипта.
Черт его знает, наверное это где-то в подсознании лежит, потому как обычно решаются (относительно)сложные задачи довольно быстро, а потом читаешь рсдн.
А на собеседовании, наверное, другое полушарие мозга работает.
Ну не идет оно, нет сосредоточенности.
Re[17]: Как я провалил этой весной
От: Undying Россия  
Дата: 13.07.11 04:34
Оценка: 1 (1) +1 -2
Здравствуйте, avpavlov, Вы писали:

A>Мы про СКЛ говорим? Всё нижеперечисленное применяется к кандидатам, которые заявляют в своём резюме хорошее знание СКЛ.


Активно использую Sql около 5 лет, но на большинство ваших вопросов я бы не ответил. Объясняю почему:

1) В вопросах цель подменена средством. Нет такой задачи применить join к таблице, есть задача на основании двух таблиц получить третью отвечающую определенным требованиям.

2) Я не стремлюсь запомнить и соответственно не помню тонкости sql, т.к. это совершенно не нужно для решения реальных задач. При решении реальной задачи всегда есть и таблички, для которых пишется запрос, и Sql viewer, и гугль, и ранее написанный код. Поэтому если что-то помнишь смутно или в чем-то сомневаешься, то уточнение занимает от силы пару минут.

3) В вопросах имеется куча экзотики, мало применимая или и вовсе бесполезная на практике.

select * from t1, t2

Я достаточно часто использую запросы вида select accounts.client_id, clients.client_name, accounts.login from accounts, clients Where accounts.client_id = clients.client_id и соответственно если меня неожиданно спросить может даже вспомню, что этот запрос возвращает (хотя могу и не вспомнить). Но я никогда не использовал выборку из двух таблиц без условия и не представляю себе задачу где бы это могло пригодиться.

select distinct * from t1, t2

Только сейчас узнал о существовании distinct'а в sql'е. Это, конечно, минус к моему sql'ому образованию, но решение реальных задач от этого никак не страдало, т.к. distinct это по сути урезанный по возможностям вариант group by.

A> На мой взгляд джойны это из разряда указателей в языке С, некоторые никогда не смогут понять как это работает (не знаю почему). Это азы СКЛ и если человек пишет в резюме 5 лет SQL и не может на эти вопросы ответить, то просто рискованно его брать.


Пять лет назад я мог ответить на вопросы по join'ам. Сейчас на память даже синтаксис не вспомню. Т.к. я не припомню ни одной реальной задачи, в которой left join или right join был бы реально нужен. Вместо inner join для меня удобнее и понятнее использовать выборку из двух таблиц со связыванием их через условие.

Так что может и быть join'ы это действительно тоже, что у указатели в C, но на практике они нужны точно также как указатели в C#.
Re[6]: Как я провалил этой весной
От: Undying Россия  
Дата: 13.07.11 05:52
Оценка:
Здравствуйте, divergo, Вы писали:

D>и на просьбу написать запрос(на бумажке) выдал WHERE field1 = NULL, ясное дело, должно быть IS NULL

D>На работе IS NULL писал автоматом не задумываясь, а здесь черт дернул

Это естетственно. То с чем постоянно работаешь уходит на уровень подсознания, но на собеседование подсознание не работает, т.к. обстановка не привычная. А сознание уже давным давно забыло как к этой информации обращаться. Поэтому требование на собеседовании точного синтаксиса это редкостный маразм.
Re[8]: Как я провалил этой весной
От: genre Россия  
Дата: 13.07.11 08:23
Оценка:
Здравствуйте, divergo, Вы писали:

G>> А потом приходит на собеседование и выясняется, что он не способен за разумное время решить несложную задачку на написание sql скрипта.

D>Черт его знает, наверное это где-то в подсознании лежит, потому как обычно решаются (относительно)сложные задачи довольно быстро, а потом читаешь рсдн.
D>А на собеседовании, наверное, другое полушарие мозга работает.
D>Ну не идет оно, нет сосредоточенности.

Конечно на собеседовании сложнее, ну так и задачи на собеседованиях обычно дают гораздо проще, чем встречаются в реальной жизни.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[21]: Как я провалил этой весной
От: Flying Dutchman Украина  
Дата: 13.07.11 08:34
Оценка: +1
Здравствуйте, avpavlov, Вы писали:


FD>>из которых правильный только последний (нормализованный).


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


Немного не так: нормализация — один из основных (или основной) методов проектирования БД (имеется в виду OLTP). Денормализация — один из методов улучшения производительности.

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

A>Хочешь продолжить спор — ступай в БД


Времени нет, так что на этом закончим .
Re[17]: Как я провалил этой весной
От: divergo  
Дата: 13.07.11 08:57
Оценка: 3 (1) +1 :)
Примитив.
А если бы Вам пришлось набирать водителей?,
Вы бы для начала попросили их проехаться на роликах, затем на велосипеде,
затем посадили в авто и спросили где педаль тормоза — а где сцепления
и какая последовательность переключения передач
до езды бы у вас не дошло — никто бы не прошел.
Re[18]: Как я провалил этой весной
От: SE Украина  
Дата: 13.07.11 09:03
Оценка:
Здравствуйте, Flying Dutchman, Вы писали:

A>>Когда закончили с листком (у действительно опытных это занимает менее 10 минут), далее просто проверяю способность кандидата рассуждать, спрашивать, обосновывать и т.д. — прошу спроектировать несколько таблиц, связи между ними, почему так, а не этак, какие операции будет удобно делать, а какие неудобно, что нужно сделать, чтобы и эти было удобно ну и т.д.


FD>Интересно, и как это структура таблиц может зависеть от "удобства выполнения операций" ?


Классический пример — хранение деревьев в реляционной БД. Различные способы имеют различные скорости модификации, поиска, перечисления и т.д.
Re[18]: Как я провалил этой весной
От: avpavlov  
Дата: 13.07.11 10:59
Оценка: 1 (1) -3 :)
U>1) В вопросах цель подменена средством. Нет такой задачи применить join к таблице, есть задача на основании двух таблиц получить третью отвечающую определенным требованиям.

Если ты не знаешь джойны, то ты не сможешь решить задачу, ни мою ни свою.

U>2) При решении реальной задачи всегда есть и таблички, для которых пишется запрос, и Sql viewer, и гугль,


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

U>3) В вопросах имеется куча экзотики, мало применимая или и вовсе бесполезная на практике.

U>select * from t1, t2

ОФИГЕТЬ

U>Т.к. я не припомню ни одной реальной задачи, в которой left join или right join был бы реально нужен. Вместо inner join для меня удобнее и понятнее использовать выборку из двух таблиц со связыванием их через условие.


ОФИГЕТЬ

U>Так что может и быть join'ы это действительно тоже, что у указатели в C, но на практике они нужны точно также как указатели в C#.


ОФИГЕТЬ

U>Активно использую Sql около 5 лет, но на большинство ваших вопросов я бы не ответил. Объясняю почему:


Вот собственно от таких как ты мы и защищаемся при наборе, твой пост добавлю в избранное, буду постить в ответ на "зачем спецу с 5летним опытом дают решать задачки".
Re[7]: Как я провалил этой весной
От: alzt  
Дата: 13.07.11 11:19
Оценка:
Здравствуйте, genre, Вы писали:

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

G>Какие выводы можно из этого сделать? У меня всего два получаются:
G>1. Он никаких скриптов на работе не писал, те врет.
G>2. каждый новый несложный скрипт потребует у него "пару дней чтобы вспомнить" (см сообщение рядом).

3. Ваша тестирование не адекватно.
Я уверен, что моих знаний sql хватит для большинства задач. Но при этом я его не использовал уже года 4, если не 5. Кроме простейшего select-а написать вообще ничего не смогу.
Естественно, если потребуется устраиваться на работу, где нужен sql — быстро "нагоню" знаний, пролистав книжку.

А если последнее время человек действительно этим sql занимался, то знания у него есть.
Re[18]: Как я провалил этой весной
От: DorfDepp  
Дата: 13.07.11 11:28
Оценка:
Здравствуйте, Undying, Вы писали:

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


Да не спорь ты с павловым — вы на разных уровнях развития находитесь, посему друг друга не понимаете.

Донести до другого человека всю совокупность твоего отношения к делу невозможно — можно только выбирать людей, полностью разделяющих твои взгляды, а не понимающих просто обходить стороной.
Re[8]: Как я провалил этой весной
От: genre Россия  
Дата: 13.07.11 11:46
Оценка:
Здравствуйте, alzt, Вы писали:

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

G>>Какие выводы можно из этого сделать? У меня всего два получаются:
G>>1. Он никаких скриптов на работе не писал, те врет.
G>>2. каждый новый несложный скрипт потребует у него "пару дней чтобы вспомнить" (см сообщение рядом).

A>3. Ваша тестирование не адекватно.

A>Я уверен, что моих знаний sql хватит для большинства задач. Но при этом я его не использовал уже года 4, если не 5. Кроме простейшего select-а написать вообще ничего не смогу.
A>Естественно, если потребуется устраиваться на работу, где нужен sql — быстро "нагоню" знаний, пролистав книжку.

A>А если последнее время человек действительно этим sql занимался, то знания у него есть.


тут все зависит от того какого уровня человек нужен. если писать несложные скрипты, то можно вообще не тестировать на знание sql — научиться писать несложные скрипты способен любой вменяемый программист. а если нужен человек способный писать реально сложные запросы то "нагоню" здесь работает не всегда. сколько ты будешь нагонять до уровня гуру?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[9]: Как я провалил этой весной
От: abch-98-ru Россия  
Дата: 13.07.11 12:09
Оценка:
__>>>и проведение собеседования это просто часто повод поболтать с кем-то, познакомиться поближе
A>>Мне только остаётся спросить — сколько собеседований ты в жизни провёл? Или ты теоретически рассуждаешь?
__>да штук 10-то провел. но причем тут я? у меня свои подходы, я сужу больше чисто по психологии и по увиденному в других компаниях когда собеседовали меня. иногда было видно, что я им нафиг не нужен, им просто охота поболтать.
как-то так?
Автор: elmal
Дата: 24.06.11
Re[19]: Как я провалил этой весной
От: hrensgory Россия  
Дата: 13.07.11 13:20
Оценка:
On 13.07.2011 14:59, avpavlov wrote:

> U>3) В вопросах имеется куча экзотики, мало применимая или и вовсе

> бесполезная на практике.
> U>select * from t1, t2
>
> *ОФИГЕТЬ*

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

--
WBR,
Serge.
Posted via RSDN NNTP Server 2.1 beta
Re[20]: Как я провалил этой весной
От: avpavlov  
Дата: 13.07.11 13:39
Оценка:
H>Приведите какой-нибудь примерчик жизненный для такого запроса, для чего
H>он у вас используется. А то с остальным в целом согласен, а вот тут не
H>могу сообразить для чего бы такой запрос мог понадобиться. Хотя с SQL
H>лет уж 10 минимум опыта, не вспоминается похожего.

ну, например, есть люди. У них 2 признака — пол и национальность. Построить отчёт с группировкой по полу и национальности, включая нулевые значения.


select
 breakdown.*
 ,count(*)
from
  (
    select gender.code gender, ethnic.code ethnic from gender,ethnic
  ) breakdown
  left join people on people.gender = breakdown.gender and people.ethnic = breakdown.ethnic
group by
  breakdown.gender
  ,breakdown.ethnic


Собственно, люди, которые "умеют объяснить" поведение с условием (select * from t1,t2 where t1.x=t2.y), но не могут объяснить поведение без условия (select * from t1,t2), практически в 100% случаев на вопрос "найти все значения т1 которые не встречаются в т2 без использования вложенных запросов" пишут "from t1,t2 where t1.x != t2.y" — потому что они тупо не понимают, что внутре у этой неонки происходит.

При этом считают, что задавать такие вопросы — западло
Re[19]: Как я провалил этой весной
От: avpavlov  
Дата: 13.07.11 13:41
Оценка:
DD>Да не спорь ты с павловым — вы на разных уровнях развития находитесь, посему друг друга не понимаете.
DD>Донести до другого человека всю совокупность твоего отношения к делу невозможно — можно только выбирать людей, полностью разделяющих твои взгляды, а не понимающих просто обходить стороной.

Если бы вы оба перестали воспринимать отказ в приёме на работу как оскорбление, то вам бы легче стало жить.
Re[21]: Как я провалил этой весной
От: avpavlov  
Дата: 13.07.11 13:44
Оценка:
A>
A>select
A> breakdown.*
A> ,count(*)
A>from
A>  (
A>    select gender.code gender, ethnic.code ethnic from gender,ethnic
A>  ) breakdown
A>  left join people on people.gender = breakdown.gender and people.ethnic = breakdown.ethnic
A>group by
A>  breakdown.gender
A>  ,breakdown.ethnic
A>


в запросе, кстати, есть ошибка
Re[21]: Как я провалил этой весной
От: hrensgory Россия  
Дата: 13.07.11 14:13
Оценка:
On 13.07.2011 17:39, avpavlov wrote:
> From: *avpavlov* </Users/12804.aspx>

, практически в 100% случаев на вопрос
> "найти все значения т1 которые не встречаются в т2 без использования
> вложенных запросов" пишут "from t1,t2 where t1.x != t2.y"

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

--
WBR,
Serge.
Posted via RSDN NNTP Server 2.1 beta
Re[22]: Как я провалил этой весной
От: avpavlov  
Дата: 13.07.11 14:17
Оценка:
H>Да ладно, не может быть чтоб такое писали.
H>Они наверное над вами глумятся просто

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

Многие люди в этом и других подобных топик думают "это легкотня, я это с пелёнок знаю и отвечаю ночью спросонья. Спрашивать такое — западло". А на самом деле они меряют по себе и не понимают, что есть куча других людей (с 5ним опытом, ага), для которых это ящик с неонкой.
Re[23]: Поверхностность и понимание
От: SergeCpp Россия http://zoozahita.ru
Дата: 13.07.11 15:17
Оценка:
Здравствуйте, avpavlov!

A>...есть куча других людей (с 5-ним опытом, ага), для которых это ящик с неонкой.


На концептуальность этой проблемы обратил внимание ещё великий Гаусс:

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

Из писем Гаусса Шумахеру 15мая 1843 года и 1 сентября 1850 года.

http://rsdn.ru/forum/philosophy/2310941.1.aspx
Автор: SergeCpp
Дата: 20.01.07


К сожалению, "что было, то и будет" (Екклезиаст)...
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
поверхностность понимание
Re[24]: Поверхностность и понимание
От: avpavlov  
Дата: 13.07.11 15:52
Оценка:
Товарищ, Вы на чьей стороне выступили?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.