- PVSM.RU - https://www.pvsm.ru -

Такой вопрос мне достаточно часто задают, и я таки решился на него ответить.
Хотел было написать очередную статью о собеседованиях, но мне кажется формат [1] себя изжил [2], так что читаем и мотаем на ус.
Соображать и использовать Google. Первое оценить сложно, для этого придумано много «дурацких» вопросов для собеседований. Второй пункт либо прививается в первые дни испытательного срока, либо разработчик владеет им изначально, иной вариант никто не рассматривает…
У меня есть вопрос для собеседования на общее развитие, что происходит после ввода domain.com/index.php [3] и нажатия enter, вы должны рассказать следующее:
Я таки опять возвращаюсь к собеседованиям, и манит меня прям
Из чего состоит HTTP запрос/ответ (да откройте же firebug или что у вас там установлено и посмотрите)
Установка связки Apache+PHP+MySQL — потренируйтесь, это ой как надо.
Таки немного о linux — о различиях, о раздаче прав (chmod) и как выйти из vi без сохранения.
Пару-тройку дней потребуется на усвоение базовых знаний.
Основы основ — получение и обработка входящих параметров.
Отправляем форму:
<form action="index.php?a=12">
<input type="hidden" name="b" value="6"/>
<input type="submit" value="Calc!">
</form>
А вот и листинг index.php, и в результате работы скрипта мы увидим…:
function some_logic($a, $b = 24) {
return ($a+$b)/$_REQUEST['b'];
}
$var1 = $_GET['a'];
echo some_logic($var1);
Работа с циклами, массивами и строками. И да, простенькое задание с собеседования (пора угомониться):
// переставьте буквы в словах в обратном порядке
$str = "Hello world!";
Работа с базой данных и с файлами. Для усвоения материала — вот вам задание: написать анонимную доску объявлений (с блек... аплоадом картинок)
Должны знать как работает механизм сессий — т.е. что происходит от момента вызова session_start, и каким боком это всё связано с cookies (помните я говорил о HTTP?).
Знать для чего служит include, require и какая между ними разница.
Разницу между echo и print не только знать, но и понимать.
Таки научиться работать с объектами, понимать разницу между абстрактным классом и интерфейсом.
Чем больше опыта, тем лучше, но основы вы подтяните за неделю, ОПП потребует еще недельку.
Основы синтаксиса SQL. Немного вникнуть в MySQL и понимать различия между MyISAM и InnoDB.
Знать как работают LEFT/RIGHT/INNER JOIN'ы — наглядно в статье Visual Representation of SQL Joins [4] (ссылка на картинку для ленивых — Visual_SQL_JOINS_orig.jpg [5] O_o)
Уметь спроектировать базу данных для небольшого проекта. Вот вам требования к БД библиотеки:
В базе данных должна храниться следующуя информация:
Позволяет выполнить следующие запросы:
Переделать БД, т.к. в библиотеке зачастую больше, чем один экземпляр книги, а надо знать какой именно экземпляр брал посетитель.
Сосредоточенного изучения в течении недели вам хватит.
Сверстайте пару страниц, от и до (HTML должен быть валидным). Не слушайте, что это работа дизайнера/верстальщика/кого-то еще. Поверьте моему опыту — вам отдадут свёрстанную страницу, никто за вас не будет интегрировать HTML шаблон в вашу систему, так что знание HTML и CSS в обязательном порядке.
Забудьте о том, что Smarty создан для верстальщиков, и они вам будут готовые шаблоны отдавать — это сказки. О Smarty тоже забудьте, хотя нет — иметь представление что это такое конечно надо, а вот использовать — нет.
Должны понимать CSS следующего содержания:
#my p.sel:first-line, .main li li a:hover + span {
color:#f00; /* Что это за цвет? Включи логику! */
}
Узнать что есть блочная модель, да как работает float. Что есть margin и padding.
Дней пять вам хватит для освоения базовых навыков верстальщика.
Знать: синтаксис, о том как работают события, понимать что такое замыкание, и как работает AJAX. Рекомендую прочитать учебник Ильи Кантора [6]. Это немного, изучение данных вопросов у вас не займет больше недели.
Далее прочитайте первые шесть частей из моей серии «jQuery для начинающих [7]» — это еще пару-тройку дней на усвоение материала.
Понимание шаблона MVC. Знакомство с каким-нить фреймворком (Zend Framework, Symfony, Yii, и т.д.). Можно пройти Quick Start [8] от Zend Framework'а.
Научиться работать с БД посредством PDO [9]. Знать что есть SQL-инъекция.
Познакомиться с какой-нить современной системой контроля версий (да хоть с SVN)
Месяц изучения, и вы уже сможете претендовать на должность Junior PHP разработчик. Ответ на меркантильный вопрос смотрите на DOU [10]
P.S. Есть чем дополнить — пишите комментарии, увидели ошибку — лучше в личку
Автор: AntonShevchuk
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/6988
Ссылки в тексте:
[1] формат: http://habrahabr.ru/post/21681/
[2] изжил: http://habrahabr.ru/post/67963/
[3] domain.com/index.php: http://domain.com/index.php
[4] Visual Representation of SQL Joins: http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
[5] Visual_SQL_JOINS_orig.jpg: http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg
[6] учебник Ильи Кантора: http://learn.javascript.ru/
[7] jQuery для начинающих: http://anton.shevchuk.name/jquery/
[8] Quick Start: http://framework.zend.com/manual/en/learning.quickstart.intro.html
[9] PDO: http://php.net/manual/en/book.pdo.php
[10] DOU: http://dou.ua/lenta/articles/developers-salaries-december-2011/
Нажмите здесь для печати.