Содержание

Кто такой PHP разработчик? Что он должен уметь делать?

Кто только не мечтает работать в IT — выучил любой язык программирования — и вперед. Но сегодня мы расскажем о крутой специализации, которая требует серьезной подготовки — php-разработчик.

Что такое PHP?

Аббревиатура происходит от английского — Hypertext Preprocessor. Это скриптовый язык, с помощью которого пишут сценарии web-приложений. Возник 1995 году, главной задачей была генерация страниц на html. Вобрал в себя многое из Perl. Язык интерпретируемый, это значит что для его работы не нужна компиляция, результат выполнения видно сразу после выполнения. Порог вхождения в язык низкий, но это не значит что не обладая знаниями в математики, алгоритмики можно быстро стать успешным программистом

Требования IT-компаний к PHP-разработчикам разных уровней: Junior, Middle, Senior

Junior

И все же можно начать с изучения CMS — это система управления контентом, как правило набор готовых модулей для выполнения определенных задач. Есть CMS предназначенные для управления товарами и заказами (prestashop, Magento), для блогов (WordPress), новостных сайтов (DLE) и т.д.

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

В Artjoker такая должность называется CMS developer.

Что вы должны знать и уметь:

  • опыт разработки под одну из популярных cms (wordpress, modx, opencart, magento или другие)
  • понимание принципов OOP/MVC — на начальном этапе необходимо лишь понимание этих принципов, но в дальнейшем рост без практического применения невозможен
  • знание PHP и MySQL
  • базовые знания Git

Middle

Поддержка и создание интернет магазина нуждаются в опытных программистах. Для получения следующей должны вы должны иметь:

  • Опыт разработки на Laravel5 — 1 год
  • Опыт разработки на php — 3 года
  • Знание и применение MVC
  • Обязательный опыт работы с: php7, mysql, git
  • Понимание работы с: Сomposer, Middlewares, ServiceProviders, Eloquent, Relationships, Observer pattern
  • Опыт написания REST api, Unit-tests
  • Продвинутые знания HTML, CSS, JavaScript
  • Базовые знания VueJS или React, Angular
  • Английский pre-intermediate
  • Хороший уровень self-management

Senior

Как вы заметили уровень программиста отличается не только профильными скиллами, но и общим сеньорити в принятии решений (умением быстро среагировать на проблему, придумать выход из ситуации, брать ответственность) и лидерскими качествами. Для того, чтобы стать Senior, кроме всех указанных навыков вам понадобится:

  • Опыт разработки через TDD
  • Опыт в обучении и организации команды
  • Знание процесса гибкой разработки: scrum, sprint planing, daily meeting, demo, retrospective

Что должен знать PHP-разработчик?

PHP необходимо иметь знания в таких областях:

  1. алгоритмы, MVC
  1. уметь применять ajax
  1. уметь оптимизировать код
  1. паттерны программирования, понимание какие паттерны для каких задач предназначены
  1. архитектура баз данных, нормализация данных, умение писать вложенные запросы
  1. эффективно распределять нагрузку
  1. эффективно использовать инструменты
  1. обеспечивать гибкость кода
  1. соответствие общепринятым стандартам написания кода (PSR)
  1. знать и уметь использовать как минимум несколько фреймворков
  1. пользоваться composer
  1. умение писать авто-тесты
  1. знания html, javascript (jquery), css

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

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

Советы начинающим разработчикам

  • Научитесь читать документацию
  • Постоянно читайте профильные ресурсы, посещайте тематические митапы
  • Освойте ОС Linux, идеально если он станет основной ОС на вашем компьютере
  • Совершенствуйте практические навыки, знакомьтесь с популярными API
  • Создание сайта в компаниях в основном происходит на различных фреймворках, поэтому изучите наиболее популярные.
  • Специфика работы с PHP предполагает знание теории программирования, поэтому не игнорируйте учебники, чтобы избежать печальные последствия.
  • Для работы вам пригодится знание основ адимнистрирования. Что такое веб-сервер? Как его настроить? Где лежит конфиг apache? Что нужно писать в .htaccess
  • Вам постоянно нужно будет изучать что-то новое — будьте готовы к этому, большинство вопросов решаются просмотром документации, форумов и чатов, stackoverflowгугл-поиском.

