Pull to refresh

Comments 552

Отлично! Спасибо, вопросы мне очень кстати :)
партнерка это конечно интересно, в дело идут и отходы (по советам 37 signals).
Ай я яй, нехорошо давать ссылки через редирект со своего сайта (в начале статьи) и реферральные ссылки на озон (в конце статьи).
В начале статьи — виноват — недоглядел когда от себя копировал…
… озоновские оставил — ничего военного в них нет, кто хочет — обойдет…
Не виноват вовсе.
Партёрка она на то и существует.
А на нищих, тупых и не способных будут зарабатывать другими способами.
Они как правило лохи, и сами свои деньги отдают в те редкие моменты когда они у них есть.
Юзай партнёрку смело.
может я один такой, но не вижу ничего плохого в реферальных ссылках автора
вы что? Он же пытается на нас заработать, при том ещё скрытым образом. Алчный человек написал целую статью чтобы только на нас честных хабравчанах заработать. Я же лучше куплю на озоне книжку без реф-ссылки, и пусть тот процент который причетается рефералу останется у озона, эти деньги озону нужнее. Минусуем за реф-ссылки!!!
Да, имхо на Хабре это не помешало бы сделать
А это показатель идиотизма людей :)

Сначала ратуют за свободное и «бесплатное» ПО, а потом бьют за реферальные ссылки.
А это между прочим, один из способов заработка для свободного ПО (не сами реферальные ссылки :) но именно метод перекрестного субсидирования)
UFO just landed and posted this here
хорошие вопросы, однако согласно этим вопросам Вам не подойдет человек который работал в какой то одной корпорации, писал меганавороченный проект, но строил его архитектуру, не юзал он АПИ, не знает css, не знает жабаскрипт…

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

Но ведь тут дело в другом… Оценить в среднем возможности соискателя.
да, возможности оценить можно, но давайте рассмотрим вот такой пример.

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

жизнь сложилась так что мне пришлось писать на пхп (да я понимаю что я утрирую, но все таки).

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

как вы думаете сможет ли нанимающий меня человек адекватно оценить мои способности?

p.s пример с головы. я таким человек не являюсь ;)
Тут помойму довольно ясно всё — человек должен знать PHP, SQL, HTML, CSS, JS. Это нормальная среда для Web-разработки.
но автор хочет найти не junior програмера, а специалиста. а без знаний как разрабатывать ПО он все еще junior программист
PHP, SQL, HTML, CSS, JS это человек оркестр, а на него повесить администрирование и наполнение контеном, а еще лучше рубать врагов мечом и оралом, то получится натуральный конан-терминатор.
за 5 лет не сверстал ни одной страницы, js, html и css на уровне общего представления, что б понимать, что происходит и почему и крайне редких правок
с самого начала была сервер-сайд специализация пых и бд архитектор

зы: еще ни один работодатель, не жаловался. время от времени старые контакты зовут в новые конторы, жаль что в Москве, не охото уезжать
зы2: человек-оркестр это кустарь, научно-техническая революция показала, где это можно использоват, а где нет
Прошло 10-лет. Теперь это называется Full-Stack разработчик
Требования: профессиональные навыки управлении легковыми и грузовыми автомобилями, троллейбусами, трамваями, поездами метрополитена и фуникулёра, экскаваторами и бульдозерами, спецмашинами на гусеничном ходу, боевыми машинами пехоты и современными легкими / средними танками, находящимися на вооружении стран СНГ и НАТО. Навыки раллийского и экстремального вождения — обязательны, опыт управления болидами F1 — приветствуется. Знания и опыт ремонта поршневых и роторных двигателей, автоматических и ручных трансмиссий, систем зажигания, бортовых компьютеров, антиблокировочных систем, навигационных систем (GPS) и автомобильных аудиосистем ведущих производителей — обязательны. Опыт проведения кузовных и окрасочных работ приветствуется. Претенденты должны иметь сертификаты Mercedes, BMV, General Motors, а также справки об участии в крупных международных ралли не более чем двухлетней давности. Зарплата 1500-2500 руб., определяется по результатам собеседования.
Т.е. для автомеханика нормально, если у него потребуют свидетельство о выигранных ралли?
Я согласен со всеми вещами в списке КРОМЕ CSS. Зачем ему знать CSS, если эту работу сделает верстальщик?
Тогда уж <язык программирования>, SQL, HTML, CSS, JS
Если человек решил переквалифицироваться, то соответственно будет он начинать с Junior'a — понятно, что путь к Seniour'у он пройдет быстрее, но работодатель за это не платит, ему нужен специалист здесь и сейчас…
Вопрос только в том, откуда взятся Senior'ам, если никто не хочет тратить время и деньги на обучение Junior'ов? Из воздуха им браться? Самоучиться? Всему сам не научишься. В том числе и тимворку.
работаешь Junior'ом, развиваешься, становишься Senior'ом :) это же очевидно :)
Не очевидно только, куда устроится на работу Junior'ом, если все хотят сразу Senior'ов.
Ну не все хотят Senior'ов :) как то же становятся Senior'ами? :) а без Junior'а им не стать

здесь вы не правы, вижу постоянно вакансии для новичков; есть конечно люди, которым подавай C#+JAVA+PHP профессиональное знание за 15-30 тысяч, но за эти же деньги много и адекватных вакансий. Я понимаю, что проффи меньше 60-80 не пойдет и если вы идете на такие деньги будьте готовы все что спросили знать.(цены примерно, по Москве).
P.S. Срезался на + в CSS на все остальное было что ответить :) хотя кол-во типов пришлось на пальцах посчитать :)
Блин, да никто не будет оценивать по баллам количество правильных ответов :)

Эти вопросы призваны дать общее впечатление о человеке.
Если человек знает наизусть количество типов в пхп и требует того же от других, то это не senior, а выскочка с претензией.
Для любого адекватного разработчика не составит труда их перечислить, наизусть их не учат…
Перечислить не составит труда, но заставит взглянуть на вопрошаеющего как на… ну в общем вы поняли. Потому что человек, как вы сами сказали, адекватный и потому ожидает адекватных вопросов. Это всё равно что спрашивать у шофера на собеседовании — какой формы колёса автомобиля?
Вот в том и беда — 50% соискателей не знают как выглядит колесо :(
Я так и не понимаю, что вы именно этим вопросом выясняете у человека? Не лучше ли попросить развернуть что-нибудь простое, но рекурсивное во что-нибудь нерекурсивное? Тот же доставший-всех-факториал :)
мне бы в голову не пишло готовясь к собеседованияю вспоминать какие там типы данных есть в пхп :)
Так Вам шашечки или ехать? (с) Старый анекдот
:)
вам главное честно ответить, что вы не знаете то-то и то-то, и что можете освоить за пару недель нужные фреймворки, вам дадут тестовое задание или даже возьмут на испытательный срок, а далее уже все зависит от результатов.
многие смогут ответить, но при этом их ожидания в ЗП превзойдут возможности компании :)
когда-то, когда ходил по собеседованиям, тоже пытались по многим технологиям сразу гонять, но денег за весь этот набор в одном человеке платить достойных не хотели…
Ни разу не видел хорошего программиста, умеющего сносно верстать. Так что искать на должность эдакого комбайна не лучшая идея, имхо.
Знаю хорошего программера, который не менее хороший верстальщик. Правда, начинает по-программерски «правильно» заморчаиваться при верстке, но это детали.
Ну я видел. Люди хорошо разбирающиеся в одном, разберутся и в другом. Просто на форумах сидят в основном те, кто «курят маны».
UFO just landed and posted this here
PHP разработчик достаточно редко встречается с MS SQL и Oracle — я за всё время работы только единожды сталкивался с MS SQL…
По себе оценивать это явно не стоит. А я вот например с mssql из php работал много. Да и вообще очень многие cms портируются на mssql, так что разработчикам cms иметь дело с этим приходится очень часто.
А теперь вы оцениваете по себе. Немного однобоко, не находите?
Ну не скажите, у меня очень часто возникает потребность работать с MS SQL даже в связке с MySQL, не хочу сказать что если я с этим столкнулся то все так работают, но к примеру мне не приходилось работать с Postgres, а работал с Progress (не путать с Postgres), потому в этом плане поддерживаю комментарий Joka habrahabr.ru/blogs/php/67963/#comment_1924772
UFO just landed and posted this here
Мы пишем крупные проекты масштаба края, используя PHP как сервер приложений и MSSQL вкачестве СУБД. Поддержка MSSQL сложилась исторически, вначале проекты разрабатывались на Delphi.
Сейчас веду разработку под Oracle, при этом на предыдущей работе велась разработка под MS SQL.
С mySQL работал только по своим проектам.
Раз на раз не приходится…
UFO just landed and posted this here
За такую ЗП, мне кажется, надо убрать половину вопросов что Вы тут написали, если не больше
Не сравнивайте ЗП в Москве и Харькове…
UFO just landed and posted this here
В Москве это зарплата 50...60 тыщ руб. мес. Но таких людей мааааало. Очень мало.
Сколько? Если вам удастся нанять за такие деньги себе здесь этого человека, спокойно спать не сможете. Будете просыпаться в холодном поту от страха, что завтра получите от него заявление на увольнение по собственному.
UFO just landed and posted this here
Я смогу ответить на все вопросы, причем достаточно объемно, да, для парочки потребуется подсказка (к примеру вот понятия не имел что в css есть +). Но получаю 60. Я что-то делают не так?
UFO just landed and posted this here
UFO just landed and posted this here
За 2 года зарплаты программистов выросли в два раза? Оптимистично :)
UFO just landed and posted this here
Я думаю тут у явного меньшинства з/п в баксах. Я вообще не понимаю в чем прикол исчисления з/п в долларах. По-моему это в основном не более чем пафос.
UFO just landed and posted this here
Проживая в России я покупаю товары за рубли. Так ведь? При чем тогда баксы? Ну разве что если компания продает свои товары исключительно иностранным заказчикам и исключительно за валюту. Или если сама по себе компания иностранная.

По поводу долбоебизма политиков и экономистов: почему ослабление национальной валюты это однозначно сакс? Тут же есть свои плюсы.
UFO just landed and posted this here
Да это все понятно. Про разницу курсов валют. Непонятно другое — почему конторы должны платить баксами?

А IT-конторы работающие за рубли / гривны — я думаю большая часть доходов все же в национальной валюте, т. к. заказчики в основном местные.
UFO just landed and posted this here
про рост цен скромно умалчиваем? =_=''
UFO just landed and posted this here
с учётом инфляции она никуда не растёт…
UFO just landed and posted this here
UFO just landed and posted this here
Да что тут скрывать. Идиотские вопросы.

Такие вопросы однозначно пишут люди, которым больше нужно показать свои знания, чем узнать знания кандидата. Да и про знания — это то еще заблуждение. Не в 60-е живем, когда знания добывались ночами в библиотеках. Примешь такого «умного» кадра, а он весь день порнуху на работе зырит.

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

В хороших компаниях все иначе: Пригласили, показал свои проекты, попутно позадавали вопросы, пообщались. А там виднее. Потом испытательнй срок. С такими вопросами как у автора, чувствуешь себя как ребенок на гос-экзамене, с какой радости?
Главное — такое собеседование и пройдут дети, которые готовились к собеседованию как к гос. экзамену.
У Вас действительно небольшой опыт, за почти три года, как я набираю людей в свой отдел, из прошедших собеседование никто не был уволен, и все успешно завершали испытательный срок…
Я говорил непосредственно о вопросах как таковых. О иных критериях выбора, которые вы вероятно применяеете, я не знаю. Возможно они и являются результатом удачного выбора.
Покажите лучше. что вы с ними запустили и при каких затратах :D
Согласен, собеседователи, которые готовят такую заученную пачку вопросов обычно люди ущербные, им кажется что такой подход (отобрать кучу самых важных на их взгляд вопросов) единственно верный.

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

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

И еще — мне нужен на работе специалист своего дела, а не задушевный друг, который вместе со мной будет пить пиво и холиварить на отвлеченные темы…

Насчет экзамена — не вижу в этих вопросах ничего экзаменационного, большинство разработчиков без проблем ответят на них даже посреди дня, не говоря уже о дне собеседования, к которому обычно принято готовиться…
Программист, который после работы холиварит и пьёт пиво, явно больше интересуется своей профессией чем тот, кто работает с 10 до 19 и при выходе с работы забывает её, как страшный сон.
Зачастую, люди которым работа в тягость долго в коллективе не живут…
Я после работы домой иду. Потому что устал и потому, что у меня дома есть с кем пообщаться. У меня нет сил холиварить и пить пиво(пообщаться по рабочим вопросам можно и нужно в рабочее время). Потому что завтра утром снова надо быть с ясным умом. Те люди, которые после работы остаются холиварить и пивасить — может они и интересуется профессией, но отдача от него не будет по настоящему хорошей.
Ну, если каждый день холиварить до потери пульса, то наверное Вы правы. Хотя суть моего комментария и не в этом.
в рабочее время надо работать. а обсуждать идеи нужно явно с разгруженной головой (например, под пиво после работы, просматривая очередной видеокаст с хайлоада)
Согласен с вами.

Я работаю на PHP более 4 лет (программирую более 14 лет). Но не пробовал не разу (то есть я не скажу, что знаю) Zend Framework, CakePHP, CodeIgniter или Symfony.
А вместо них — на работе у нас свой FW. Да и дома я пользуюсь своим, который развиваю сейчас.
Всё дело в том, что у меня другой уровень мышления.
Если Вы расскажете о том что пишете свой фреймворк — то скорей всего его мы его и будем «копать», зачастую люди с большой охотой рассказывают о своём детище — они расслабляются, исчезает скованность, загораются глаза, и человек практически сходу рассказывает о своих достижениях…
да, подтверждаю — мое интервью с крупную компанию началось с десятиминутного жаркого обсуждения моего фреймворка и архитектуры :) мило пообщались так.
Но Шевчук прав, это не вопросы, с помощью которых над кандидатом самоутверждаются задроты, выбившиеся в начальники. Это более чем обычные (я бы даже сказал, простые для опытных людей) вопросы, связанные с нормальной деятельностью программиста. Практической деятельностью, замечу, а не теоретическими изысками.

