LINUX.ORG.RU
ФорумTalks

Собеседование php программиста

 ,


2

3

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

hh: Здравствуйте!
pr: Здравствуйте!
hh: Что делает этот код: if( $rrr == TRUE ){ $rrr = TRUE; } 
pr: Инициирует переменную $rrr 
hh: Повторить такой код сможете?
pr: Через ООП легко!
hh: Вы приняты!
soomrack ★★★★★
()
Последнее исправление: soomrack (всего исправлений: 1)
Ответ на: комментарий от soomrack

Издали была слышна индийская музыка.

Deleted
()

0. Какие магические методы знаешь? Что это вообще такое? Это методы зарезервированные в php, которые начинаются с двойного подчеркивания “__”.

Это что за бред ? __ в python - это private методы, которые недоступны извне.

SI ★★☆☆
()
Последнее исправление: SI (всего исправлений: 1)

везде по разному

Вариант 1: вы показываете чем вы занимались, сайты/сервисы, могут задавать вопросы как реализовали ту или иную штуку и вы ли это делали, смотрят на вашу логику принятия решений, могут посмотреть просто на код который вы писали ранее (мне это кажется самым адекватным вариантом собеседования к нему же прибегаю и я сам когда нужно кого-то нанять, результаты вполне успешные)

Вариант 2: вам дают тестовое задание на день, до собеседования, потом смотрят если ок, приглашают вас и уже беседуют по Варианту 1.

Вариант 3: вам дают какой-то тест с кучей ерунды типа «что делает этот код, а этот, а вот тут вот что за функция, назовите 10 функций работы с бд и 10 функций работы с ассоциативными массивами» - мне лично этот вариант собеседований кажется ущербным, я не считаю что программист должен все помнить, главное что бы знал где это можно посмотреть :) а те штуки типа «что делает это код с 5 тернарными операторами в одной строке» - ну разбирать надо, я же не пишу такой код и другим не советую :)

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

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

Как-то так

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

а в php private методы это просто private методы, а __ это magic methods :)

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

Это что за бред ? __ в python - это private методы, которые недоступны извне.

Это что за бред? В python вообще нет private методов, есть только соглашение, что все, что начинается с _ извне класса использовать не стоит.

aiive
()
Ответ на: комментарий от soomrack

Что делает этот код: if( $rrr == TRUE ){ $rrr = TRUE; }

Хороший вопрос, кстати.

$ cat q.php 
<?php
$rrr = "Hello";
echo "\$rrr = $rrr\n";
if ($rrr == TRUE) { $rrr = TRUE; }
echo "\$rrr = $rrr\n";

$ php q.php 
$rrr = Hello
$rrr = 1
$ 
i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от vvviperrr

Не совсем. Это вообще похоже на приведение типов, но не совсем полное.

Типа

if($rrr==TRUE){$rrr=TRUE;} else {$rrr=FALSE;}

То есть значение переменной при этом все-таки меняется.

aiive
()
Ответ на: комментарий от Meyer

Затем что php в настоящий момент ничем не хуже альтернатив(python,ruby) для решения задач, которые на него возлагаются.

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

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

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

Эх, человек... Ну зачем тебе пых? Я от него помер...

Потому что человек гуманитарий, а пхп строит мосты между гуманитариями и миром ИТ

Siado ★★★★★
()

на собеседования любят спрашивать (непонятно зачем, наверное для ЧСВ) вопросы типа:

php -a
Interactive shell

php > $test = "qqq";
php > var_dump($test == 0);
bool(true)

Это известный и неожиданный трюк в общем.

http://stackoverflow.com/questions/672040/comparing-string-to-integer-giving-...

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

По данной теме полно материалов. Все зависит от качества вопросов, которые зависит от...

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

этот код ушербный(неполноценый) заменитель [code=php]$rrr=TRUE;[/code] , по мнению представителя нанимателя классифицирующая насколько опытен php-соискатель, по мнению соискателя этот вопрос «ложный друг нанимателя»

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

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

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

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

Ты не понял что он делает? То же что и компания которая задает такой вопрос - он существует и работает, но существование его и его работа бессмысленны.

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

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

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

спс за линк на переполнение_стека

т.е фильтрация значения - эдакая баунд фильтрация. php такой ацкий ассемблер

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

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

Мне интересно, откуда вот этот миф пошёл?

Deleted
()
Ответ на: комментарий от AndreyKl

хотя вопрос что мы хотим, окнечно, остаётся открытым...

Че же открытым? Мы хотим найти человека который это написал, и долго бить его лопатой по рукам и вкручивать в голову шурупы.

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

ну, я про то тебе и говорю. если ты сравниваешь через == то тру будет в случаях цифр, непустых строк, объектов и труъ. а фолс в остальных.

а если через === то тру будет только в случае тру, а фолс в остальных.

зависит от того чего ты имел ввиду.

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

Че же открытым? Мы хотим найти человека который это написал, и долго бить его лопатой по рукам и вкручивать в голову шурупы.

ну, я бы не был столь категоричен. это php и такой способ «приведения типов» в нём вполне приемлем.

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

Я отвечал на:

Видимо нужно ответить, если переменная тру, то пусть такой и остается

И имел ввиду что для этого как раз и надо было написать ===. В другом случае переменная изменится. И станет тру если она например 3.

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

гм-гм. не, ты так хочешь, а на php я бы написал подобным образом без зазрения совести. чтобы _не_ использовать кривых двусмысленных приёмов нужны нормальные инструменты. а если их нет, то зачастую кривые двусмысленные приёмы самый короткий путь к победе. при этом длинные и «правильные» будут не менее бажными просто потому что количество кода растёт чуть ли не экспоненциально[как функция «правильности»].

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

Видимо нужно ответить, если переменная тру, то пусть такой и остается

она и так true. С этим кодом или без него.

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

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

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

if( $rrr == TRUE )
$rrr == TRUE

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

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

ну ок, какая семантика проверки еквивалентности значения переменной и TRUE.

т.е когда нам нужна именно такая проверка?

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

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

Сразу вспоминается EPAM, не знаю кому как - а я так сразу и вспомнил когда проходил у них собеседования на Oracle разработчика.

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

ну как бы в нормальной ситуации (строгая статическая типизация) нельзя булевской переменной присвоить значение отличное от тру или фолс. поэтому проверка на if($trr == true) then $trr = true выглядит странно сама по себе.

а в php это норма. чего из того что я тебе сказал ты не знал?

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

ну, я бы не был столь категоричен. это php и такой способ «приведения типов» в нём вполне приемлем

Ну не скажи. В php есть нормальное приведение типов в виде

$rrr=(bool)$rrr;

А вообще, то что в php слабая типизация не значит, что за типами не надо следить.

aiive
()
Ответ на: комментарий от Alsvartr

она и так true. С этим кодом или без него

А вот и нифиге. В true превратятся и значения 7, 'false', любой объект и тд.

aiive
()
Ответ на: комментарий от AndreyKl

ну как бы в нормальной ситуации (строгая статическая типизация) нельзя булевской переменной присвоить значение отличное от тру или фолс. поэтому проверка на if($trr == true) then $trr = true выглядит странно сама по себе.
а в php это норма. чего из того что я тебе сказал ты не знал?

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

aiive
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.