Специальность PHP-разработчика разноплановая, более того, практически каждый день она бросает тебе вызов — если ты готов принять его, удачи в изучении!

Если вы хотите узнать больше о жизни и работе в Artjoker, читайте «50 фактов о работе в Artjoker и смотрите видео:)

artjoker.ua

Php developer задачи и обязаности php программиста

PHP был создан как Personal Home Page Tools — инструмент для создания персональных веб-страниц. Это скриптовый язык общего назначения, который широко используется для разработки веб-приложений. В течение многих лет PHP является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов. На нем написаны такие сайты, как Facebook, ВКонтакте, Yahoo. Главные достоинства языка РНР – это практичность, простота и безопасность.

Основные задачи, возлагаемые на PHP программиста — создание сайтов, web-приложений, и интеграция их с внутренними системами бизнеса. Конечными продуктами разработки являются интернет-магазины, порталы, корпоративные сайты, системы онлайн-обучения, бронирования, форумы, социальные сети и многое другое.

Если вы решили стать PHP разработчиком, начните свое обучение с:

  • изучения основ синтаксиса SQL, чтобы уметь проектировать базу данных для небольшого проекта;
  • видеокурса по HTML и CSS, который необходим для самостоятельной верстки страницы;
  • также рекомендуем выучить синтаксис JavaScript – таким образом вы поймете, как работают события, что такое замыкание и каким образом устроен AJAX
  • после этого переходите к PHP – на ITVDN это курсы PHP Starter и PHP Essential
  • затем изучите PHP фреймворк YII2

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

Требования к PHP разработчику:

  • Знание языка программирования PHP
  • Работа с базами данных SQL/MySQL
  • Знание основ верстки HTML, CSS
  • Хорошее понимание JavaScript (Ajax, jQuery)
  • Знание основных принципов ООП
  • Английский язык на уровне чтения технической литературы
  • Знание систем контроля версий (SVN/Git)
  • Опыт работы с фреймворками (YII2)
  • Умение анализировать, учить, осваивать и применять новые технологии

PHP разработчик может занимать такие должности:

Junior/Middle/Senior PHP Developer
PHP Developer
Backend Developer
WEB Developer (PHP)
PHP Team Lead
Full Stack/PHP Developer

itvdn.com

Как можно стать PHP программистом — какие навыки нужны в данной профессии?

От автора: всем привет! Сегодня я хочу рассказать об одной из немногих профессий, где наличие диплома о вышке не является решающим фактором при поступлении на работу — о профессии PHP программист. Как можно стать PHP программистом, не заканчивая университет? Проще простого! В данной статье будет перечислен весь перечень навыков, которые вам необходимо будет обрести, чтобы стать профессионалом своего дела.

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

Кто такой PHP программист, и чем он занимается?

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

Чтобы вы поняли всю важность данной специальности, давайте сравним создание и разработку сайта с постройкой жилого дома, тогда PHP программист — это тот, кто закладывает фундамент, устанавливает несущую конструкцию, перекрытия, стены, крышу и проводит коммуникации. А уют в этом «доме» будут создавать уже другие специалисты.

Для тех, кого интересует вопрос, как стать PHP программистом, сразу хочу отметить — не путайте верстальщика HTML и программиста PHP, это абсолютно разные профессии! Первый выполняет функции верстальщика — создает внешний облик будущего сайта, а второй — работает над «телом» и «душой», оживляя сайт и заставляя его взаимодействовать с посетителями.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Навыки, которыми вам необходимо овладеть

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

Ядро. Я надеюсь, не нужно объяснять, что если хочешь стать PHP программистом, то PHP — это то, что нужно знать, как свои 5 пальцев. Что касается версии, с которой следует начать, то рекомендую не ниже PHP 5.0 (не думаю, что вам попадется вакансия, где придется работать на версии ниже этой).

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

Обязательно изучите реализацию ООП — основная масса CMS и фреймворков написаны с использованием данной парадигмы. Не лишним будет почитать про шаблоны проектирования, особенно про MVC.

Хранилище данных. Сомневаюсь, что, зная один PHP, у вас выйдет найти хорошую работу. Практически все вакансии требуют от программистов умения работать с хранилищами данных. Ничего против других СУБД не имею, но лично от себя рекомендую остановить свой выбор на MySQL, так как именно он фигурирует в массе вакансий.