Средний опытный PHP программист (не талант, не архитектор), занимающийся разработками веб-систем, должен знать ответ на эти вопросы. Третий уровень матрицы компетентности программиста куда сложнее ;-)
Начнем с того, что не должен. И третий уровень и десятый и остальные штампы не должен. Их вместе с матрицей — надо свалить в мусорный бак. Попытка описать человека как работника 20-ю вопросами и матрицами компетентности — ужасный мудизм. Как будто автомобиль вибираем, ТТХ, расход, все дела.

А вопросы обычные, да, не сложные. Обычные несложные, идиотские, нафиг не нужные вопросы — вот название для топика.
(вежливо) А надо, конечно, брать на работу пхп-разработчиком разностороннюю личность, со склонностью к поэзии, с познаниями в кино, которые этими ужасными вопросами на собеседовании оценить не удается, да? Поэтому мудизм?

Нет, конечно, самое простое и показательное решение — дать собеседуемому задачу и понаблюдать за ходом его инженерной мысли. Может, он не знает «фреймворков» и все гениально решит через вызов С++ приложения и это окажется значительно быстрее, чем мутить это же на ПХП. Но я не могу понять, ЛСДима, почему спросить, насколько человек знает базы данных, какой у него опыт в разработке яваскрипт приложений, и знает ли он, почему его яваскрипты потенциально лошпенские — это так плохо?

У компании может тупо не быть времени и денег оплачивать эксперименты разработчика. «Не, SQL я знаю плохо, но разберусь, я умный», или «Яваскрипт… хм… ну я могу попробовать через ифрейм запросить, а там, наверное, как-то ответ можно разобрать». Может, и разберется. Может, и разберет. Но нужен человек с нормальными знаниями веб-разработчика, а приведенные выше вопросы позволяют понять опыт человека и знание технологий. По ответам на эти вопросы при нужной обратной связи собеседующего нормально набирается «разработчик ПХП», обычный работник.

И да, это инженерная профессия. Есть определенные если и не ТТХ, то хотя бы стандарты знаний.
Я противник заготовленных вопросов и собеседований по шаблону. Если так яснее.

Ну а вопросы, конечно их нужно задавать, но индивидуально для каждого кандидата. И мне не нравится, когда компания, делает вид, будто не может тратить свое драгоценное время на индивидуальное общение. Якобы много кандидатов (фильтровать на стадии резюме нужно).
Ну не обобщайте, в некоторых местах смотреть порнуху на работе это есть признак работы =)
Фигню какую-то спрашиваете...
— Работал с PHP 4? Назови различия с 5-ой версией.
Так библиотекарей нужно набирать в отдел технической литературы.

Единственный вопрос, который хоть немного имеет отношение к практической стороне:
— Какие шаблоны проектирования знаешь? Расскажи в чем соль каждого.
Да и то, формулировка ужасна.
Ну, различия между 4-й и 5-й хотя бы в ООП — это минимум того, что нужно знать. Различия 5 и 5.3 тоже довольно кардинальные, и надо быть в теме заранее.

Насчет паттернов можно напомнить, что даже сам Фаулер говорил: не надо бездумно применять шаблоны, каждая ситуация требует индивидуального подхода.
UFO just landed and posted this here
Ну, на PHP4 ещё, по-моему, можно встретить проекты, а вот на PHP3 придётся серьёзно поискать, имхо.
За последний год не видел ничего на пхп4. Думаете, они позже появятся? :)
Написанных за последний год может и нет (хотя если я или Вы не видели — не значит, что их нет), а вот старых проектов — полно.
Есть много кода, использующего библиотеку openid. Любой человек должен сходу отвечать на вопросы по ней?

А код на php4 надо либо рефакторить, либо не лезть в него.
С чего бы такая категоричность? Если есть необходимость залезть — значит нужно залезть и уметь разобраться. Попробуйте скажите на работе: я не буду патчить старый код, мне нужно пол-года на рефакторинг системы. Возможно пригодится повторное прочтение и переосмысление этого поста.
Согласен. Но я (работая фрилансером, то есть дорабатывая и доделываю тонны сайтов) все-таки не видел ничего, что бы было написано на PHP4. Хотя я видел, вероятно, но написан с помощью функций, без классов и вообще без всякого (уж о каких «исключениях» речь, если это PHP4 и даже классов нет).
То, что вы не видели, не значит, что их нет. На моем последнем месте работы использовалась CMS, написанная полностью на ООП PHP4. А еще есть много библиотек на PHP4 — тот же PEAR. Поэтому знание отличий иногда очень пригождается, хотя с ними можно ознакомиться в мануале и знать за пару часов — поэтому несмотря на специфику при приеме на работу об этом не спросили.

Вообще по моему опыту собеседований чаще интересует именно возможность быстрого обучения, а не общий объем знаний, т.к. практически любой проект имеет свои тонкости, с которыми программисту придется знакомиться. Еще часто просят показать образцы кода — для командной работы культура кода очень важна.
Ага, ещё можно спросить о том, как писать сайты под консольный браузер lynx.
И что надо обязательно проверять, поддерживает ли браузер куки :)
Нифига не надо ему этого знать. Только если не предстоит работа по переводу кода из версии 4 в версию 5. Да и даже так, он прочтет эти различия на php.net и за полдня будет понимать лучше, чем уверенный в себе человек, который это «знает».
Есть очень много старого кода, который не обновляется, но который приходится использовать.
да и рассказать о «соли каждого» — на это может уйти много часов :)
GoF, GRASP, доп.шаблоны от Кириевски и Фаулера, шаблоны рефакторинга… да мало ли чего еще
нормальные вопросы.Никто не говорил, что нужно ответить на все вопросы.
> Работал с PHP 4? Назови различия с 5-ой версией.

Долго еще будем мучить соискателей этим вопросом? PHP 5 вышел 5 лет назад, в 2004-ом году, PHP 4 уже не поддерживается.
Если человек отвечает. что не работал, то никто его за это гнобить не будет, и тем более выпытывать отличия…
А почему тогда про PHP 3 не спросить? Ведь за это тоже гнобить никто не будет.

Просто пару лет назад этот вопрос еще имел смысл, так как часть проектов крутилаьс на на PHP 4. Но сейчас-то зачем? По привычке?
Понять насколько давно и хорошо человек копает PHP, если он еще знает и понимает различия версий это будет только плюс…
UFO just landed and posted this here
Меня один раз спросили, знаю ли я, кто такой Расмус Лердорф.
Надо было спрашивать. Каких пацанов знаешь? Какие из этих имен вам что-то говорят: Дональд Кнут, Эдсгер Дейкстра, Фредерик Брукс, Гради Буч, Эдвард Йордон, Эндрю Хант, Мартин Фаулер, Стивен Макконнелл, Эрих Гамма, Кент Бек, Джон Бентли, Том Демарко, Алистер Коуберн. Список по вкусу :)
Работал еще с PHP4. Ждал 5 версию, интересовался. Но теперь, в чем различия, кроме того, что слегка допилили ООП, PDO добавили, функции какие-то depricated сделали, уже не помню. И мне, честно говоря, пофиг. Когда это важно, уточняю в документации.
Скажу одно: чем больше читаю такие топики про собеседования, тем больше нравится фриланс.
Думается, именно такой ответ и будет засчитан как «верный» :)
недавно пришлось вспомнить 4ку, блин это жопа, вот ее б я с удовольствим бы забыл. таково количество извращений на еденицу кода не писал очень давно.
чустуешь себя некромансером в морге и все ради того, что б хрень заработала у кучки некрофилов, которые так и не перешли на нормальный хостинг:-(
Сам факт того что человек не может ответить, уже немного принижает человека. Вам не кажется?
Почему же не может? Человек может ответить, что нет не работал, и задать вполне резонный вопрос аля «А Вы что еще с ним работаете?»…
«Нет мы посто так спросили. )»
Да, такое ощущение, что большинство вопросов «просто так». Не лучше ли поговорить о специфике проекта, над которым придется работать? И если он на Symfony, то про него и спрашивать?

Все бы ничего, но вопросы про CSS добили… «Так вам еще и верстальщик нужен?»
Сейчас в отделе несколько проектов, большинство на ZF, но есть и на CI.
С javascrpt'ом еще то разнообразие — и jQuery, и Mootools, и Dojo

Знать CSS и уметь верстать — это немного разные вещи, а понять правило которое я написал — да с этим любой школьник справится за полдня, если не справились — то что вам делать в веб-разработке?
Если справится любой за пол дня и это столь очевидно — зачем об этом спрашивать на собеседовании? У вас есть много лишнего времени? Все-таки приведенный отрывок CSS-кода весьма нетривиален для PHP-разработчика.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Зря вы на автора волну нагоняете, мне недавно самому пришлось, так сказать, побыть в шкуре кадровика, когда контора в которой я работаю искала еще одного программиста… так вот из претендентов на вакансию не знали php5 чуть более чем все, вопрос-то не в том что соискатель знает php4, а в том знает-ли он php5.
Они, наверное, не PHP 5 не знали, а про ООП не слышали. Я угадал?
Ну почему, некоторые с ООП были знакомы, по другим языкам программирования или-же по ООП-модели php4, которая при всей своей топорности таки тоже существует :)
У каждой компании свой подход к поиску сотрудников, каждой из них требуется свой объем знаний — верстальщик+программист, помошник программиста, стажер, ведущий разработчик в веб-студию, разработчик в стартап…

В каждой компании своя цена сотрудникам, но каждый соискатель сам знает свою цену. Лично я ни разу не соглашался на понижение заработной платы, кроме того когда мне предлагали на собеседовании 10 листов вопросов по специальности — я разворачивался и уходил. Почему? Да потому что у меня есть резюме в котором указано какой объем технологий я знаю или использую — краткого интервью + 10-и минутки с ведущим разработчиком достаточно чтобы определить уровень соискателя.

Ни в коем разе не хочу вас обидеть, просто заголовок топика охватывает все компании, однако вы указали либо свою, либо забыли упомянуть о возможности остановки на тех или иных вопросах :)
По требованиям — это уже не PHP-программист, это уже человек-оркестр получается, кстати. ;-)
это вообще НЕчеловек какой-то получается…
У меня полный отдел НЕчеловеков… О_о
Вообще если человек знает слишком много фишек и примочек, значит он не знает по большому счету ни одну из них. Я думаю если б у Вас каждый человек в отделе занимался только одним своим делом, то производительность и качество работы повысились бы.
От PHP разработчика в моём отделе требуется (по 10-ти бальной шкале):
PHP — 7
DB — 6
Javascript — 5
HTML+CSS — 4

И каждый еще знает кучу мелких фишек и примочек, кто-то лучше знает DB, а кто JS. Вот так и живем…
Хм,
В базах данных разбираться должен DBA, но разработчик пишет запросы и функции
Javascript разработчик не будет заниматься всем JS кодом в проекте — а ваш уровень должен быть достаточен для реализации AJAX запросов
Верстальщик отдает HTML+CSS, разработчик же обычно запихивает сие в шаблонизатор

Что же такое — «мастер» PHP — это наверное те люди которые нужны в Facebook'e — с опытом написания расширений…
DBA: настройка баз данных, анализ логов базы, поиск узких мест, оптимизация базы, анализ запросов, написанных программистом, рекомендации/указания по их изменению. Общий maintenance сервера.
Верстальщик: единственный человек, с которого можно требовать знание JS/AJAX, только это уже будет client-side разработчик. Умеет нарезать шаблоны из PSD.
Дизайнер: кроме дизайна, должен иметь общее представление о том, в какой **пе будет верстальщик, верстая его шаблоны — в общем, должен представлять себе, как то, что он нарисует, будет верстатся, и насколько реально реализовать все его фантазии.
Программист: собсно, пишет код. Ищет узкие места, гоняет бенчмарки, рефакторит, консультируется с DBA, вставляет готовый html в проект.
В общем, maser-of должен хорошо знать свою работу, а все остальные знания — уже как приятный бонус, который может пригодиться в работе.
грамотный ответ! всё по местам должно быть ;)
зы: «Jack-of-All-Trades, Master-of-None» в мэм
«Я создаааам… ничего!»
У нас почему то все PHP разработчики являются и JS раработчиками, то есть пишут одновременно и серверную и клиентскую часть. Что то действительно есть в этом глубоко неправильное…
Если они действительно знают js — то почему бы и нет? Хотя если бы разрабатываете достаточно сложный и объемный фреймворк с кучей фишек…
> Если они действительно знают js — то почему бы и нет?

Потому что так не бывает: писать на JS в стиле PHP — это моветон. А писать на PHP в стиле JS невозможно в силу ущербности PHP. Мышление, знаете ли, штука интересная, а JS мышление таки в корне меняет.
Так не бывает если человек очень хорошо знает одну технологию, а другую — неочень.

А вообще работая вот сейчас над проектом где очень много js и php, то понял одну вещь — в принципе это возможно писать на двух таких разных языках. Другое дело, что частые переключения с одного языка на другой очень утомительны и так и хочется слить эти две парадигмы воедино. Поэтому «сегодня вот попишу на php, а завтра перекинусь на js» — не прокатывают. Со сроками более пары недель — уже прокатывает и более чем адекватно.
Спасибо. Я теперь знаю как назвать свою должность.
адекватность некоторых вопросов вызывает у меня сомнения:

>>Есть ли опыт работы с различными CMS? Опыт работы не как web-мастера, а как программиста…
— что тут рассказывать? как натягивал другой дизайн, менял сортировку в списках, делал новый раздел? если есть голова то можно расковырять любую CMS. уважающий себя программер чужие CMS в работе не использует — ибо у него есть своя — либо он пишет каждый раз уникальный продукт на базе фреймворка.

>>Типы данных в PHP?
как вы сами заметили абсолютно правильно ответит только тот кто заранее готовился к этому вопросу. Так зачем тогда вы его задаете? кого хотите отфильтровать ))

