Прочитал пост Малобукова про IQ и почему-то вспомнил как я интервьюирую желающих поработать в нашем учреждении. Есть у меня три-четыре задачки-вопроса, на которые, как правило, никто из приходящих ответа не знает, поскольку готовятся они по верхним линкам, выпадающим из гугла на вопрос "какие вопросы задают на интервью". И мне очень интересно как себя ведет человек, не знающий ответа и мечущийся у себя в голове в ужасе от этого.
И когда кто-то из претендентов клеймает себя как думающего out of box, я потираю под столом руки, сладко улыбаюсь и предлагаю показать оное умение, ответив на вот такой простенький вопрос...
Дело в том, что мне и правду нужны думающие, а выполнять какие-то рабочие шаги по подсказке 1-2-3 я их и сам научу, дело нехитрое.
А еще приходят специалисты по базам данных, которые объявляют свои знания proficient. Этим я задаю и вовсе простой вопрос - напишите мне в одну строку процедуру, которая при засаживании в нее аргументом текущего дня будет выдавать последнее число месяца. То есть, если ей дать 21 сентября 2018, то она выдаст на выходе 30. Если задать 11 декабря 2018 - 31, а если задать, скажем, 3 февраля 2020, то она выдаст 29. Ну, и так далее. Какого я только бреда не наслушался за эти годы от этих proficient out of box спецов. Но это вовсе не значит, что они тупые люди. Может даже они могут сыграть всю девятую симфонию Бетховена наизусть, а я - нет.
P.S. Работал со мной в BBN Planet Джаш Пюринтон. Он в одну строку Пёрла такое писал, что я день разбирался потом что эта его строка делает и как.
И когда кто-то из претендентов клеймает себя как думающего out of box, я потираю под столом руки, сладко улыбаюсь и предлагаю показать оное умение, ответив на вот такой простенький вопрос...
Дело в том, что мне и правду нужны думающие, а выполнять какие-то рабочие шаги по подсказке 1-2-3 я их и сам научу, дело нехитрое.
А еще приходят специалисты по базам данных, которые объявляют свои знания proficient. Этим я задаю и вовсе простой вопрос - напишите мне в одну строку процедуру, которая при засаживании в нее аргументом текущего дня будет выдавать последнее число месяца. То есть, если ей дать 21 сентября 2018, то она выдаст на выходе 30. Если задать 11 декабря 2018 - 31, а если задать, скажем, 3 февраля 2020, то она выдаст 29. Ну, и так далее. Какого я только бреда не наслушался за эти годы от этих proficient out of box спецов. Но это вовсе не значит, что они тупые люди. Может даже они могут сыграть всю девятую симфонию Бетховена наизусть, а я - нет.
P.S. Работал со мной в BBN Planet Джаш Пюринтон. Он в одну строку Пёрла такое писал, что я день разбирался потом что эта его строка делает и как.
no subject
Date: 2018-09-21 12:42 pm (UTC)no subject
Date: 2018-09-21 12:52 pm (UTC)no subject
Date: 2018-09-21 08:41 pm (UTC)no subject
Date: 2018-09-24 01:36 pm (UTC)no subject
Date: 2018-09-24 02:54 pm (UTC)Кстати, в микрософтовcком сиквеле начиная с 2012 кажется версии есть функция которая по дате возвращает последний день месяца.
no subject
Date: 2018-09-24 03:08 pm (UTC)no subject
Date: 2018-09-24 03:40 pm (UTC)Загнать эти строки тупо в невидимый комбобокс и приказать сортировать. Экономия в скорости выполнения на циклах интерпретатора покрывала с лихвой наличие дололнительного элемента на форме.
Я как то даже однажды на интервью про это рассказал. Не поверили...
Заинтересованно
Date: 2018-09-21 12:44 pm (UTC)CASE WHEN по костяшкам пальцев, с обработкой високосного года, и всё в одну строчку?
Разбить дату на число-месяц-год, увеличивать число от 27 до тех пор, пока конвертация обратно в дату не вернёт ошибку, и вернуть последнее число, где ещё не было ошибки?
Заранее заполненную LastDayOfTheMonthLookupTable где первичный ключ год и месяц?
Класс LastDayOfTheMonthAbstractFactory, унаследованный от летоисчисления, чтобы работал не только в григорианском календаре?
Очень просто
Date: 2018-09-21 12:51 pm (UTC)На Информиксе это выглядит примерно так
SELECT TO_CHAR((EXTEND (EXTEND (today, YEAR TO MONTH) +1 UNITS MONTH || "-01", YEAR TO DAY) -1 UNITS DAY), '%m-%d-%Y') FROM dummy;
Re: Заинтересованно
Date: 2018-09-21 01:14 pm (UTC)create or replace function get_days_of_a_month(a_date IN date) returns int as $_$ select cast(date_part('days',date_trunc('month',a_date) + cast('1 month' as interval) - cast('1 day' as interval)) as int) $_$ language sql;а то и вовсе что-то реально 1-line при помощи ораклового , только все это сложно, и вроде несложно ищется :(
no subject
Date: 2018-09-21 01:09 pm (UTC)no subject
Date: 2018-09-21 01:11 pm (UTC)no subject
Date: 2018-09-21 01:21 pm (UTC)Небось, при интервьюировании, ещё и улыбаетесь располагающе!?))
no subject
Date: 2018-09-21 01:22 pm (UTC)no subject
Date: 2018-09-21 04:09 pm (UTC)no subject
Date: 2018-09-21 01:46 pm (UTC)no subject
Date: 2018-09-21 01:59 pm (UTC))))
no subject
Date: 2018-09-21 02:09 pm (UTC)