HTML + CSS. Если вы решили стать PHP программистом с нуля, но, как и с чего начать, не решили, то советую вам получить базовые знания по HTML и CSS, ведь язык PHP связан с генерацией страничек HTML и CSS стилями.

JavaScript. Может показаться, что этот клиентский язык программирования уж никак не может понадобиться PHP программисту, но рынок труда решил иначе. После ознакомления с синтаксисом языка JavaScript, рекомендую сразу же перейти к изучению фреймворков, например, JQuery или ExtJS.

ОС. Так как большинство хостинговых серверов, написанных на PHP, работают под эгидой Linux или Unix, то, соответственно, лучше ознакомиться с данными ОС. Мой вам совет — установите на своем рабочем компьютере Linux (лично я пользуюсь Linux Ubuntu). На сегодня в этом дистрибутиве установка и настройка LAMР сделана так, что не вызовет у вас никаких трудностей. Далее рекомендую поработать с командной строкой.

Веб-сервер. Легче всего начать с Apache, ведь на данный момент — это самый распространенный веб-сервер. Но особо углубленно изучать его тонкую настройку нет смысла, так как лучшим по производительности будет дуэт Ngix + PHP-fpm.

Если вы будете работать в режиме фрилансера, то рекомендую поучиться работать в Photoshop и поглубже изучить HTML + CSS, ведь вам придется самим делать кроссбраузерную верстку. Так как большая часть заказов, скорее всего, будет подразумевать исправление и добавление функционала распространенных CMS, рекомендую уделить внимание изучению WordPress, Drupal, Joomla, DLE или Bitrix.

Где получить образование PHP программиста?

Конечно, практически во всех технических вузах есть специальности, связанные с IT, но в 99%, чтобы стать профессионалом своего дела, вам не хватит этих знаний и придется постоянно подучиваться.

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

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

Где искать работу?

Если вы начали изучение PHP программирование с нуля, то не надейтесь, что вас возьмут в крупную компанию и сразу же дадут сложный высокооплачиваемый проект. Для начала найдите IT компанию, которая готова выращивать специалистов. Как правило, сначала вам придется браться за любую работу, которую вам дадут, и со временем вы сможете рассчитывать на сложные и интересные проекты.

Прекрасным местом трудоустройства может стать IT-контора. Здесь вам гарантирован карьерный рост и неплохая зарплата. Став уверенным в себе профессионалом, вы сможете даже рискнуть и попробовать устроиться в Яндекс, Лабораторию Касперского или другую гигантскую компанию. Если же вы не хотите коротать свои будни в офисах, можете работать фрилансером, выполняя временные заказы.

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

Друзья, если вам понравилась моя статья и вы хотите узнать еще больше о самых популярных интернет-профессиях, то подписывайтесь на этот блог и следите за его обновлениями. До новых встреч!

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Программирование на языке PHP

Изучите PHP с нуля!

Смотреть

webformyself.com

Что должен знать «PHP Junior Developer без опыта работы»? / Habr

<update>

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

Не забывайте, что всё это оценочные суждения какого-то анонимуса. У вас нет никаких гарантий, что я разработчик и понимаю, о чём говорю. Собственно, вы даже не можете гарантировать, что этот текст не набран каким-то ежом в уплату за съеденую котлету.

</update>

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

При написании этой статьи:

  • в той или иной мере был контакт с 20+ работодателями
  • выполнено 12 тестовых заданий
  • пройдено 8 собеседований с техническими специалистами
  • получил моральные травмы средней степени тяжести один начинающий PHP-разработчик


HTML, CSS, JavaScript

Вам может показаться, что знать эти вещи идеально PHP-програмисту не требуется, однако это не так. Валидная вёрстка, кроссбраузерность и прочие слова, которые пишут в вакансиях верстальщиков применяйте также и к себе. В общем-то это вполне логично, поскольку даже самый идеальный код на PHP не нужен никому, если он при этом генерирует неадекватный HTML.
В некоторых организация мне сразу говорили, что вакансия подразумевает именно разработчика PHP, есть отдельные верстальщики/скриптовики. Однако таких организаций было мало.
Самый показательный пример — одно из выполненых мной тестовых заданий. В нём соотношение строк PHP:JavaScript:HTML было примерно 20:50:30.
Фреймворки