>>Что самое сложное разрабатывали на PHP?
меня ставит в тупик )) если честно. Сложно обычно когда начинаешь делать чтото в первый раз, и не знаешь всех тонкостей, но после сдачи проекта удивляешься что пугался трудностей. Например, писал биллинг оплаты услуг на сайте. Для того кто этого еще не писал — звучит сложно, для тех кто делал — рутина… Или наоборот — можно так наху… ертить трехэтажную структуру для приложения, куча объектов в и субъектов, права доступа, динамическая шаблонизация… звучать будет круто. а в реале — возможно задача решалась гораздо проще, и непонятно зачем было столько всего прикручивать и так усложнять…

>>Коль работал с MySQL то сможешь назвать различия между версиями 4.1, 5.0, 5.1?
я навскидку назову очень мало — но это не означает что в случае необходимости не смогу адекватно выбрать версию БД и тип таблиц — согластно поставленной задаче. Да и вообще БД не ограничивается Мускулом. почему на нем весь акцент. однобоко както

>> CSS и JS
Css это вообще стезя верстальщика. программер не обязан знать всех тонкостей его работы и особенности верстки под разные браузеры.
JS конечно важнее знать. но опять же, профессиональные JS программеры совсем другое дело.

>> уважающий себя программер чужие CMS в работе не использует — ибо у него есть своя — либо он пишет каждый раз уникальный продукт на базе фреймворка.

мне что-то казалось, что уважающий программер должен уважать свое время, и не изобретать каждый раз то что уже сделали, тем более на вряд ли у него получится сделать за 2 дня лучше, чем то что делали люди месяцами. можно тогда и фреймворк каждый раз писать.
в точку — кстати, хороший вопрос, чтобы отсеять часть «кадров» — если человек упертый и «только свое, все остальное фигня, чтобы да я да разбирался в чужых проектах, да это же день написать» — с ним разговор сразу сходит на нет и прощаемся.
UFO just landed and posted this here
1. Когда разработчику дают ТЗ — он должен сказать — да прийдется попотеть или не морочить голову и насетапить wordpress. Так же бывают проекты когда для раскрутки проекта необходимо написать плагины для популярных CMS

2. Этот вопрос лишь дает понять — готовился человек к собеседованию или нет — это тоже говорит о многом.

3. Хороший ответ, немного деталей бы еще…

4. Есть требования заказчика — зачастую он покупает хостинг до того как найдет подрядчика

5. А где Вы увидали требование верстать? В действительно требуется уметь читать CSS… Насчет JS — опять же вопросы не требуют знания JS на высшем уровне…
>> 2. Этот вопрос лишь дает понять — готовился человек к собеседованию или нет — это тоже говорит о многом.

Вы считаете что серьезный соискатель будет готовиться к собеседованию?
Мне кажется, что вряд ли. Можно прочитать про компанию, про продукты, которые она создаёт. Но чтоб зубрить мануалы… Лучше с женой схожу в кино :)
UFO just landed and posted this here
вопрос не в том смешные или нет.
а в том что — смогут ли эти вопросы выявить — серьезный соискатель или он просто книжку прочитал недавно и сделал 1,5 сайта )
Даже не так надо:

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

Ибо даже если человек готовиться к собеседованию, он врядли будет готовить ответ на ЭТОТ вопрос. За явной бессмысленностью оного.
Точно, я то помню пришёл на собеседование. Мне вопрос задают: «Расскажите как работает ajax на низком уровне»
Интересно, насколько низкий уровень имелся в виду…
на уровне напряжений в сетевом кабеле ))
Хм, а я вот без проблем расскажу про аякс и на этом уровне, хотя если поднятся чуть выше, то уже остались знания только о езернете…
рад за вас )
но эти знания уже далеко не в области web-программирования
Скажу даже больши, эти знания даже за гранью системного администрирования. И только чуть-чуть касаются теории построения сетей… Но тем не мение.

>>>Типы данных в PHP?
как вы сами заметили абсолютно правильно ответит только тот кто заранее готовился к этому вопросу. Так зачем тогда вы его задаете? кого хотите отфильтровать ))

Я знаю что их восемь и могу их перечислить — но только по той причине что когда-то уже читал про это на хабре. В другом топике. Чему он был посвящен? Ну конечно же — собеседованиям! )))))
UFO just landed and posted this here
я бы к вам работать не пошла.
экзаменов мне и в универе хватило, а на собеседованиях уж лучше общаться о практических навыках, чем о теории.
Вы говорите что Вас гнобит теория — но тут таких вопросов — единицы, все остальное практика и опыт…
дааа. нынче на собеседовании бьют народ по полной.

имхо: собеседование должно быть просто общением, и кандидат на работу не должен чувствовать себя не в своей тарелке. при общении можно выявить намного более важные качества человека(ответственность, увереность, чувство юмора). Но как только человек оказался «не в своей тарелке» то эти все качества стопорятся и хрен HR увидит их в этом случае.
И при этом: человек потерян для этой компании, у человека осталось негативное отношение к этой компании. (не забываем что мир круглый)

>>Если вы имеете более 3 лет опыта работы в веб разработке на php, python, perl, то скорее всего вы начинали с mysql 3.23 и по мере эволюции MySQL представляете различия и возможности новых версий.

Версия 3.23: бета-версия в июне 2000, релиз в январе 2001;
Версия 4.0: бета в августе 2002, релиз в марте 2003;
Версия 4.1: бета в июне 2004, релиз в октябре 2004;
Версия 5.0: бета в марте 2005, релиз в октябре 2005;

>>— Ваша субъективная оценка своих знаний по CSS по пятибальной шкале?
>>— Приходилось ли верстать сайт?
>>— Почему CSS это каскадные таблицы стилей?
>>— Что здесь написано? Напишите HTML код к которому будет применен данный стиль.
>>
>>#my p.sel:first-line, .main li li a:hover + span
>>{
>>color:#f00; /* Что это за цвет? */
>>}

На верстальщике будем экономить.

Жабаскрипт кодера тоже брать не будем.

Жаль владение Photoshop/Corel не спрашиваете? А то клево, дизайнер тоже не нужен будет.

Вообщем понятно. Нужен человек, владеющий всем и вся. Платить будем 500$ :)
Владение Photoshop, кстати, тоже часто спрашивают — чтобы программист ещё и PSD-шаблоны нарезал для верстки. И исправить что-нибудь мог, если заказчик захочет, и если дизайн при этом рисовал фрилансер со стороны.
А еще, он программист, значит в компах понимает. Тут у секретарши пасьянс не запускается… а у бухов принтер что-то черные полосы рисует…
Так еще и чайник что то не работает, а у шефа машина не заводится...)
И лампочки пора бы поменять.
Лет через десять:

…и ещё конкурентов убрать нужно… Как, не можете?.. Вы же программист!..
Смешно, если бы не было так грустно… Мне приходилось наблюдать, как руководитель компании чуть ли не каждый день твердил отделу веб-разработки «Ваша задача — чтобы фирма продавала, и сайты должны быть сделаны с учетом этого»
… хакеры тоже программисты! взломайте яндекс и выведите наш сайт в топ!
По MySQL вы лучше напишите когда эти версии появились повсеместно на хостингах, и когда закончилась поддержка…

У вас проблемы с чтением данного правила? Тут не вопрос верстки — это лишь умение ЧИТАТЬ CSS?

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

Нет — не спрашиваем, а по ЗП я уже отвечал…
читать нормальный css и читать ваш зубодробительный тест где применены сложные, очень редко используемые правила css — это разные вещи.

зачем такой тест для PHP программиста????
опять вы про свое читать CSS. Вы и вправду думаете, что кто то учил теорию CSS чтобы тока научиться его читать? Мне такие люди к сожалению не знакомы.
Прочитать этот CSS можно используя лишь логику, а так же знание отличия между #my и .my ну и базовый HTML
O_o Так это вопрос на логику оказывается! Надо в «Что Где Когда» отправить, я думаю беспроигрышный вариант ))
mysql 4 начали вставать довольно быстро. 3 года назад были повсеместно точно.
Такое утопание в деталях наводит на мысли о желании выпендриться — уличить кандидата в том, что он не знает InnoDB, MVC или прочей лабуде. Но ведь разве это важно? Прочитать про технические термины, понятия, подходы, программы можно в гугле за 1 день на рабочем месте. Кроме того у некоторых ограничена память и они не помнят отличия пхп4 от пхп5 наизусть, потому что голова у них забита более важными вещами. А эти отличия также находятся в гугле за 10 секунд.
Что нового в пхп 5.3 — помню только оператор goto (потому что на его странице на php.net cмешной комикс), прочитать про все нововведения могу за 20 секунд. :) Вместо этого я отслеживаю основные тенденции в разработке php (изучал его исходники), бывал на конференциях phpconf. Но я не помню что нового в php 5.3 cходу. Я не гожусь :)
Имхо, гораздо важнее вести более общий диалог — подробно изучить предыдущие проекты(не только последний), тут сразу вся картина вырисовывается — какой опыт, какие навыки, как применялись те самые фреймворки, базы данных, как настраивались веб-сервера, как проектировались интерфейсы и производилась верстка (кстати для верстки обычно берут версталщика, а не программиста пхп).
на этой странице

ru.php.net/goto

теперь сделана ссылка:

Image courtesy of » xkcd,

которая ведет сюда --> xkcd.com/292/

Там комикс, раньше был прямо на php.net
Не знание MVC свидетельствует, о непонимании структуры современного веб приложения.
Не знание InnoDB говорит, что вы далеко отстали в развитии своих знаний в работе с базой MySQL, если вы конечно до этого с ней работали.
Вы можете за день прочитать всю книгу «GoF», и что, вы сразу научиться использовать и распозновать перечисленные там паттерны? Для этого требуется опыт и немалый.
Специальные вопросы на собеседовании помогают быстро отфильтровать неподходящих кандидатов, что экономит немало таки времени. О проектах мы беседуем с соискателями, которые могут грамотно ответить на специальные вопросы, особенно касающиеся PHP и MySQL. Вопросы о Javascript и CSS задаются в конце собеседования и считаются уже просто бонусом для кандидата.
Для тестирования есть испытательный срок. На собеседовании принято беседовать. За свою карьеру писал код на собеседованиях всего лишь раз в жизни (в 2002-м году еще). В остальных случаях хватало разговора о том, чем занимался и резюме.
С другой стороны, автора понять могу — развелось столько «php-программистов», что приходится очень много просеивать кандидатов, прежде чем найти адекватного. Всех на испыталку брать — нерационально.
UFO just landed and posted this here
Кстати головоломки, имхо — тоже фигня, имхо :) Как и психологические испытания. Правда, зависит от того, кто собеседует. Набор тестов подсмотренных за бугром не сделает вас умнее.
Правильно, методика бывает разная, хорошая и плохая :) Согласитесь, вместо экзамена можно было подробно распросить кандидата о предыдущих местах работы, тут все само бы всплыло и, кстати, психологический портрет тоже.
Ещё при техническом опросе надо помнить что если кандидат окажется более подготовлен, чем вы, то сами же будете неловко выглядеть.
Все эти вопросы — на объем знаний. Но как говорил один известный физик, «Этот книжный шкаф знает больше меня. Но ученый здесь — я». В собеседовании нужно выявить способность находить решения, уместные, оптимальные и порой оригинальные.

Также интерес представляет организованность человека. С случае с программерами самомотивация и самодисциплина часто хромает. Но если у кандидата мозги не заражены вирусом апломба и пофигительского отношения к работе, ему можно простить незнание фреймворков и шаблонов проектирования — от их освоит «под задачу» быстро и четко.

Еще полезно на собеседовании смоделировать на словах рабочую обстановку («вот сейчас мы работаем над… „) и посмотреть, с какого края кандидат подступится к проблеме, какие ресурсы запросит и какие вопросы задаст. Поверьте, это гораздо важнее чем знание различий версий 3.4 и 3.5 чего-то там… Завтра будет новый день и новые версии, лишь мозги останутся прежними — если их нет, то сверху не положишь.
UFO just landed and posted this here
Слава богу что пока только на хабре встречаю таких «собеседователей» с такой извращённой «сферой профессиональных обязанностей».
Опыт работы с ПХП и иже с ним у меня больше 5 лет, но я занимаюсь настолько специфическими проектами, что врядли ответил бы на половину вопросов :) Хотя очень многое из того, что перечислено используется постоянно, просто работается с этим не так близко, ну тот же аякс/jquery — есть и есть, работает и работает, как когда-то было написано по мануалу…
P.S. монстра ищете, чтобы клепать сайтики… эх.
Когда-то собеседовался в одну довольно известную фирму на php-разработчика, ответил на довольно мало вопросов и взяли со скрипом и большим испытательным сроком. Потом удивлялись что я довольно быстро освоился и влился, испсрок сняли, а через полгода примерно ушедший с этой работы ведущий программист предлагает мне работу в своей фирме ведущим программистом.
И в то же время и собеседуюсь в другую фирму и так же не отвечаю на много вопросов, меня не берут обычным программистом =)
Вывод — теория, особенно насчет различий между двумя версиями определенного софта не так важна, как и умение человека что-то красиво рассказывать. Более важна практика и общая сообразительность.
На собеседовании не только вы должны понять подходит ли вам человек, но и человек должен понять подходите ли вы ему. А такие «сухие» вопросы нехило отпугивают граждан, ему ведь работать в команде после этого, а что если в команде обсуждают только отличия php 4 и 5, и mysql 4.1.0.3421 и 4.1.0.8723? :)
Очень стремные вопросы. Для того, чтобы из пройти, надо задрочить мануалы по кое-каким продуктам, и, вуаля, вы приняты. А это уже маразм. Вы бы еще спросили что быстрее echo или print и так далее.
Самое интересное собеседование, что я проходил, почти целиком состояло из логических задач, и задач по программированию, когда надо было написать просто блок-схему (придумать оптимальный алгоритм).
UFO just landed and posted this here
Со асем согласен, но следующий вопрос просто добил:

color:#f00; /* Что это за цвет? */

Человек не робот и не должен знать такие вещи.

