Еще немного про собеседования

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

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

Первое на что хочу обратить ваше внимание, это то, что вопросы которые задают php(?) программистам, в основной своей сути имеют довольно академический характер и в жизненных циклах проектов встречаются не часто, но тем не менее, нужно уметь решать эти задачи. Это обусловленно тем, что у работодателей нету времени и желания давать вам типичные задачи, в стиле — «Напиши класс, который будет отвечать за работу с пользователями». 99 процентов всех вопросов задаются по заготовленному листку и должны быть решены на листке бумаги. Никаких IDE, никаких гуглов, никаких ответов типа «я не помню синтаксис». Если вы настроены решительно и хотите произвести хорошее впечатление, то уделите время, что бы потренироваться и чувствовать себя уверенно.

Все вопросы можно разделить на три категории: PHP, MySQL(?), все остальное.

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

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

 <? function revert( $string ){ return strrev( $string ); } ?>

Но это не cамый лучший вариант ответа. Выучите алгоритм с обращением к символом строки как к объекту массива.
Очень частые задачи, на написание рекурсивных функций или на понимание работы операторов кода.

<? $a = 10;
echo ++$a + $a++ - ++$a + $a ;
?>

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

<? var_dump( 0123 == 123 ); ?>

Думаю, что на счет PHP я достаточно ясно изложил типовые вопросы, если что-то осталось не понятно, то спрашивайте в комментариях.

Теоретические вопросы про MySQL или любую другую СУБД почти всегда касаются индексов и насколько вы понимаете как их использовать, в каких случаях и на что их ставить и в каких случаях индексы могут быть вредны. Обязательно спросят про различия между версиями. Поинтересуются насколько глубоко вы знаете тонкости работы СУБД и вкурсе ли вы про то, что такое тригеры, хранимые процердуры, представления.

Практические задачи — это просьба нарисовать две таблицы с различными данными и просьба написать запрос, который покажет умеете ли вы использовать операторы HAVING, GROUP BY, … etc. Обязательно знать разницу между JOIN запросами.

Еще часто спрашивают про верстку, про css, про javascript. Но расписывать это все не вижу смысла.


WordPress — gallery shorttag highslide

Два примера, для решения одной и той же задачи.

В первом примере полный идиотизм, во втором хорошее решение. Вот теперь вопрос, почему большая часть всех CMS работает как первый пример. ?
Читать далее »


Вконтакте рукожопы

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

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

Просто данный сервис в последнее время сильно активизировался, возможно из-за того, что Facebook заявил о выходе на Российский рынок. Они сделали несколько вещей, которые сделали почти все социальные сети такого объема, но они единственные, кто сумел сделать это через жопу.

Читать далее »


Обфускатор Javascript

На Хабре нашел ссылку на отличный инструмент для шифрования js от чужих глаз:

http://utf-8.jp/public/jjencode.html

Например, alert(”test”); превращается вот в такую конструкцию:

Читать далее »


  Один комментарий   11 июня 2010   Shared  

jQuery + label tag

Очередной, очень маленький, но ужасно удобный trick.

Суть очень простая, он автоматически делает  одинаковый width для всех элементов <label>.

Изначально форма выглядит примерно вот так:

before

Добавляем стиль:

label, input[type="text"]{
    float:left;
    display:block;
}
label{
    margin-right: 5px;
}
.field{
    width:100%;
    overflow:auto;
    margin:5px 0px;
}

Добавляем javascript:

$(document).ready(function() {
    var max = 0;
    $("label").each(function(){
        if ($(this).width() > max)
            max = $(this).width();
    });
    $("label").width(max);
});

И вуаля:

after