Ваши знания PHP как такового интересуют весьма незначительную часть работодателей. Большинство компаний используют в разработке различные фреймворки, и хотят от кандидата того же. Если в пожеланиях к кандидату вы увидели «-знакомство с фреймворком х», то скорее всего это не пожелание, а требование.
В Новосибирске наиболее популярны (исходя из вакансий джуниоров) Yii, Symfony и Zend. Изредка мелькает CakePHP.
Лично мне освоить Yii на базовом уровне удалось за неделю спокойной работы. Что, впрочем, не значит, что вы не сможете разобраться в нём быстрее.
PHP — тоже програмирование

Со всеми вытекающими отсюда последствиями. А именно — без знания теории ваша квалификация крайне низка.
Порог вхождения в PHP невысок. Как следствие, все прочие програмисты смотрят на PHP-шников с презрением и неодобрением. Да и в общем-то есть за что.
Незнание основ теории может приводить к таким ужасным вещам, как генерация в коде миллиона объектов с последующим применением к ним пузырьковой сортировки. Это, конечно, гипербола, но суть её вы, наверное, уловили.
В общем настоятельно рекомендую вам прочитать пару-тройку книг по теории програмирования. Вряд ли вас спросят о подсчёте сложности алгоритма, но общие вопросы, некий начальный уровень програмиста, на собеседовании стараются выяснить.
Разработка включает в себя многое

Лично мне никогда не приходила в голову мысль, что стоит думать не только каком языке ты пишешь, но и чем ты пишешь. Очень желательно знать основные IDE, точнее их главные функции.
Для нормальной работе в команде необходим контроль версий.
Кроме того, в проектах принято проводить тестирование и как-то собщать об ошибках.
А ошибки бывают такие, что неплохо бы знать содержимое php.ini.
И конфиги nginx/apache.
И можно очень долго продолжать.
Готовьтесь к резкому расширению кругозора

При выполнении каждого второго тестового задания вам придётся с нуля осваивать что-то новое. NoSQL, AJAX, чьи-то API, JS библиотеки и прочие вещи, о которых вы в лучшем случае слышали пару раз в жизни, вам придётся экстренно изучать.
То что вам не знакомо вовсе не обязательно является чем-то сложным. Это ведь действительно задания для начинающего разработчика без опыта работы. А значит, несмотря на кажущуюся сложность, решение задачи вы быстро найдёте, уделив полчаса документации.
Не отказывайтесь от задания, если оно показалось вам слишком сложным. Просто почитайте статьи или учебники по этой теме, вы поймёте, что бояться нечего.
Тестовые задания могут быть неточны

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

Нередко — это 6 из 10. Будьте готовы к тому, что на остальные письма вам не ответят, тестовые задания не проверят, мы вам перезвоним.
Я уж не знаю, чем руководствуются эти люди. Серьёзно, HR, почему вы не можете потратить пять минут на человека, который потратил на вас день?
Если вы столкнётесь с такой проблемой, не ждите ответа. Звоните и пишите, спрашивайте почему про вас забыли.
Собеседование это огромный плюс

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

Вот собственно со всем этим и придётся столкнуться начинающему разработчику. При некоторой подготовке ваши будующие собеседования пройдут намного проще, чем мои.
Возможно пытливому читателю будет интересно, чем же закончились эти поиски работы?
Я понял, что для начинающего разработчика без опыта работы у меня слишком мало опыта, и устроился на вакансию с IT вообще никак не связанную. Через год планирую, поднабравшись знаний, снова начать поиски.

habr.com

Стать Senior PHP разработчиком

Рестарт цели по достижению Senior уровня. Не смотря на слабые поползновения, я всё же стремлюсь к результату. В последней цели был слишком большой простой, поэтому и понадобился этот рестарт. Да и материалы обновились, так же нужна ревизия ресурсов цели.

Цель будет дополнена новыми ресурсами. Часть материалов размещу так же в описании, а часть буду постепенно наращивать в этапах. Сами этапы буду дополнять по мере продвижения вперёд. часть подэтапов вынесу в дополнительные цели.

Итак.