ну не ответить что это красный как совсем уже плохо. это значит что ui программировать вообще ни разу не приходилось
Несогласен.
Все таки этим должны заниматься верстальщики. А я как программер должен знать, что это просто раскрашивание в какой то цвет.
надо иметь кругозор хотя бы слегка выходящий за рамки специализации в смежные области. Как минимум для более эффективного взаимодействия в рамках команды программист дизайнер верстальщик.
Конечно, надо. SASS, CSS Sprites, CSS Compression
Но никак не color:#f00;!
Угу php программист должен знать достаточно специфичные css приемы, но не должен знать что #rgb нотацию которая используется повсеместно, а не только в css. Я к сожалению не могу понять вашу логику.
Ничего, я даже не могу понять ваш последний комментарий :)
За меня это делает НЛО и огромное кол-во плагинов/инструментов, помню всего два цвета: черный и белый
Вот спрайты и оптимизация как раз для верстальщика.
Мало того, программёры даже не обязаны знать (и не знают) гарнитуры шрифтов, и не отличают их друг от друга на глаз. Что уж тут про цвета.
Никогда не приходилось в авральном режиме поправить и пределать такую-то форму, с новыми цветами и шрифтами?

Везучий вы человек. Или в вашем городе очень большой спрос на разного рода веб-ориентированных специалистов, и человека, который может не только разбираться в базовом языке, но и, по возможности, закрывает ещё 2-3 ниши, предпочтут узким профилям по конкретному языку/виду работы (верстка, БД, юзабилити, сервер-сайд).

По крайней мере в моих глазах веб-разработчик, не знающий как написать элементарный css-стиль и прописать его в свойства того или иного визуального тэга (включая и цвет) — нонсенс.
В более менее крупных компаниях (более 10 человек) в этом нет необходимости.
Но это не значит, что я не знаю «как написать элементарный css-стиль и прописать его в свойства того или иного визуального тэга (включая и цвет)». Так случилось, что только через 2,5 года проф. программирования я узнал как кодируется красный цвет в RGB.
Я достаточное время проработал в более меликх компаниях (до 10 человек, дизайнер внешний, наемный).
много чего сверстал за свою жизнь и до сих пор путаюсь между черным и белым :)
поэтому в таких случаях просто пишу black или white
верстал мало, но до сих пор белый и черный путаю. мне легче просто проверить на месте)
у меня фотошоп показывает что это чёрный, а не красный… :)
Фотошоп сокращенную нотацию не понимает.
даже фотошоп не понимает того что должен пхп-программист ))
Ну, человек может и не робот, но если хоть немного интересовался веб-разработкой и/или версткой, то помнит, что цвета в CSS указываются в HEX виде с кодами цветов в формате RGB (red, green, blue). #F00 == #FF0000 == 255,0,0 == 100% красного цвета, 0% зеленого, 0% синего. Итого у нас получается — красный цвет. :)
В общем, это основы, и, если не ошибаюсь, это ещё в школе на уроках информатики преподают (по краней мере, у нас такое было). :-)
Ну если бы был вопрос про #FF0000 то да, не ответить на него было бы странно. А вот про сокращенную форму записи я узнал только что, хоть ui делал не раз.
Эта, но зачем мне забивать этим голову во время работы, может мне еще и в блокноте писать? Или это был вопрос на сообразительность, мол выведет из хекса название цвета или не выведет?
в школе за #F00 == #FF0000 могли бы поставить двойку :-)
моя первая мысль была — оттенок зеленого, потому что
f00 == 000f00 —
а f00 == ff0000 мог придумать только дизайнер.
а мы в школе писали:
10 CLS
20 INPUT «Введите ваше имя: », N$
30 PRINT «Ваше имя: »,N$
40 END
Хоть я и не php-программист, но вопросы заинтересовали.
Упоминается книга «Банды четырех» — может дадите ссылочку?
UFO just landed and posted this here
спасибо.
если бы мог то поставил бы плюсик
именно за ссылку на книгу в электронном виде, а не на озон.
В последние 6 лет занимался только Web программированием. На моём счету около 15 сайтов с программным контентом. Я имею свою удобную библиотеку шаблонов на PHP. У меня имеются такие наработки на PHP как: CMS, чат, эмуляция клиентского браузера с поддержкой cookies и proxy, подключение к сайту различных мировых платёжных систем, работа с графикой и трансформацией изображений. Есть опыт создания распределённых сайтов, находящихся на нескольких серверах, а также системы администрирования сайта на Delphi. Я уверенно работаю с: HTML, CSS, XML, Javascript, MySQL, Apache. Кроме PHP я знаю ещё несколько языков программирования, но я не смог ответить на ваши вопросы. Оказывается практический опыт работника не имеет для Вас никакого значения, какая жалость :( главное — ТЕОРИЯ.
Большинство вопросов как раз направлены на опыт работы. Не вижу каких теоретических вопросов Вы так испугались, если о основах ООП? То я Вас умоляю — большинство принятых на работу людей на него не отвечали…
Хорошая такая контора, в которую принимают программистов без знания _основ_ ООП…
Зачастую не могут назвать сами определения — помнят наследование, а вот инкапсуляцию и полиморфизм вспоминают с трудом…
А какой смысл называть определения? Знаете, до того, как я познакомился с шаблонами проектирования, я и не знал, что удачно использую фабрику, синглтон и другие шаблоны.
Смысл-то как раз большой, тот кто знает названия — тот очевидно читал спец. литературу по объектно-ориентированному проектированию. Мне это напоминает позицию программиста со своей прошлой работы, когда я ему пальцем ткнул где он использует синглтон — он воскликнул: «Ба, да у меня-ж тут полный ООП!»… кхм, нет, не полный :) Шаблоны — это шаблоны, это не серебрянная пуля которая решил все проблемы с архитектурой приложения, однако-ж знать их нужно, знать в первую очередь по сравнению с фреймворками, библиотеками и т.д. и т.п., на хабре-же все противники делать то что уже сделано, так вот большая доля стандартных подходов к проектированию — она уже сделана, и названа «шаблонами проектирования».
иногда не надо знать «как это называется», что бы знать «как этим пользоваться»
Чтобы хорошо понимать как этим пользоваться, и не знать как это называется — нужно как Диоген… в бочке… долго… кодить :)
К слову, хотя и совсем не в тему: я, к примеру, понял суть ООП и что это вообще такое только после того, как начал изучать Ruby. Вот ТАМ — это просто отличнейше реализовано и необычайно легко и понятно описано. Порой мне кажется, что имеет смысл человеку, собирающемуся изучать ООП, дать почитать «why's (poignant) guide to ruby», чтобы он понял, что такое объект, класс, методы, наследование, и т.д. (что я обычно и делаю). А уже потом — вдаватся в особенности костылей реализации ООП в PHP.
PS. Таким образом мне удалось обратить в Ruby уже не одного ex-PHP программиста. ;-)
Многое в PHP сделано не самым красивым способом, и не самым удобным, однако ООП-модель в нем я считаю достаточной для нормального программирования, про какие конкретно костыли вы говорите?
Удобство работы с ООП в PHP в сравнении с оным в Ruby — это как ходьба по улице с костылями или палочкой, на которую опираешься, и как свободная легкая прогулочная походка по тропинке. Разница, может, и не большая (челове ходит — и хорошо), но работать с ООП в Ruby — удобнее. И, как по мне, просто банально приятнее.
В каком языке ООП это просто ходьба без костылей и палочек? Пистон? Пёрл?
UFO just landed and posted this here
В C#, всего лишь — одна из реализаций.
UFO just landed and posted this here
> Нет
Что, «нет»? ООП в C# — это одна из реализаций, не претендующая на единственно верную. Что не так?

> Соответственно если говорить, что ООП ходьба с костылями — то все программирование на C# — костыли.

Я, если Вы внимательно читали, как раз и ратую за то, чтобы не раскидываться тут, «что такое костыли, а что нет» (при этом, даже не являясь создателями этих систем).
UFO just landed and posted this here
> Был вопрос: «В каком языке ООП это просто ходьба без костылей и палочек?»

В вопросе мало смысла.

> Вы мне говорите про какую-то реализацию.

Что значит, про «какую-то»? Про вполне конкретную — Си-шарповую. И отмечаю, что реализация ООП в этом языке — одна из нескольких.

> Я для примера назвал C#.

Ну замечательно, только, повторю, в вопросе мало смысла, если Вы полностью этот тред проанализируете и увидите мою позицию.
В Руби, всего лишь — одна из реализаций. Достаточна неплохая, надо сказать.
Думал руби это с Палочкой, а ПХП это с костылями
UFO just landed and posted this here
Смоллток — тоже, всего лишь — одна из реализаций. Любая другая — вправе вносить любые коррективы, если они технологически и идеологически обоснованы.

> прочувствовал ООП только после него.

Расскажите подробней (основные, ключевые моменты, которые заставили вас «прочувствовать»), интересно.
UFO just landed and posted this here
Спасибо за подробный ответ, да, я тоже повторю, что меня привлекает динамика, мутации объектов, утиная типизация в Ruby и JS (Смоллток тоже находится в их генеалогическом дереве вдохновения идеологией, включая реализацию ООП — однако, конечно же, были сделаны свои и изменения).

Подчеркнуть же я хочу то, что говорить о «костылях» смысла нет, поскольку для этого нужен утверждённый эталон «дальше которого прыгать в стороны не моги», но в плане реализаций теоретических областей — это не так. Реализация ООП из Смоллтока, унаследованная Руби, Питоном и JS (через связку Smalltalk -> Self -> JS) снова повторю, мне так же наиболее симпатична (при этом, я осознаю, что сам Смоллток тоже вдохновлялся Симулой, но ввёл свои нововведения, которые посчитал технологически и идеологически обоснованными).
> Удобство работы с ООП в PHP в сравнении с оным в Ruby — это как ходьба по улице с костылями или палочкой, на которую опираешься,

ну это всё демагогическая философия, а технические характеристики, всё-таки, можете рассказать? ;)

В PHP — своя реализация ООП, достаточно неплохая в своей идеологии, удобная для реюза кода. Кстати, в Руби, ООП похоже на Javascript'овое.
Что вы имеете ввиду под словами «технические характеристики»?
Проще попробовать, чем рассказывать.… К сожалению ресурс «Try Ruby!» сейчас недоступен, как и "_why's poignant guide to ruby" — с тех пор как Why The Lucky Stiff пропал, многое стало недоступно.
> Что вы имеете ввиду под словами «технические характеристики»?

Реализацию.

> Проще попробовать

Я достаточно хорошо знаю и PHP и Ruby.

> чем рассказывать

тот, кто не знает, не сможет объяснить.

Меня же больше волнует то, каков процент в Ваших фразах о «костылях» — свой? К слову, я отмечу, что мне Руби, действительно (наряду с JS и Python'ом), нравятся больше PHP, но я могу ответить, почему — в большей мере привлекает динамика, открытость (хотя, Питон, в этом плане, закрыт для работы со встроенными классами), мутация (и, как следствие, утиная типизация) объектов, и модульная структуризация. ООП же в PHP — достаточно неплохая реализация этой теоретической парадигмы.

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

Так о чём говорите Вы?
опаньки, а что с _why-ем случилось?
Пропал, безследно, больше недели назад. Сайты, которые он поддерживал, закрыты или закрываются. Некоторые всё ещё работают.
Пара ссылок для чтения по этой теме: www.rubyinside.com/why-the-lucky-stiff-links-2333.html, www.rubyinside.com/why-the-lucky-stiff-is-missing-2278.html
Ужас… те кто мне в своё время предлагал собеседование таким вот образом — отвергал сразу, ощущать себя снова незнающим студентом на экзамене не очень хочется.
По моему лучше просто дать решить какую то проблему насущную (тестовое задание) и посмотреть как человек с этим справиться, поспрашивать о прошлых проектах… раз ищите не начинающего программиста, то за 2...3 года у человека наверняка набралось несколько хороших и достойных проектов.
Вопросы про типах данных, отличии в версиях и css лично меня уже ввели в ступор.
Тестовое задание отпугивает еще большее количество человек, это уже проверено :)

Насчет прошлого опыта работы — тут большинство вопросов ориентированы на то, чтобы выпытать из человека его «опыт»…
видимо народ настолько сильно отличеется… один боятся что их завалят на теории, а другие боятся что работодатель увидит что на теории всё и закончилось
«за 2...3 года у человека наверняка набралось несколько хороших и достойных проектов.»

Бывает, что например разрабатывалась CRM, работая 2-3 года в фирме. Код разумеется закрыт, вход в систему разумеется закрыт.
ну вобщем то да… я тоже могу показать только с десяток сайтов, наклёпанных года 2 назад… всё остальное или закрыто или вообще без интерфесов
UFO just landed and posted this here
Для кого и дурацкие, но вот знание в каких версиях мускуля появились транзакции/хранимые процедуры/тригеры — очень сильно поможет при разработке, ведь зачастую версии оговариваются в ТЗ заранее…
UFO just landed and posted this here
Это всё уровень ;)
На хайЛоад прожектах СКУЕЛю выделятся много внимания!
Так же как и Архитектуре кода, также как и Вёрстке, также как и настройке ОС системы, оптимизации всего и вся…
Меня только удивило почему нету вопросов сысадминству… хули ж тут, к этой пачке кака-раз не хватает.
Мол как настроить нгинкс, какие акселераторы лучше, как поднять мемкеш, сделать кластер…
UFO just landed and posted this here
Обычно в ТЗ прописана версия MySQL — именно опираясь на нее разработчик должен решить использовать транзакции и триггеры или нет…
UFO just landed and posted this here
это собеседование на джуниора?
или на норм разработчика?

если на джуниора, то вполне адекватные вопросы. Я когда устраивался, задали насколько теоретических вопросов по шаблонам и вэбу в целом. а потом практические задачки. 3 или 4 штуки. потом разбор задач и «сопроводительные» вопросы к ним.

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

