Засорять как раз и не нужно. Но вести себя адекватно — это очень нужно. По моим личным ощущениям, хорошие программисты лучше решают примеры такого быдлокода. А люди которые психуют от таких вопросов просто боятся вскрытия тайн получения своей лычки синиора. И потом с такими людьми тяжелей на проекте, ибо они и атмосферу портят да ещё и медленно и неэффективно решают задачи.
Вы хотите сказать, что процедурного кода уже в мире не осталось и его не приходится оптимизировать?
Тут важен совсем не ответ кандидата, а его реакция. Посмотреть, как ведёт себя человек в стрессовых ситуациях, в частности, когда не понимает как будет работать код (а это с каждым может случиться). Кто-то «встала и ушла», кто-то просто «завис» и затем честно и спокойно сказал «не уверен, не знаю как сортировка будет работать по смешанным ключам», а кто-то даже слышал про аргумент $sort_flags который по-умолчанию SORT_REGULAR и может объяснить, что такая сортировка поставит 1 после a, но 0 перед x (хотя такие кандидаты не попадались, да как я уже сказал, это и не ожидается). С сеньорами это большая проблема, каждый считает что если он в бодишопчике 5 лет «отсидел», то он уже мега-стар и все ему должны. В скандинавских странах, где холивары и разборки на работе не приемлимы (такой тут менталитет неконфликтный) на первый план выходят софт-скиллы (насколько приятно с человеком работать), а уже за этим следуют его проф знания.
+ Меня бы тоже возмутило, если бы такое задали мне), но попробовал бы проверить свои знания (и заодно проверить сообеседующего) Вообще этот вопрос специально для тех «звёзда-дартаньянов» которые заявляют что они «твой пыхапэ круче Расмуса знают» и вообще, «для вас это большая честь, что я спустислся на собеседование в ваше стойло»
Код выше для джуно-мидлов. Для «синьоров» больше общаемся по паттернам и антипаттернам и примеры кода более каверзные, типа
$a = 0.1+0.7;
echo floor($a*10);
output? __________
Или такое вот, (обратите внимание на округление глаз «синиора»):
$some_array = array (0 => 1, ’x’ => 1, 2 => 1, ’a’ => 1, 1 => 1, ’z’ => 1);
ksort($some_array);
echo(join("", array_keys($some_array)));
output? __________
Что плохого в статическом кешировании? Кстати, засчитывается за плюс, если кандидат правильно отвечает, но говорит что такой код не приемлим для реального проекта. И два плюса, если кандидат не плюётся на примеры кода, а спокойно и правильно отвечает, замечая, что люди есть разного уровня, а плохой код и слабая архитектура — частые последствия быстрого выхода MVP на рынок и сложностей найма персонала.
Ни один из этих примеров не прошёл бы ревью на нашем проекте. Тем не менее, как уже обсуждалось, хорошо написанный код может читать и понимать любой
дегенерат
умный
Рад, что вы увидели, куда расти =)
Вопросы нужно писать свои, которые отражают частые проблемы на вашем проекте. Помогает увидеть, разбирается ли человек в _основных_ моментах. И да, как уже заметили, также позволяет понять, насколько логически грамотно рассуждает человек.
Про SOLID и паттерны с джунами поговорить не получается.
Вобщем корелляция знаний/самооценки в мире PHP неплохо отражены на диаграмме raw.githubusercontent.com/...e_learning_curves/php.png
Если хочется поговорить, то OOP и паттерны (SOLID).
Часто просто даю распечатку вопросов, и мы обсуждаем, что выведется и почему..
$something = strval(TRUE-TRUE);
echo empty($something);
output? __________
var_dump('0' != 0);
output? __________
$a = '11';
$b = 'a';
$c = 2;
echo ($a < $b) . " " . ($b < $c) . " " . ($c < $a);
output? __________
function trick() {
static $var = 1;
echo $var++;
unset($var);
}
array (trick(), trick());
output? __________
$j=30;
$k=0;
$k=$j++/++$i;
$output = $i . " " . $j . " " . $k . " ";
output? __________
...
Коль уж впрёгся на галеру,
Не ругай там атмосферу!
Время всё отдай конторе —
Без плейстейшин в коридоре.
Соцпакет — печеньки с чаем?
В стойле мы не заскучаем!
Телефон заклеить нужно?
Мы на всё готовы дружно!
В тасках нету описания?
В спринт впиндюрим все желания!
Нет признания работы?
Ты длинней пиши отчёты!
Велпарковка дуже погана,
Кто-то попрятал для виски стаканы!
Даже для льда у них нету машины!!
И дисплеи, ну совсем без ретины!!!
Роста нет, горят все сроки,
Нет эйчарш и куэй одиноких!
И в конторе душновато
От дедлайна и разврата..
Но несмотря на все эти лишения
Ждём наивно мы повышения...
ЗЫ: я знаю, что до Наташи мне далеко, но она чего-то стала редко новые шедевры тут постить :)
у меня тоже девка в центре Праги кошелёк вытащила, хорошо хоть я все деньги прогулял до этого)), а в Финляндии, например, мне вернули кошелёк с 2к евро который я потерял! и в Стокгольме сумку с макбуком где-то оставил и не помнил где.. на следующий день прошли по всем местам где тусили и в последнем заведении мне вернули всё и даже пытались отказываться от вознаграждения!
Циклум-то бодишоп, но не стойло) ибо у них, в основном, аутстафф и ремоут (по крайней мере, я так работал).
а тебе что, жалко?
В нормальных офисах столы с поднимающейся столешницей — маст хев! Очень полезно иногда поработать стоя чтобы ничего не отсидеть себе) Или когда несколько человек обсуждают что-то глядя на монитор — тоже стоя намнооого удобнее. А в моей первой программерской конторе (ака айти притон) офис был в подвале и стул был выше стола... А на подоконнике CFO сушил траву!!!
Good topic, now smart Ukrainian developers will know where NOT to send their CV =)
Вообще, титл такой же абстрактный как “Сферический Синьор” или “Фуллстак нинзя”, в разных компаниях и на разных проектах может покрывать довольно различный спектр задач. Чаще всего подразумевает глубокое знание как технических аспектов (фронтенд+бекенд+внешние АПИ+девопс) так и хороших аналитических и лидерских качеств. Например:
...Drupal Architect who is capable of moving comfortably between theming and module development, and who possesses both analytical and technical skills. The Solutions Architect is a dynamic individual work closely with sales, business development, and marketing and development teams.Job Responsibilities
Drupal Architects work closely with project managers and Drupal developers to complete Drupal related projects. Drupal architects are expected to meet deadlines, communicate effectively, and work efficiently. In addition architects will be responsible for:Troubleshooting performance problems and fine tuning applications and environments
Taking leadership of technical pre-sales and complex project sales
Identifying technical risks
Ensuring that delivered solutions meet technical and functional requirements
Providing support and technical guidance to multiple clients, simultaneously
Providing the expertise required to review, advise, and assist in the selection of appropriate functionalities
QualificationsExperienced in the optimization and fine tuning of Drupal
Experience with the implementation of Varnish, Solr, GeoIP, Commerce, Ubercart, and CRM integration
Experience in leadership and presentation skills preferred
Вам надо радоваться, что потеряли всего лишь час на одно собеседование, а не16-20 часов на остальные собеседования и еще на тест задание. Те рейты, что предложили бы после всего потерянного времени (20-30 баксов/ч), не достойны действительно хороших программистов. Идите в ремоут контракт или фриланс — там и увидите насколько вы хороши. Я на одеске работал за 50 в час (всегда была загрузка 20-30 часов в неделю) и я даже не называю себя слишком хорошим. А знакомые с амбициями и реально хорошими знаниями спокойно выходят на 80-100+ евро в час.