Я являюсь PHP-разработчиком. Много лет. И пишу на PHP столько, что уже можно ориентироваться на роль разработчика Senior уровня.

Но я, говоря честно, являюсь Medium разработчиком. Хорошим, опытным, я бы даже сказал «senior medium», но все же я Medium.

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

Настало время заполнить пробелы и структурировать свои знания.

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

Существует еще много всяких разных сертификатов в области Web и PHP от разных образовательных учреждений и ресурсов. Но они для меня не привлекательны. Да и одного вполне достаточно.

Ресурсы для самообучения

  • Руководство по PHP — самый главный ресурс. Обычно он всегда используется как справочный для разработчика. Но здесь это в полной мере учебник. В рамках данной цели я ставлю его прочтение хотя бы на 1 раз, но в целом работа с этим ресурсом не должна прекращаться никогда.
  • PHP: Правильный Путь — как написано в собственной его аннотации, это легкочитаемое руководство для быстрого ознакомления с правилами эффективного использования PHP, принятыми стандартами написания кода и ссылками на признанные руководства по всему интернету. Пожалуй, подпишусь под этими словами.
  • PHP cheatsheets — должен быть полезный ресурс. Так ли это, увидим. В цель освоение этого ресурса не ставлю. Рассматриваю его как вспомогательный.
  • SourceMaking — отличнейший ресурс. Содержит исчерпывающие ресурсы по Паттернам, Анти-Паттернам иРефакторингу.
  • PHP Design Patterns и Design Patterns by PHP and JavaScript examples — ресурс и статья соответственно по PHP паттернам.
  • PHP Digests Search Tool — Поисковик по PHP дайджестам, выкладываемым на хабре. Эти дайджесты в среднем раз в две недели выкладываются на habrahabr.ru, здесь проще указать поисковик, чем писать ссылки на каждый дайджест. т.к. их число перевалило уже за 40. Дайджесты сами по себе интересны, и на них можно найти отличнейшие ссылки. Т.к. он постоянно пополняется, его ставить в цель изучения бессмысленно. Так что я не ставлю целью его полное освоение, но общение с этим ресурсом обязательно на всем протяжении самообучения.

Ресурсов великое множество. Я выделил лишь наиболее полезные и информативные. Но, по мере появления интересных ресурсов буду вписывать сюда еще.

Материалы и ресурсы для подготовки к сертификации

И опять подборочки. На этот раз конкретно к сертификации. Предполагается, что ресурсы выше я изучил, стал PHP профессионалом и теперь идет прицел на получение сертификата. И надо подготовиться основательно. А как же, ведь сертификация денег стоит, не хотелось бы завалить такой экзамен. Многие материалы для более ранних версий PHP (в частности 5.3), но, тем не менее, они прекрасно подойдут для подготовки.

Статьи и материалы для подготовки к сертификации:

Ну и, конечно, литература:

  • «Zend PHP 5.3 Certification Study Guide» — Книга, которую я скачал с самого сайта Zend. Для подготовки вполне подойдет.
  • «Zend PHP 5 Certification Study Guide, Third Edition«, 2015 — Свежачок от php[architect] по подготовке к сертификации.

Литература для самообучения

Да, кроме интернет-ресурсов в обучении необходима и печатная литература. Какую литературу выбрал для подготовки я.

Русскоязычная литература

Книг на русском, которые я считаю действительно серьезными, не так уж и много. Я пока выделил только две. Наверное есть еще, но у меня в списке всего пара:

  • «Паттерны проектирования«. Эрик Фримен, Элизабет Фримен, Кэтти Сьерра, Берт Бейтс (Head First Design Patterns) — Книги серии «Head First» вообще замечательные учебники. Эта книга будет незаменимым помощником в изучении паттернов.
  • «PHP. Объекты, шаблоны и методики программирования«. Мэт Зандстра (PHP: Objects, Patterns, and Practice)

Англоязычная литература

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

  • «Beginning PHP and MySQL From Novice to Professional«, 2010
  • «Beginning PHP 5.3«, 2010
  • «Expert PHP and MySQL«, 2010
  • «Pro PHP Programming«, 2011
  • «Pro PHP Security«, 2010
  • «Pro PHP MVC«, 2012
  • «Professional PHP Design Patterns«, 2009

Онлайн-тесты для самопроверки

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