А ещё часто бывает, что собеседник сам не понимает какие нелепые вопросы задаёт. Обычно проще лишний раз переспросить или объяснить нелепость вопроса, чем пытаться ответить глупостью на глупость.
Хм, а что означает плюс в CSS?
Тоже стало интересно. Походу это значит «применить к тому, что справа, ежели оно идет сразу за тем, что слева».
Именно так, это CSS2, а непопулярна такая конструкция потому как ее не поддерживает IE 6-ой и по-моему 7-ой версии. Также как очень удобной конструкцией является ">" — но тоже к сожалению старадает отстутствием поддержки со стороны IE.
Это то самый кругозор, о котором упоминали выше.
Если программер еще не знает о CSS, то он либо 1) совсем зеленый, либо см. пункт 1.
А давайте представим путь начинающего веб разработчика:
Купил/скачал книгу по PHP, решил запустить на своем локальном денвере задачку «блог на php/mysql за пол-часа». Посидел пару дней, поковырялся там, тут — в итоге УРА! заработал блог. На этом он не остановился, решил сделать свой фотоальбом! Но вот незадача, весь html-код получается со стилями, читать невозможно. Еще пара таких проектов и он наверняка поймет, что гораздо удобнее вынести стили в отдельный файл.
На самом деле плюс знания CSS заключается не в том, что программеру надо будет его активно использовать, это как бы говорит о том, что он так или иначе его использовал и Понимает Зачем Это Нужно.
Речь идет не о знании CSS в целом, а о конкретном, редком операторе, который, как оказалось, еще и не все браузеры поддерживают.
Не стоит цепляться к мелочам. Привер может быть любым и суть дело это не меняет.
Суть заключается в том, что не нужно захламлять оперативную память редко используемыми знаниями — надо знать, где посмотреть в случае чего, или сообразить, к чему вообще это может относиться.
Пардон, я кажется, неправильно истолковал фразу «плюс в CSS».
UFO just landed and posted this here
Так называемый селектор «сестринских» элементов.
На этот вопрос на собеседовании я бы ответил так: «У меня в голове стоит парсер CSS от IE6, а он сестринские селекторы не поддерживает».
UFO just landed and posted this here
К сожалению, реально разработчику нужно понимать все, что могут написать его коллеги, не смотря на то, что сам он бы такого не написал.
UFO just landed and posted this here
Но это собеседование не ориентированно на начинающих. По хошорему, я думаю, никто на вас не обидется, если вы скажете «черт, я понятия не имею, что было в PHP 4, я работал только с PHP 5, но я в курсе, что объекты в PHP 5 передаются по ссылке». А остальное действительно дело начитанности, если вы нашли в вопросах что-то, что у вас вызывает недоумение, вполне возможно, что эта проблема существует только в книгах.
UFO just landed and posted this here
Тут уже дело в коллективе. Я, например, понятия не имел, как погуглить "+" в CSS. Ясно, что запросы "+ css" и «plus css» ничего вразумительного не дали. А вот спросить у коллеги версталщика, что значит "+" — не проблема.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Многие говорят, что уровень вопросов детский, что этому еще в школе учили и бла-бла…
Парактика показывает, что даже многие из этих вопросов ставят людей в тупик. Техническое собеседование — это в первую очередь попытка оценить уровень знания технологий, с которыми человеку придется работать в нашей компании.
С другой стороны, если я вижу, что кандидат достаточно опытен, отпадает необходимость в большинстве этих вопросов. Тут уже сам бог велел говорить о том, что кандидат сделал и чего добился. И чем больше у кандидата опыта, тем интереснее может оказаться собеседование.
Легко-бы ответил на все заданные вопросы, не понимаю народные волнения по поводу некоторых. Про вопрос различия php4/php5 я уже выше написал, про те-же типы данных — в php их не так много чтобы их забыть.
Скалярные типы:
Числа: целое (integer) / дробь (float)
Строка (string)
Булевый тип (boolean)
Сложные типы:
Массив (array), объект (object)
Ну и спец. типы данных:
нуль (null) — уникальный тип данных который может использоваться в значениях по-умолчанию для объектов
ресурс (resource) — тип данных, возвращаемых расширениями для работы с тем-же mysql, ftp и т.п.

Какое из них в работе можно исключить — я честно говоря не представляю, без скалярных типов обойтись нельзя вообще, незнание о существовании сложных типов — это ну очень уж низкая квалификация, незнание что такое null — это уже больше к области php5 и type-hinting'а, там без него точно не обойтись, соот-но можно сделать вывод что соискатель с php5 если и работал — то не через руки точно, ну и resource — если человек не понимает что конкретно возвращают те-же простейшие функции mysql_connect / mysql_query — то это опять-же говорит о его квалификации.
— Почему ушли с предыдущего места работы?
хочу больше денег
— Почему выбрали нашу компанию?
хочу больше денег
— С чего начали изучать программирование?
с бейсика на Корветах
— Почему выбрали PHP?
хз, мода какая-то на него пошла после перла
— С какими PHP библиотеками, фреймворками знакомы?
с CakePHP работал, и ещё с какойто мегабиблиотекой (по типу CPAN от перла)
— С какими API приходилось работать?
вроде никакими
— Есть ли опыт работы с различными CMS? Опыт работы не как web-мастера, а как программиста…
Joomla,Koobi
— Работал с PHP 4? Назови различия с 5-ой версией.
приватные переменные в классах появились. псевдо-функции у классов(__call и др). больше не знаю.
— Что нового в PHP 5.3?
вроде как именно в этой версии сменились параметры у функции mail, из-за чего отвалилась функциональность на одном из поддерживаемых сайтов.
— Типы данных в PHP?
variant, array,object.
— Что такое сериализация?
компактификация объекта в строку
— Что самое сложное разрабатывали на PHP?
Делал сайт на кейкпхп для комьюнити одной игры. на сайте велась разномастная статистика рекордов в игре.
рекорды засылались архивом. сайт соответственно парсил архивы, парсил бинарный файл записи рекорда. структура файла записи рекорда была реверсинженирены мной с помощью дизасма IDA.
— Какие шаблоны проектирования знаешь? Расскажи в чем соль каждого?
— Что есть MVC? Какую роль выполняет каждый из составляющих элементов?
на эти не буду отвечать.:)
– С какими web-серверами работал? Apache? Nginx? IIS?
апач
— Можешь описать как можно подробнее, что происходит между тем, как пользователь ввёл в адресной строке google.com и тем, как браузер показал страницу?
DNS запрос, веб-сервер, гугловский аппликейнш(хз что, но точно не пхп :) )
– Системы контроля версий? SVN? CVS? Git? Что есть branch/trunk/tags?
SVN,CVS токо чтоб сырцы скачать использовал. на текущей работе использую ClearCase
– Багтрекинг системы?
не юзал. а че про них спрашиватьт то?
— С какими БД работал? Что такое транзакции, хранимые процедуры, триггеры?
мускул
— Коль работал с MySQL то сможешь назвать различия между версиями 4.1, 5.0, 5.1?
с 4.3 или 4.4 появилисьь вложеные запросы select from select. в 5 наверно появились те самые хранимые процедуры и триггеры
— Каковы различия между MyISAM и InnoDB?
в иинодб транзакции есть
— Ваша субъективная оценка своих знаний по CSS по пятибальной шкале?
3
— Приходилось ли верстать сайт?
да. ненавижу :)
— Почему CSS это каскадные таблицы стилей?
потому что наслаиваться могут
— Что здесь написано? Напишите HTML код к которому будет применен данный стиль.
напишу
— Ваша субъективная оценка своих знаний по Javascript'у?
с библиотеками работал, а самому написать чтото типа prototype не смогу
— Что самое сложное разрабатывали с использованием Javascript'a?
ничего сложного
— С какими Javascript фреймворками работали? Какие плагины использовали? Писали ли плагины, виджеты?
с prototype баловался — эффекты, аякс.
— Каким образом можно реализовать наследование в Javascript?
чето на хабре было про это :)
— Что такое AJAX и как он работает?
знаю
— Что такое JSON? С JSONP сталкивались?
стандартизированный формат передачи серелиазованных объектов или просто массивов данных. JSONP не знаю че такое.

*******
на сколько потяну по з/п? :)))
На должность Junior-дворник, судя по всему :)
пожалуй останусь архитектором на текущем месте :)

ЗЫ: текущая работа с вебом не связана
вот такими видимо и должны быть книжки «собеседование для чайников» или «готовимся к собеседованию за 24 часа» =)
чето на хабре было про это :)

Замечательный ответ )
Получается нужен какой-то кодер-программист-архитектор, в итоге чел который всего нахватался по чучуть и делает всё через жопу, ибо толку не отбивает нигде.
UFO just landed and posted this here
ага. можно подумать если собеседуют человека по графике — то будут гонять его еще по работе с БД, построению интерфейсов, юзабилити…
смешно же)
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Зачем столько полемики?

-->… да-да, жители хабра, в большом мире дяди пишут не только что-то похожее на ваши хомячки на вордпрессе…

-->… не забудьте сказать, что чужие фреймворки вы не изучаете по идеалогическим причинам…

-->… и у вас есть свой фреймворк, который вот тут может рисовать треугольнички…

Фигня какая-то. Кто, Где такое говорил?

По делу: Неужели вам тяжело оторваться от хабра, и вместо штампованных вопросов поговорить с кандидатом? Ей-богу, создается впечатление, что у вас сотни кандидатов ежедневно: на-ле-во, на-пра-во.

Последние 4 года я провожу собеседования: приоткрою вам тайну, от того что вы сожжете на ритуальном костре ваши вопросы, вместе с тестами и прочей макулатурой — ничего не изменится. Ровным счетом ничего.

Как проходит выбор кандидата? Кадровик мне показывает резюме, если интересно — приглашаем, общаемся, благо не роботы, есть о чем поговрить. Новичкам даем тестовое задание, или сажаем сразу за компьютеры. Это-же элементарно, какие нафиг опросники? Какие бумажки? Это-же самое ценное — сотрудники! С кем говорить тогда? с Машей из Mamba?
UFO just landed and posted this here
> Каким образом можно реализовать наследование в Javascript?

В принципе, для соискателя для на PHP вакансию, такой формулировки может быть и достаточно, хотя, она, конечно, неверная — Вы же не спрашиваете, «каким образом можно реализовать наследование в PHP?» — а ведь это тоже самое. Если будете проводить интервью на JS вакансию, не задавайте такой вопрос вообще.
Если человек мне расскажет о том, что JS есть прототип ориентированным языком — это будет несомненно плюс…
Да нет, у Вас упор всё же на PHP-вакансию, всё остальное (SQL, JS, CSS) — поверхностно получится, в любом случае (хотя, могут быть исключения, но такой девелопер (который глубоко разбирается в нескольких технологиях, а не просто на прикладном уровне) дороже стоит и надо ещё поискать).

Касаемо же JS, ответом на Ваш вопрос должен быть: «что значит реализовать наследование? наследование в этом языке заложено изначально и весь язык — напишите Вы одну строчку 1..toString() — уже насквозь пропитан наследованием. Поэтому, вопрос не понятен/не корректен». Поэтому, при серьёзной JS-вакансии, такие вопросы лучше не задавать (сами спалитесь). В случае же, когда JS — второстепенен (т.е. основное направление вакансии — PHP), Ваша формулировка может быть уместна.
Антон, а у Вас есть вакансии типа Кодер который и должен знать а прототипе в ДЖс? Архитектор который и должен знать различия между Мускулами и выбирать нужные инструменты для разработки (по минимуму)? или только универсальные солдаты ПХП-программисты?
На данный момент у нас вакансий нет, вроде собрали всех кого хотели…
Не правильно задал вопрос, не вакансии, а должности ;)?
И что по деньгам за такие знания? :)
смотри выше habrahabr.ru/blogs/php/67963/#comment_1924800
Как показывает практика — вопросы по веб серверам и таким штукам как SVN бесполезны. Половина, которые говорят, что знают — не знают. А 90%, которые гооврят, что не знают — вникают через пару дней.
Типы данных в php, всё равно что пытаться точно подсчитать количество лошадиных сил ваза 2101. К чему? Если php сам за тебя определяет типы и при правильном применении проблем с этим не возникает. Есть сравнение с приведением типов, более ничего и не нужно. Буду рад видеть примеры, если ошибаюсь.

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

p.s. ничего не имею против автора, текст прочитал, было интересно. Сказанное лишь моё мнение.
p.p.s. всегда было весело посещать собеседования, где заставляли программировать на листочке =) или писать сложные скули с подковырками.
может хватит играть в эти игры, а? просто выдайте человеку тестовое задание и посмотрите на его код. это необходимо и достаточно, чтобы судить о профессиональных навыках.

а то устроили соревнование, кто больше статей по рекрутингу прочитает…
Вариант тестового задания отпадает, пока мы будем ждать ответа — человек просто пойдет в другую контору на собеседование, а тестовым заданием займется лишь в том случае, если ему везде отказали…
> Почему выбрали нашу компанию?
вам не нужно показывать своих навыков — значит есть шанс уболтать.
2AntonShevchuk, вы забыли про классические алгоритмы спросить (рекурсия, сортировка, деревья...) или испугались что вообще никого не найдете?
Иногда задаю подобные вопросы, но не часто…
читаю прошлогодние комменты. офигеть, еще и у прогеров про модель OSI спрашивают… куда катится этот мир…
ага, и как работает интернет пхп программисту тоже знать не зачем :)
Почему выбрали нашу компанию?

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

А «интересная работа» как раз и есть один из нормальных ответов на вопрос «Почему вы выбрали нашу компанию». Практически все люди, которые у нас остались надолго и счастливо, знали, почему они пришли к нам — видели разрабатываемую систему, видели решения, которые мы делаем, хотели набраться опыта, скажем.
Нет, не уйдет, это стереотип какой-то. Обычно люди не меняют работу просто так. Её меняют только по нужде — плохой коллектив, слишком маленькая зп., напряжённая скучная работа и т.п. Перебегают на небольшой подъём только больные или очень нуждающиеся. У остальных же психология «Мирится лучше со знакомым злом, чем бегством к незнакомому стремится».
И уж точно не надо преуменьшать важность бабла в вопросе выбора работы.

Нельзя оценивать интересная работа, или нет, не работая в компании ни дня.
Хотели набраться опыта? Вы студентов набирали за минимум бабла под лозунгом «У нас круто, здесь вы получите опыт»?

Я открою большую тайну. При выборе работы для человека есть только два первых критерия бабло и перспективность роста. Всё остальное приходит потом (оценка коллектива, организации, интересности), и оценить это до того как поработал он не может. Влиять эти факторы будут только на цену вопроса, и на время которое человек проработает.
А «Я набрался опыта» — это мантра для того, что бы заткнуть внутренний голос, который говорит «тебя наебали».
Попробуйте прикинуть, какое количество из людей в этом треде хотели бы работать в Яндексе? В гугле? В студии Лебедева (это по большей части касается дизайнеров, для программистов там интересных горизонтов нет, мне думается)? Почему? Не потому, что там много платят, а потому, что задачи, которые надо решать, потенциально значительно выше тех, которым занимаешься прямо сейчас. И это чувствуется извне, без проработанного дня в этих компаниях.

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