Это не всё, еще будут ресурсы в этапах цели, а так же, думаю, что-то подвернется и в дневнике цели

smartprogress.do

Собеседования на должность PHP разработчика / Habr


Довольно часто (постоянно) мне приходиться проводить собеседование людей желающих устроитсья в мой отдел на должность «junior PHP developer» и «PHP developer». И, с завидным постоянством, я и team-lead отдела задаем одни и те же вопросы…

Каждое собеседование начинается с одного и того же вопроса:

— Почему PHP?

И, как ни странно, некоторые умудряются «засыпаться» уже на нем:
— Пробывал язык N — такой сложный, и поэтому решил учить PHP
или еще лучше:
— Решил пока поработать в PHP отделе, а потом перейти в отдел .Net
Но чаще всего слышим один из следующих ответов:
— Делал страничку — понадобилась динамика — выбор пал на PHP
— Кто-то, зачем-то посоветовал
— Преподавали в ВУЗе — только PHP и смог осилить

Далее, приближаемся к программированию, мы пытаемся понять имеет ли собеседуемый хоть какое-нить представление о ООП, о абстракции, наследовании, инкапсуляции и полиморфизме. Ага, кто-то лекции прогуливал в университете 😉

А теперь начинается самое оно:

— Какую версию PHP использовали? В чем различия между четвертой и пятой версиями?

— Какими сторонними библиотеками пользовались?

— Опыт работы с различными CMF/CMS?

— Типы данных в PHP?(их всего 8, не верите — читайте мануал)

— Назови по памяти функции для работы с массивами, строками

— Что такое сериализация?

И далее несколько практических вопросов…

— Что такое Apache? А mod_rewrite?

— Аббревиатура SVN и CVS о чем-нить говорят?

— Багтрекинг системы? BugZilla? JIRA?

Не забываем и о БД:

— Что такое реляционная база данных?

— Нормализация, денормализация

— И чуть-чуть практики (связь многое-ко-многим в MySQL, каталог товаров произвольной вложенности)

HTML + CSS + W3C (знания HTML на базовом уровне считаю обязательным):

— Нарисуй-ка простенькую форму для отправки файла

— CSS знаешь? В чем разница между записью #my и .my?

— Расшифруй вот такую запись в CSS … (и далее что-то невообразимое, но вполне читабельное, задаю не часто, если только испытуемый заявляет что знает CSS)

— Что такое стандарты W3C?

Linux:

— С *nix знаком?

— Apache и PHP сетапил?

Сетевые технологии и не только:

— Знаешь что такое уровни модели OSI? Назови хотя бы их количество. (это вопрос на «пять»)

— По какому протоколу осуществляется передача данных в сети Интернет?

— Расскажи что поисходит, когда в строке браузера набираешь адрес и нажимаешь Enter?

Иностранные языки:

Тут особо не мучаем, если же в резюме указан уровень знания английского как «хорошо» — вот тогда нам на помощь спешит COTOHA — лучше правдиво пишите — уровень университета или начальной школы… 😉

Бывает, озадачиваем каким-нить тестом на сообразительность (поменяй-ка друг значение переменных A и B местами не используя третью переменную)

Вот подумываем написать тест, который однозначно говорил бы о уровне знаний человека (brainbench для новичков не подходит), если у кого есть что предложить — пишите в комментариях…

Кросспост: PHP: Собеседование (и там уже много содержательных комментариев)

Upd: Вторым, или даже первым вопросом наверное скоро будет: «Читаете ли вы Хабр по пятницам?»…

Upd: На ряд вопросов из комментариев отвечу тут:

  • Разве должен PHP разработчик знать это… ? — Если человек не ответил на ряд вопросов на собеседовании, это не значит, что он его провалил, возможно некоторые вопросы слишком отстранены от разработки, но их знание никогда не будет лишним
  • Вам действительно нужно это всё? — Да, ибо мы используем системы контроля версий и багтрекинг системы, мы сталкиваемся с готовыми CMS системами, кодим используя Zend Framework и CMF/CMS которую сами разрабатываем
  • На какую ЗП можно претендовать после прохождения собеседования? — ЗП оговаривается по окончанию испытательного срока, если Вас интересуют более подробная информация см. на www.developers.org.ua
  • Есть мануал, зачем помнить на память! — Мне не нужен в отделе человек который каждые пять минут будет лазить в мануал, дабы узнать как построить цикл «for» или отсортировать массив, или еще хуже — будет отвлекать окружающих для этой цели
  • Дайте лучше тестовое задание! — Ситуация нынче такова, что junior разработчик не будет делать тестовое задание, а скорей просто пойдет на собеседование в другую компанию
  • В какой компании такое «невдалое» собеседование, не пойду в неё работать! — 3 клика мышки отделяет Вас от ответа, если не нашли — мы Вас не ждем…

habr.com

Upgrade до Middle PHP-разработчика за 3 месяца / Habr

В очередной раз на меня свалилась задача найти хорошего PHP-программиста.
По результатам прозвона потенциальных кандидатов, 90% тех, кто мнит себя Middle, на самом деле Junior и годы опыта не спасают, потому что клепают однотипный код в пределах заданий, посланных свыше.
Прописал минимальный план желающим сделать рывок и перейти на следующий уровень без отрыва от производства.



Месяц 1

Прочитать книжки (по неделе на книжку, читая вечерами и на выходных):


  1. PHP+MySQL — ozon.ru
  2. ООП и паттерны — ozon.ru
  3. Совершенный код — ozon.ru
  4. Symfony 3 — на английском, частичный перевод на русский

Можно заменить на аналогичные, почти всё можно скачать без смс.

Предвидя холивар «почему Symfony»: можете выбрать Yii или Laravel — они проще в изучении. Symfony иногда неоправданно сложный, но интересен в плане изучения концепций. Зная его, другой фреймворк потом будет понять элементарно. И даже если вы не будете использовать его полностью, можно брать отдельные компоненты (список пострадавших), которые как паттерны, могут быть знакомы вашим коллегам.
Хотя если у вас неподалёку есть старший товарищ, который хорошо знает другой фреймворк, можно выбрать его.

Месяц 2

Прочитать по 3-5 статей и на практике поработать с (1 вечер — статьи, 1 вечер — практика):


  1. PSR: PSR-1, PSR-2, PSR-4, Symfony Code Standards
  2. Bash — Основы, в примерах — 1, 2
  3. nginx+PHP5-FPM — установка, Nginx изнутри, Тюнинг nginx
  4. Mercurial (1, 2, 3, 4, 5, 6) или Git (интерактивный тур, Workflow, книжка)
  5. PHPUnit — основы, перевод 8 глав документации
  6. PHPStorm — Quick Start, видео-уроки
  7. Vagrant — документация, в PhpStorm
  8. Twitter Bootstrap — сайт
  9. Twig — небольшая книжка
  10. Composer — основы, свой vendor

Месяц 3

Сделать свой проект на GitHub, используя всё вышеперечисленное (1 месяц вечерами и на выходных).
Цель: закрепить знания, пройдя самому весь путь от ТЗ до готового проекта, на который можно зайти в Интернете и давать ссылку в резюме.

Рекомендации:

  1. минимум фич, забыть слова «универсальное решение»/»платформа»/»плагины», иначе надоест быстрее, чем доделате
  2. не использовать готовые движки вроде WordPress/Joomla/Magento, но использовать фреймворк, чтобы не велосипедить
  3. не обращать внимания на вёрстку — только Twitter Bootstrap
  4. ответы на вопросы — Google и StackOverflow, не пытайтесь долго думать сами, полезнее научиться правильно формулировать вопрос

Идеи проектов:

  1. блог
  2. интернет-магазин
  3. форум
  4. сайт прогноза погоды
  5. сайт с актуальными курсами валют
  6. ваш вариант

Бонус:

  1. Записаться на курсы английского (кроме хабра, все интересные статьи и документация к библиотекам — на английском). Вот есть даже специализированное Skype-обучение для IT-шников, хотя я — за классические групповые занятия.
  2. Научиться набирать вслепую (2 недели по вечерам)
  3. Выучить на память TOP100-300 функций PHP (1 неделя)
  4. Изучить еще один язык программирования на уровне написания простеньких приложений. Желательно совсем другой парадигмы: Go (отличная обучалка), Lisp (аргументация — 1, 2), Haskell (как-то так)

Удачи!

habr.com