Но в любом случае, я к чему — сам вопрос Шевчука абсолютно логичен. Если на него последует ответ типа вашего «Лол, да похуй, мне от работодателя нужна стабильность в материальном обеспечении моей семьи, за которую я буду давать оговоренное количество работы» — это тоже нормально. Главное, чтобы у человека были какие-то осмысленные приоритеты и требования к работодателю. Чтобы работодатель тоже мог оценить, не разочаруется ли потом кандидатик, и не будет ли потом проблем. «Я выбрал вашу компанию потому, что у вас только интересная работа!». Нет, сынок, это не так, скажем иными словами — «есть работа, встречается и интересная».
Не-а. Там хотят работать, потому что:
1. Там реально хорошо платят.
2. Там больше перспективы роста.
3. Они не «чёрный ящик». Как там устроен быт им известно, а значит одним риском меньше.
4. Это классно выглядит в резюме.
А задачи, вообще-то те же. Просто решение должно быть качественнее, а значит уровень исполнителя выше.
В Самсунг, вон, народ не сильно рвётся работать.
И это достаточно самонадеянно — ставить себя в такой ряд.

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

Да дебильный это вопрос, и ответ на него всегда будет плохим. Или это способ поставить человека в неловкое положение? Типа ты или скажешь правду и будешь выглядеть как жадный корыстолюбец, или лизнёшь нам задницу во имя работы?

1. В студии Артемия Лебедева? Больше всего вынуждены платить фирмы не настолько знаменитые.
2. Не обязательно. Гораздо внушительнее выглядят перспективы роста ПОСЛЕ этих компаний.
3. Может быть. По красивым фоткам офиса разве что.
4. Абсолютно.

> А задачи, вообще-то те же. Просто решение должно быть качественнее, а значит уровень исполнителя выше.
Ну да, те же задачи, только уровень самого решения выше, рассчитано оно под другие нагрузки, под другой стандарт качества, под другие размеры команды, приучает к методикам разработки более высокого класса и так далее, и далее — так я не понял, вы со мной спорите или все-таки соглашаетесь по поводу опыта? ;)

> Значима одинаково для всех.
Спорный факт, но в данном случае спорить не буду — мотивационный вопрос штука сложная. Я с ним сталкиваюсь часто, и выработал свой набор выводов, но, повторюсь, спорить не буду.

Я не понимаю, что значит «дебильный вопрос» и почему ответ на него всегда будет плохим. Вы не можете ответить на этот вопрос? Вы не считаете, что надо знать ответ на этот вопрос? Дебильным может быть только вербализированное ОТНОШЕНИЕ спрашивающего к ответу, но в исходном шевчуковском спаслании ничего про это не говорилось. Наоборот, была применена грамотная формулировка — «интересно узнать что же все-таки интересует соискателя.»
Вопрос может быть дебилен сам по себе.
Если хочется узнать «что же все-таки интересует соискателя» можно спросить «Что же вас интересует?». А не задавать вопрос которым ставите человека в положение описанное мной выше.
потому что в Самсунге надо реально вкалывать, у корейцев переработка по 1-2 часа в день норма корпоративной культуры
Это я к тому, что
«что задачи, которые надо решать, потенциально значительно выше тех, которым занимаешься прямо сейчас»
далеко не самый главный аргумент выборе работы.
Я открою вам большую тайну, если вы пошли программировать из-за «бабла и перспективности роста», то вам не стоило этим заниматься. Вы не программист по своему характеру.

Вам ближе подошел бы ритейл, банки… и при этом желательно средние, быстрорастущие компании. (В крупных бабла и перспектив меньше)
А где это я сказал что шёл программировать из-за «бабла и перспективности роста»?
Я сказал что программировать для компании я буду за бабло и преспективность роста. А для души у меня есть опен-сорс.
А с таким подходом, вы заработаете себе психическое расстройство :)

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

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

Hint: Пример из дрессировки собак. Если собаку и бить и ласкать за одно и то же действие, то она станет неуравновешенной и опасной.

Поэтому или научитесь любить свою работу, или попытайтесь сменить ее. Станьте хотя бы ПМ, а не программистом.
> невозможно заниматься одной и той же вещью и испытывать разные эмоции
Гораций, много в мире есть того, Что вашей философии не снилось.

Человек имеет достаточно весомое отличие от собаки.
А учить что мне делать не надо, я советов не просил.
Это не философия, это психиатрия :) рекомендую.

А насчет учить… Вы же пришли сюда с готовностью учить :) Пишите какие-то обобщения о психологии людей :)

Так что не удивляйтесь и не возмущайтесь, если с вами так же поступят и будут учить :)
Философия тут — синоним науки. Шекспир — рекомендую.

Где это я учил? Я тут возмущался сдандартным, но дебильным вопросом, который ставит собеседника в неловкое положение.
Спасибо за Шекспира :) но перечитывать меня пока не тянет.

Рекомендую Гранина «Иду в грозу» и «Кто-то должен» там есть некоторые моменты, которые объяснят мою позицию :)

Неловкое положение — это личные комплексы. Просто действительно огромное число совсем ничего не знающих, и учившихся по Котерову…

Я честно скажу, на половину вопросов я не знаю точных ответов :) Те же типы мне пришлось посчитать на пальцах. Ну не помню я что их 8 :) зато помню что null почему-то считается отдельным типом.
Но смысл именно в том КАК вы будете отвечать, если у вас нет точного ответа. И, просто поверьте, человек с опытом и начинающий ответят по-разному :)
> Неловкое положение — это личные комплексы.
Что за бред? Воспитанный человек может попасть в неловкое положение. Только наглое невоспитанное быдло не может.

Я не говорю о всех вопросах, а только об одном, которое я неоднократно слышал. На него как не ответь — все нехорошо. Вот если сказать правду -«Хочу больше денег» — реакция в большинстве будет как у ораторов выше:
«Поменяет на другую где дают на 100 баксов больше». Что не так совсем.
А врать о «опыте» и «больших задачах» — лизать задницу HR'а, ради работы.
Да печаль же какая!

А в чем сложность ответить правду? Если компании не нужны люди работающие в первую очередь за деньги — то возможно в этом есть смысл? А если нужны, то вас возьмут (если проф-навыки подходят).

Вообще меня эта феерия с «воспитанностью» просто убивает. Мы крайне воспитаны, но работу меняем исключительно из-за денег — супер.
Это, простите, нонсенс.
В том, что мне с HR'ом не работать. Работать мне в компании совсем других людей. А он, если правду сказать, меня сходу забракует по вышеперечисленным соображениям.

Что именно нонсенс? Быть воспитанным реалистом — нонсенс?
Поясняю, вам работать в компании людей подобраных по определенному критерию. Вы будете там белой вороной, для людей с «тонкой» душевной организацией и «воспитанностью» это не самое лучшее положение.

Быть воспитанным и при этом стеснятся говорить правду — это нонсенс.
Или у вас в воспитанность закладывается мем «деньги — это грязное зло» и о нем говорить неприлично?

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

Это простите фикция, а не воспитанность.

Фух, я утомился, я не профессиональный психолог. Просто повторюсь, или ищите возможность работать без негатива или меняйте работу. Вам просто будет очень сложно жить с этим.
У вас что-то с восприятием, галлюцинации может быть. Вы активно приписываете мне какие-то особенности которых у меня нет. Что такое «тонкая душевная организация», и почему воспитанность в кавычках? У Вас на работе одно быдло невоспитанное работает, воспитанным людям там трудно?

Где это я сказал «стеснятся»?
«Стеснительность — это нерешительность, отсутствие непринужденности в действиях от застенчивости, робости. » (с) Толковый словарь Ушакова
Тут нет никакой робости, тут банальное осознание того, что твой ответ HR, будучи склонным к стереотипам, не поймёт. Или не примет, ибо ему промыли мозг о «команде», «опыте» и подобным корпоративным мантрам. Он же первым и считает разговоры о деньгах «это грязным злом». Видел это неоднократно.

Не вы читаете там что-то свое. Пожалуйста, когда отвечаете мне, читайте мои посты, а не припысывайте мне свои мысли.
Ну или преставайте принимать вещества.

Вот с чего вы сделали такой убойны вывод обо мне? Вы меня по 3-м постам знаете.
Я работаю на дядю за деньги.
За идею — не работаю. За интерес — с большим удовольсвием, сам себе дома. Но на контору я работал и буду работать ТОЛЬКО за деньги. Не за идею или интерес, или опыт или что там есть ещё. Это всё — найобка. В отношениях работодатель-работник «идеям» и «интересу» места нет.

Повторюсь и я — не учите меня жить. Я в Ваших советах не нуждаюсь.
Это у вас с восприятием. Это вам промыли мозги о HR, о работе которых вы имеете, прямо скажем, хреновое представление. Либо вам просто «повезло»(на самом деле это закономерность) сталкиваться с такими же как вы «профессионалами», которые работают за «бабло и перспективность».

>> Тут нет никакой робости, тут банальное осознание того, что твой ответ HR, будучи склонным к стереотипам, не поймёт. Или не примет, ибо ему промыли мозг о «команде», «опыте» и подобным корпоративным мантрам

Все гараздо проще и банальнее, если фирме нужны люди «за деньги» то они будут искать именно таких. Если нужны «идейные»/«командные» (подставьте свое по вкусу), то будут искать именно их. Если вы им не нужны, то идите в… у — другую компанию.

Вы же хотите устроится исключительно из каких-то своих целей :) и собираетесь юлить и ищите способ как бы «воспитанно» обмануть HR :) А тут какой-то дурацкий(читайте неудобный для вас) вопрос :)
Дурака — обманите.
Специалиста — нет.
Просто примите как факт — процесс поиска работы и работника вещь обоюдная. Если интересы с двух сторон не совпали — любви(работы) не будет.

И, да, якобы воспитанность тут совсем не причем :) тут нужно немного знаний и немного честности :)

Так что работайте (живите), на здоровье :) Но я бы в одной компании с вами работать не стал.
А, так вы HR? Ну, так бы и сказали.
Пальцем в небо :)
Я не HR :)
А что ж вы так завелись? Посылаете куда-то, ярлыки вешаете. Закономерность увидели какую-то. Или все-таки вещества?
Фирма всегда ищет «идейных», «командных». Таким платить можно меньше, под предлогом «высшей цели» «инновационной разработки» или что они там придумали. Вы на это повелись? Поздравляю, вы — лох.
Этот вопрос любого здравомыслящего человека ставит в положения или врать, или рискнуть завалить собеседование. Ну а жополизам и наивному контингенту проще — одни лизнут о «крутости компании» другие — о «опыте», и будут верить в это. А именно такие и нужны, или наивные, или жополизы, судя по тому, что такой вопрос есть. На них, как я говорил, экономить проще.
Будет у вас фирма…
а впрочем, у вас ее не будет :) вы слишком «воспитанный» реалист и любите врать :)

В общем удачи :)
А, так вы мне предлагаете поставить себя на место главы фирмы, и самому искать оправдане в поиске тех кого можно «развести» на идею?
Это оправдание такое?

И где это я соврал?
Я вам уже ничего не предлагаю.
Захотите понять о чем я — пишите в приват.

Все.
В качестве запоздалой реакции, прочел подветвь вашего обсуждения с Ферроманом: я бы с удовольствием принимал на работу работниками бывших генеральных директоров или стартаповцев. Потому что спор с человеком без руководящего опыта, без осознания всех проблем взаимоотношения с персоналом и понимания КОММЕРЧЕСКИХ задач, стоящих перед фирмой, вырождается вот в такой агрессивный разговор с человеком, который думает, что он-то уж точно не лох, и напрасно работодатель постоянно пытается его наебать глупыми придирками и нелепыми требованиями.

И этот опыт нельзя получить извне, наблюдениями со стороны. Только на собственной шкуре. Зато из руководителя получается хороший работник — он-то знает, что от него ожидается, знает, на что обращают внимание наверху и почему они требуют то, что требуют, и как можно легко продвигаться вверх просто делая то, что нужно делать. Нужен организационный и обязательно коммерческий опыт. А то некоторые думают, что деньги появляются сами по себе, просто их постоянно зажимают из вредности.
— Почему ушли с предыдущего места работы?
— Почему выбрали нашу компанию?
— С чего начали изучать программирование?
— Почему выбрали PHP?
UFO just landed and posted this here
Думаю, что было бы правильно не думать о деньгах при таких вопросах.
А, если рассматривать именно меня, то я вообще не думаю о деньгах при любых вопросах.
Кстати вот вам вопрос: вы считаете правильным пропорциональность зарплаты сотрудника и его знания/навыки?
Поиграем с вами в ребусы. Если ответите правильно, то думаю вам и так ясно, почему меня не заботит вопрос денег.
UFO just landed and posted this here
Да все проще. Есть среднерыночные расценки по каждой должности для данного региона. На собеседование солидные люди уже представляют, что они предлагают, а другие солидные — что соискают.
«Схемы формирования зарплаты» — придуманный способ обмана, все равно в долгосрочной перспективе отдача от человека величина постоянная.
обиделся на рекрутера и ушёл? о_0' глупо…
Ну это, кстати, безобидные вопросы. Второй и четвёртый глупый, но не безнадежный, их HR всё-таки задаёт, можно списать на то, что он не в теме. А вот технические вопросы во многим смешные, т.к. требуется человек который выучил умные слова и освоил пару фреймворков. Многие люди не знают, например, _почему_ в том же jQuery можно делать $(rule).click(function(evt){...}). То есть что при этом происходит не ответят и соотв. запоминают как догму, что в jQuery так можно, не анализируя, что это возможность языка. Так же и с пхп-фреймворками.

Именно поэтому надо сначала общие вопросы задавать, я считаю.
UFO just landed and posted this here
Чувак, а может проще? Есть же испытательный срок. Вам умом блистать или работу работать?
Вот я кажется знаю почему столько проблем в IT — слишком расовооднородная отрасль, раса ботанов.
UFO just landed and posted this here
Что-то я незнаю никакого быстрого способа реверсировать строчку на пхп, без использования цикла.

Да, и за бумажки Я тебя тоже убью.
Развернуть:

$rev_string = strrev($string);

Посчитать количество слов:

$count = count(explode(' ', $string));

Вот за ЭТО Я люблю PHP!
UFO just landed and posted this here
таким умникам я говорю — я тоже сломался :) вы еще скажите, что компьютер сломан, как запустить IDE. Ограничивать искуственно в решении задачи — высшая глупость. Ваш шашечки или ехать?
UFO just landed and posted this here
У таких селекционеров всегда дырка в своей же наследственности. Перечитай внимательно его пост:
«Вопрос первый: «напишите на любом языке код, который развернет задом наперед текстовую строку (in place, т.е. без выделения нового буфера)....»
Язык можно любой. Так и запиши текст кода: «Берем текстовую строку и разворачиваем ее задом наперед, но in place», я бы конечно пошел дальше — например предложил бы смотреть шире, предложить ему более мощный язык на котором один пробел как раз такая функция. Думаю после такого ясно будет понятно, что даже если человек за 5 минут не может 10 простых строк, то по крайней мере будет с ним о чем умном поговорить.
UFO just landed and posted this here
Лучшие люди скромные и застенчивые. Им меряться остотой ума и изящностью выражений не по природе. Тем более в такой загадочной области как ИТ, где требуется обстоятельность и вдумчивость, ни к чему этот эрудизм и стрессоустойчивость. Все эти барижьи стандарты принесли многочисленные манагеры толпами повалившие в ИТ, как только здесь появилось, чем легко поживиться. И отбирают к разделу бюжетов таких же как сами. По факту нормальному коллективу нужны пусть медлительные и ронимые, да обстоятельные и честные, ибо для результата реального, а не очередного распила с закрытием липовыми актами, и процесса не на один проект, так выходит лучше.
UFO just landed and posted this here
Ну не работать же с таким, если себя уважаешь.
UFO just landed and posted this here
Вполне нормальный тест, позволяющий за пару минут расставить точки над i. Почему аналогичный тест для программистов вызывает такую истерию в комментах — понять не могу :(
У нас этот страшный текст был на экзамене по русскому. Лет 8 прошло, а всё трепещу
«Что-то я незнаю никакого быстрого способа реверсировать строчку на пхп, без использования цикла.»
После этого вас можно смело отфильтровывать, как человека, не умеющего читать задание. Там не написано ни слова, про то, что нельзя использовать циклы. ;)
Характерный ответ.
Элементарные они когда знаешь ответ. А на собеседовании много факторов влияет, начиная от стрессовой ситуации.
UFO just landed and posted this here
Нет. Потому что, если бы меня разбудил бы ночью с таким вопросом далеко бы ты не ушел.
UFO just landed and posted this here
Ну и сны…
«Если человек приходит и говорит «я написал mail.ru» (и доказывает это) — строки мы разворачивать не будем.»
Можно в цитатник.
А на самом деле прекрасные люди студенты изучившие джумлу, если они там реально разобрались с этим фаршем, то какой же у них потенциал!
UFO just landed and posted this here
Нет не все. Я как бы борец со снобизмом.
такого кандидата логичнее распросить о том как он писал mail.ru, как проектировали как внедряли, с какими трудносями столкнулись и так далее

мы, например, таким подвинутым предлагаем рассказать как бы они делали бесплатную почту, и смотрим насколько построенная ими система будет неоптимальна
Есть определенный базовый уровень для элементарных вопросов — это задачи, с которыми человек работает постоянно. Ваш вопрос 99% решается использованием встроенных функций. Оставшийся вопрос решается поиском. Как я уже писал выше, оперативная память — она для более часто используемых вещей.
UFO just landed and posted this here
Во-первых, ответ на такой вопрос на собеседовании мало что говорит о том, как человек будет работать в дальнейшем.

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

В-третьих, для PHP ответ «воспользоваться встроенными функциями» будет единственно правильным (странно, что вы этого не понимает).

P.S.: BTW, я тут как раз работаю с MMORPG в количестве 5-и штук и как-то вот не приходилось мне пока ни разу решать такие идиотские задачи.
UFO just landed and posted this here
Почему же, представляю: я уже почти 4 года провожу собеседования. И моя задача не отсеять кандидата, а найти человека в команду.
UFO just landed and posted this here
Дык профессионал — это ум, знания, опыт — а не только знания. И даже не два из трёх.

P.S.: даже и не подумал про минусы, да и вобщем плевать на них.
UFO just landed and posted this here
Из знакомых мне php-программистов — такую, казалось-бы, простейшую вещь — как ручное перевертывание строки — напишут очень немногие, 99% при этом скажет что в php есть встроенная функция и не волнует. Тем не менее все они работают, некоторых даже считают ценными специалистами :)
З.Ы. Берете? :P
for($i = 0; $i < floor(strlen($str) / 2); $i++) {
  $str = substr_replace(substr_replace($str, substr($str, strlen($str) - $i, 1), $i, 1), substr($str, $i, 1), strlen($str) - $i, 1);
}

$words = 0;
for($i = 0; $i < strlen($str); $i++) {
  if(' ' === substr($str, $i, 1) || "\n" === substr($str, $i, 1)) {
    ++$words;
  }
}
UFO just landed and posted this here
UFO just landed and posted this here
И кто в циклах вызывает strlen()?

Ну это только в синтетическом примере :)
Не, не берете :) проверил в интерпритаторе — сам себя запутал с попыткой обойти отсутствие буффера :)
мой вариант ф-ции переворота букв

return array_reverse(preg_split('//', $word));

:D
Подсчет кол-ва слов:

return count(preg_split('/[\s\r\n]+/', $words));

:)
UFO just landed and posted this here
Фетишизмом PHP я уже давно не занимаюсь, поэтому любое «написать» воспринимаю как рутину — главное же не красиво написать, а чтоб задача была выполнена в кратчайшие сроки. При этом конечно учитываются такие факторы, как производительность, читабельность и тп. Но согласитесь, в строках и кусках кода в 5 строк ни читабельность ни производительность особо не выгадаешь, а вот времени на написание и отлаживание циклов потеряешь ;)

На собеседовании если претендую на хорошее место, готов хоть свинкой похрюкать, не то что на бумаге писать :)
UFO just landed and posted this here
скажите, плиз — где граница ваших уточнений «без ХХХ»? так можно скатится до «напиши без головы» и потом к тому как в анекдоте — нет ручек, нету конфеток.

P.S. практический смысл таких вопросов мне непонятен никак. вероятно, туповат.
на динамических языках этот вопрос не очень удачен, лучше его давать на чистом C
да, implode забыл…

return implode('', array_reverse(preg_split('//', $word)));
UFO just landed and posted this here
Так уж получилось, что цикл for( ) давно не пользую — так как-то сложилось, если цикл, то foreach. Поэтому, когда вижу for($i =0; ....), сразу вспоминаю либо свои первые потуги, либо учебники по php. :)
For в разы быстрее foreach, почитайте тесты.
Не там вы копаете, имхо. Исправление кривых алгоритмов и плохо настроенного софта железа, + всякие eaccelerator дают ускорение работы. А фишки языка даже если и дадут — копейки. Раньше ещё говорили что двойные кавычки в php тормозят.

Хотя скиньте, плиз, ссылки на сравнение for и foreach, если таковые есть.
Да хотя бы вот: www.phpbench.com/.

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

Понятно, что исправление алгоритма даст больше потимизации, но и писать сразу оптимизированно — особенно, если это не составляет особого труда — по-моему, тоже неплохо. Да и потом, на больших объёмах данных, например, изменение типа цикла я так думаю существенно ускорит работу.
По вашей же ссылке читаем:

> Read Loop:foreach() vs. for() vs. while(list() = each())
> In all cases I've found that the foreach loop is substantially faster than both the while() and for() loop procedures.

Т.е.foreach быстрее :)

И там же написано что двойные кавычки проигрывают одинарным единицы процентов :)

Но это неважно. Важно то, что смена кавычек или циклов играет роль микросекунд, т.к. больше всего тормозит сервер, жесткий диск, канал, подключение к базе ну и сложные вычисления. Если бы у меня был цикл, который работал бы несколько секунд, возможно, я бы начал его оптимизировать. К тому же скорее всего оптимизировал бы я его сменой внутреннего кода итерации, а не for- на foreach, сам foreach секундные тормоза может навести только если у вас миллиарды итераций :)

Кстати писать сразу оптимальные конструкции на php довольно сложно. Компилятор и оптимизатор постоянно меняются. Сегодня одна конструкция работает быстрее, завтра другая. Раньше foreach($var as $n) копировал память, и надо было писать foreach($var as &$n) (давно это было), сейчас неактуально. Это ещё один повод не заморачиваться на языке, а больше думать о железе, софте и алгоритмах.
Гм, странно, в одном тесте у него for быстрый, а в другом — foreach. Ладно, черт с ним — таких тестов полно, на самом деле, можно ещё поискать.

Я к тому веду, что лучше заморачиваться на всём, если — если — это не замедляет существенно производительность самого программиста.
Когда были тормозные железяки и пхп ранней версии с багами — это было важно, со временем (уже сейчас) — отходит в небытие.
Что отличает проекты под высокой нагрузкой, взять хабр или контакт?
Не столько качество кода, сколько грамотная архитектура (много серверов), правильно настроенное железо и ПО на нем, оптимальные алгоритмы и оптимизация _узких_ мест. Поскольку мы увидели что кавычки, циклы и т.п. узким место не является (в виду того, что вносит малозначимый вклад в общие тормоза), я над этим уже давно не думаю.
Почему одна CMS тормозит больше другой, потому что у них разные алгоритмы, а не из-за качества кода.
Дело в том, что таких «мелочей» довольно много и из них складывается существенный общий тормоз.
не складывается, т.к. например подключение к базе и просто рандомные тормоза сервера из-за нагрузки на нем в несколько сотен и даже тысяч раз дольше чем тормоза от мелочей.

Воспользуйтесь профайлером xdebug — www.xdebug.org/docs/profiler и сами убедитесь про PHP.

Спасибо! :))

Ладно, я не буду спорить просто потому, что мне становится это не очень интересно, поскольку я с этими мелочами сталкиваюсь почти каждый день на протяжении почти 4-х лет. Прошу не считать это голословным утверждением, чтобы сказать последнее слово — просто действительно не хочется спорить.
тоже задолбало спорить :D
Угу, без интерпритатора конечно сложно :) С интерпритатором у меня примерно тоже и вышло :)
$str = 'abcde';
$len = strlen($str);
for($i = 0; $i < floor($len / 2); $i++) {
	$char = $str{$i};
	$str{$i} = $str{$len - $i - 1};
	$str{$len - $i - 1} = $char;
}
echo $str;

Только обращение к строкам через {} или [] — deprecated функционал, причем от версии к версии запрещают то одни, то другие кавычки, так что в идеале нужно это переписывать на substr/substr_replace.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
$str = 'http://Habrahabr.ru/';
for($m=strlen($str),$x=$m-1; $x>=0; $x--) {
	$str .= $str[$x];
	$str[$x]=null;
}

так пойдет? )
$str = 'esrever gnirts';
for($x=strlen($str); --$x>=0;) {
	$str.=$str[$x];
	$str[$x]=null;
}

хардкор)
UFO just landed and posted this here
1) без выделения доп. памяти я не представляю как решить эту задачу ))
2) я выделил минимум, только 1 символ )

ps хотя надо еще подумать )
UFO just landed and posted this here
вот без выделения буфера ))
но необходимо выделять под переменные хранящие размер строки

$str = 'http://habrahabr.ru/';
$m=strlen($str)-1;
$m2=floor($m/2);
for ($x=0;$x<$m2;$x++) {
	$str[$x]   = $str[$x]^$str[$m-$x];
	$str[$m-$x]= $str[$x]^$str[$m-$x];
	$str[$x]   = $str[$x]^$str[$m-$x];
}


хотя если вычислять нужные размеры на «лету», то получается:

$str = 'http://habrahabr.ru/';
for ($x=0; $x<floor((strlen($str)-1)/2); $x++) {
	$str[$x]                 = $str[$x]^$str[(strlen($str)-1)-$x];
	$str[(strlen($str)-1)-$x]= $str[$x]^$str[(strlen($str)-1)-$x];
	$str[$x]                 = $str[$x]^$str[(strlen($str)-1)-$x];
}

не оптимально, зато гламурно)
UFO just landed and posted this here
Жесть, это что было? :)

Блин сейчас сяду разбираться как оно работает :)
как что? ))
1) вариант разворота строки
2) внутри цикла вариант $c=$a; $a=$b; $b=$a; только без $c ))
ой, тоесть:
$c=$a; $a=$b; $b=$c;
Не, меня интересует именно вопрос возведения в степень :)
Сейчас, я побитово это смотрю :)
Угу, спасибо, я уже нашел свою ошибку.

Просто почему-то подумалось про степень и глаза на лоб полезли :) «как оно работает?» :)

Сразу начал прикидывать — при возведении возможно происходит переполнение и мы выполняя его получаем сдвиг по битам.
Тьфу, какашка, сам себя запутал, это банальный xor, а не возведение в степень :)
Всегда, кстати, смущало. Разве $char — не буфер?
Ну вот меня это также смутило, как и сохранение размера строки, потому и пытался изначально решить без нее, но заблудился в строковых функциях :) любая переменная — суть буффер между исходными данными и конечным результатом, но решить задачу без нее так сходу у меня не вышло, языки такие простейшие операции решены заведомо — всетки развращают :(
Это буфер, но константной длины, т.е. не зависит от размера входных параметров.
Асимптотически размер занимаемой для решения задачи памяти от такого буфера не изменится.
Конечно в задаче сказано неформально, но такая интерпретация естественна (имхо).
> Вопрос первый: «напишите на любом языке код, который развернет задом наперед текстовую строку (in place, т.е. без выделения нового буфера). Если справились — напишите процедуру, подсчитывающую количество слов в заданной строке.»

Эм. В разных языках разные строковые ф-ции, разные типы данных, разные структуры. В некоторых строку нельзя представить массивом букв, да и если можно то индексы букв начинаются в одних языках с нуля, в других с единицы. Также если кодировка мультибайтная, то каждая буква != 1 байты, а большинство языков работает с байтами.

;)
UFO just landed and posted this here
Понятно :)
Я придрался, потому что как раз и не люблю «абстрактные» задачки. Решение абстрактной проблемы это «дым над водой», есть такой антипаттерн программирования. Потому что в реальности все будет отличаться как правило и решения абстрактных задач конечно и говорят что-то о человеке, но не так подробно, как решения реальных задач, имхо :)
UFO just landed and posted this here
не, не, не, Девид Блейн… Писать на абстрактном языке это не 2+2 :)

Писать на абстрактном языке, это как считать 2+2 на счетах — вроде бы и процесс есть, но моск используется неправильно :)
UFO just landed and posted this here
В свое время пострадал от излишней абстракции, когда ставилась задача сделать тот или иной проект с учетом развития на будущее.
Да, что-то даже было придумано вперед, так что пришлось к месту через полгода-год, но времени было потрачено настолько много, что можно было бы сделать 3 проекта если ориентировать на текущие требования, а не абстрагировать их. Кроме того, часть изменений среды предвидеть не удалось и пришлось все равно серьезно рефакторить.
С тех пор решаю задачи в рамках видимости требований :)

Также почему я отрицательно отношусь к абстракции — потому как многие люди, мало разбирающиеся в вопросах, с которыми ко мне обращаются, любят абстрагировать проблемы и делать из них выводы :) Вместо того, чтобы сказать «я вижу на экране следющее сообщение», они говорят что-то более умное вроде «бухгалтерский аккаунт недоступен» :) После чего приходится работать не только программистом, но и Шерлоком Холмсом, чтобы вернуться все же к объективным проблемам :)
Кстати. Написание кода — тест для программиста. Абстракция и тп — для архитектора.
Вам кто нужен был?
UFO just landed and posted this here
UFO just landed and posted this here
надо еще уточнить, строка в стиле С или Паскаля :)
UFO just landed and posted this here
Я бы еще добавил что во многих языках есть разница между строкой которая иммутабельна, строковым буфером и массивом символов. И полученный алгоритм будет только выглядеть как удовлетворяющий условиям.
UFO just landed and posted this here
1. strrev(«какая-то строка»).

2.
function foo($string) {
return count(explode(' ', $string));
}

3.
function fib($n)
{
return $n == 0 || $n == 1? $n: fib($n — 1) + fib($n — 2);
}

4.
function fact($n)
{
if ($n < 0) return 0;
if ($n == 0) return 1;
return $n * fact($n — 1);
}

И что можно сказать о моих знаниях по этому десятку строчек?
UFO just landed and posted this here
> Суть в том, что с Вами можно говорить дальше.

за факториал на стэке товарищ отправился бы вслед за остальными. Нет?
UFO just landed and posted this here
Если это не позиция джуниора, то после таких вопросов я бы подумал а стоит ли дальше тратить время на дальнейшее собеседование? И дело даже не в том что задачи решаемыми средствами языка, а в том что мне предлагают задачку для школьника 10 класника.
UFO just landed and posted this here
Очень много «Я» в постах.
UFO just landed and posted this here
UFO just landed and posted this here
У вас какие-то проблемы с работой или личной жизнью?
UFO just landed and posted this here
Для выплескивания негатива могу посоветовать бассейн, спортзал. Пройтись по парку пока еще от лета что то осталось. Пьянка с друзьями тоже помогает расслабится.
UFO just landed and posted this here
UFO just landed and posted this here
Сразу видно что вы набираете спецов три в одном. На вашем сайте появилась горизонтальная прокрутка в FF3.5
Надо понимать 1280х1024?
… действительно надо бы пофиксить.
UFO just landed and posted this here
Получили бы вопрос — «А чем обусловлен Ваш выбор?» — боюсь большинство «пацанов» не сможет аргументированно ответить…
UFO just landed and posted this here
Зачастую выбор обусловлен ТЗ, если нет — то мы используем PostgreSQL, преимущества оного я знаю, а Вы?..
UFO just landed and posted this here
Я бы и IE с радостью не использовал, но что толку?

Холивар разводить не стану, благо статей написано валом, мне лично очень нравится в PostgreSQL его следование стандартам ANSI SQL и логотип :), во всем остальном разница не так уж велика (см. версию MySQL 5.1 и даже 6.0); но все же по производительности/расширяемости/секурности выбор за PostgreSQL…
UFO just landed and posted this here
UFO just landed and posted this here
Как бы соотношение производительности/расширяемости/секурности у PostgreSQL лучше, что-то не понятно?
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Как-то раз на собеседовании технический специалист спросил, что я буду делать, если встречу что-то непонятное (речь шла о PostgreSQL, с которым я на тот момент ни разу не работал). Я логично ответил «почитаю документацию». После чего HR-менеджеру было выдано резюме «профессионал».

:)
Извините, но это жесть.

> — Почему CSS это каскадные таблицы стилей?

Вам, по моему, вакансию следовало немного по-другому называть — «Энциклопедист» :)
UFO just landed and posted this here
Елки ж палки, всю жизнь использую, а почему все таки «каскадные» — ни разу вопрос не возникал :( Здесь явно наклонности энциклопедиста нужны…
Ой, я сделал неправильные выводы. Вы же просто пытаетесь в этом посте втюхать наивным потенциальным соискателям как можно больше литературы…
Переубеждать и оправдываться не стану, видать во всех моих действиях можно усмотреть некий иной смысл О_о
UFO just landed and posted this here
о, да да да =) моя любимая часть на бредособеседованиях =) «угадай что это» называется =) Так и хочется всегда ответить: «Я так понимаю, большую часть времени в вашей компании мне нужно будет разгадывать кроссворды?» =)

Чтобы понять, умеет ли претендент читать чужой код, надо посадить его за терминал и открыть ему проект любой CMS, попросить прокомментировать действия. А не давать кусок кода откуда-нибудь (причем желательно по сложнее и по не понятней), чтобы потом сказать: «Да… слабо, реально слабо».
UFO just landed and posted this here
вопрос для AntonShevchuk: скажите, Антон, я вот прочитал всю ветку комментов, а почему практически после каждого коммента вы ставите "..."? это так модно или просто есть доля задумчивости в ответе? странно, вопросы такие «бодрые и крутые», даже про #F00 спросили (не понимаю, зачем PHP дев это должен знать, верстальщика-оптимизатора пинать будете), а комменты с долей сомнений?
"..." — это дурная привычка, не более…
троеточие после этого коммента доставило!
избавляйтесь от дурных привычек
> это дурная привычка, не более

а почему она не проявилась в самой статье? ;)
Я тоже грешен — имею привычку собеседовать программистов. При этом все-таки осознаю, что собеседую не энциклопедиста, a программиста, и в первую очередь меня интересует опыт и стиль работы, и только во вторую — абстрактные знания. Для этого я прошу просто показать код, который соискатель писал на прежнем месте работы или учебы и объяснить, как он работает. Здесь видно все — насколько человек аккуратен, изобретателен, насколько грамотно распоряжается своим знанием, если наличие такового вообще имеет место. Взглянув на код, я вообще могу не задавать никаких вопросов, а могу и засЫпать ими, в зависимости от расположения планет, наличия лишнего цикла в рассматриваемом коде или неряшливого внешнего вида соискателя. Однако же в большинстве случаев достаточно пристального взгляда на код.

Вашей же изобретательности в нелегком деле собеседования программистов можно только посочувствовать.
Код с предыдущего места работы очень часто имеет свойство за пределы этого самого места работы не выходить, о чем подписываются соответствующие бумаги.
Это непринципиально, у любого программиста всегда найдется код, который можно показать. Не у всех правда находится код, который _не стыдно_ показать…
Это если у программиста нереально много лишнего времени, которое он тратит на кодинг «на сторону».
Любите же вы из пальца всякие причины повысасывать…
Почему из пальца? Вполне реальные причины. У меня три предыдущие работы были такими. Здоровые проекты на иноземных заказчиков и все под бумажку о нераспространении.
По-моему нормальная ситуация. Кому охота чтобы тексты проекта по интернету гуляли?
Это в веб-студии, где сайты-визитки за неделю клепаются, можно горы кода выносить.
А до тех своих трех работ вы чем занимались? Вас туда совсем без опыта взяли? Извините, я так не могу.
А как вам код, который я писал пять лет назад, покажет мой текущий уровень? Мне и самому смотреть стыдно будет в то, что я тогда писал. Не говоря уже о том, что с тех пор успели не раз обновиться версии PHP, MySQL, появились фреймворки, между тем, что было пять лет тому и сейчас разница колоссальная.
Равно как и между теми «проектами», которые я пяткой левой ноги могу накидать за пару недель по выходным для себя и тем, чем приходится заниматься на реальной работе.

И кстати да, на самую первую работу всех берут без опыта. А как бы иначе люди этот опыт получали? :)
Не думаю, что ваш случай типичен. И даже если так, то особого недостатка в адекватных соискателях нет, в ином случае пришлось бы адаптировать методологию подбора персонала на нечто похожее тому, что написано автором топика.

Извините, но ваш пример просто неактуален.
Не знаю, насколько он типичен, статистики по рынку у меня нет, но любая фирма крупнее 10 программистов и секретаря бумагу о нераспространении подсовывает. Другое дело, что я могу и не подписывать, если оно того не стоит. Или не соблюдать, что большинством и делается.

Ну а насчет актуальности примера… за свою жизнь я прошел несколько десятков собеседований. И только раз меня попросили дать примеры кода. Причем в итоге им хватило открыть URL проекта, на котором я был лидом, чтобы понять, что они мне ничего интересного предложить не могут.

А что у вас нет недостатка в адекватных соискателях, это вам очень везет. Как-то у большинства работодателей наоборот. Соискателей навалом, адекватных нет.
Адекватных мало, здесь общая проблема. Но проблем с кодом никто, как правило, не испытывает.
— Нет эккаунтов на одноклассниках и вконтакте. Есть на википедии.
— Вы приняты.

Ну, а если по теме — подобные посты заставляют идти на монстр.ком и смотреть, что у них там нужно знать. Обычно, достаточно много, но есть и более щадящие вакансии. Вот, например, для профи:
jobview.monster.com/Lead-PHP-Developer-PHP5-OOD-Open-Source-Job-Los-Angeles-CA-US-83014210.aspx
UFO just landed and posted this here
Вы очень неэкономно(!) расходуете свое время работодателя, обсуждая на собеседовании ничего не дающие вопросы.

После вывешивания резюме на тематических сайтах и микроскопической рекламы, у меня почти всегда было по 100-150-200 откликов. Всех пригласите на собеседование? Или будете ковыряться в резюме до потери сознания?

Ваши вопросы надо закатать во вступительную анкету, которую секретарь будет тупо отсылать всем откликнувшимся.
По анкетам сразу же половина и больше фильтруется. Тем кто остался — тестовое задание на пару часов, элементарные основы, которые из каждодневной практики + 3-5 вопросов на знание конкретных узких мест, за которые не пишут в книжках. Фишка в многоступенчатости.

Увы, всего лишь около 1% откликов достойны пристального внимания, и то, не на вакансиях ведущих специалистов.

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

И что там спрашивать из профессиональных вопросов? Да ничего.
Нравится/не нравится, знакомитесь, смотрите насколько вменяемый и контактный человек, разговариваете за жизнь. Потому что это будет ваш сотрудник, видеть которого придется регулярно.

Все уже проверено оптовым методом. Затраты — работа секретаря + 1 (один) рабочий день на собеседования и время проверки заданий (3-4 часа). На собеседовании можно сразу человека не мурыжить (мы вам позвоним) и сообщить, подходит ли он для оплачиваемого испытательного срока.

К сожалению, или к счастью — HR в моей цепочке найма лишний. Просто здесь ему реально делать нечего.
Автору большое спасибо за ссылки на книги!

ПС. Завтра поеду в техническую книгу покупать их :)
UFO just landed and posted this here
мечтаю о том дне когда смогу пройти интервью подобное описанному здесь — blog.gamedeff.com/?p=64 чего и всем желаю.
UFO just landed and posted this here
самое полезное будет, если вы сможете ответить на все вопросы которые там спрашивают.
UFO just landed and posted this here
Мда, вы сильно большого мнения о себе.
Это обычные вопросы, для обычного программиста с опытом.

То что сейчас существует огромная масса разработчиков не способных справится с этими вопросами — это факт. Но это показатель падения общего уровня разработки за счет массовости, а не «зверской» сложности вопросов.
UFO just landed and posted this here
Мда…
Впрочем, вы не первый ошибаетесь в психоанализе со мной :)

Я не переживаю по поводу денег, я просто знаю, что оно того не стоит :) и не надо кивать на заграницы.
Украина — не Россия :) Россия — не Европа :)

Есть такая вещь как производительность труда. Так вот у тех кто хочет себе 4-8к денег в наших странах, явно не лады с экономическим образованием. Нет, хотеть конечно можно :) но…

Вы против зарплаты в 600 у.е.? :) не вопрос, докажите это делом.
Наймите меня за 4к денег :) на пхп-лида я пока не потяну, но через год мы вернемся к этому вопросу и пересмотрим оплату в сторону увеличения :) даю вам гарантию, что к этому моменту навыки у меня будут соответствовать :)
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Жесткое собеседование получается, наверное и оклад должен быть соответствующим :)
Помню как умиляло когда приходишь на собеседование, тебе устраивают подобный опрос и при этом смехотворную зарплату :)
Это еще нормальное собеседование.
Бывает ведь еще сложнее, например,
когда задают вопросы по PHP типа:
habrahabr.ru/sandbox/4994

И плюс к ним добавляются вопросы по js типа:
i = 10;
{new function(w, d){
this.oO = function() {w.i++ < 11? return: d.write(«Запуталсо?»);}
setInterval(function() {this.oO();}, 1000);
}}(window, document);

То тут вообще туши свет.
Радует одно, что зп высока будет:).

Articles