Программист рнр – PHP-программист: описание профессии, зарплаты, кто такой PHP-программист и как им стать

Содержание

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

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

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

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

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

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

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

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

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

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Зарегистрироваться

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

Проанализировав требования к кандидатам на рынке труда и используя свой личный опыт, хочу выделить несколько основных навыков, необходимых для того чтобы стать профессиональным 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 программированию — процесс достаточно длительный и трудоемкий. Если у вас не получится сразу понять, что к чему, не стоит бросать дело на полпути, ведь только преодолевая трудности вы сможете насладиться результатом.

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

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

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Зарегистрироваться Как можно стать PHP программистом — какими навыками стоит овладеть?

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

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

Смотреть

webformyself.com

Что такое PHP? Пишем свою первую программу на PHP

PHP – это серверный язык программирования, который исполняется на стороне сервера, в то время как JavaScript исполняется в браузере на стороне пользователя.

И PHP, и Javascript можно встраивать в HTML-страницы.

Прочитав эту статью о PHP программировании, вы узнаете:

  • Что такое скриптовый язык?
  • Сценарный язык vs программный язык.
  • Как расшифровывается PHP?
  • Что такое PHP?
  • Синтаксис PHP.
  • Зачем нужен PHP?
  • Для чего используется PHP и какова его доля на рынке?
  • PHP vs ASP.NET vs JSP vs CFML.
  • Файловые расширения PHP.
  • Простая программа PHP.
Программный языкСценарный язык
Предлагает свойства, необходимые для разработки полноценных приложений.В основном используется для выполнения рутинных задач.
Перед исполнением код нужно компилировать.Код исполняется без компиляции.
Необязательно встраивать в другие языки.Обычно встраивается в другие программные среды.

PHP расшифровывается как Personal Home Page (персональная домашняя страница), но сейчас всё чаше используется Hypertext Preprocessor.

PHP-код можно встраивать в HTML или использовать в CMS и веб-фреймворках.

Основное предназначение языка программирования PHP заключается в разработке:

  • Статичных сайтов;
  • Динамических сайтов;
  • Веб-приложений.

PHP-скрипты могут быть выполнятся только на тех серверах, где установлен интерпретатор данного языка.

Клиентским компьютерам, осуществляющим доступ к PHP-скриптам, понадобится только браузер. PHP-файл содержит теги, и имеет расширение .php.


PHP-файл также может содержать HTML и клиентские скрипты JavaScript.

  • Знание HTML будет преимуществом при изучении PHP. Можно учить PHP и без знания HTML, но желательно знать хотя бы основы;
  • СУБД для приложений, работающих с применением БД;
  • Для реализации более сложных задач потребуется связка JavaScript и XML.

На рисунке, приведенном ниже, демонстрируется базовая архитектура веб-приложения и процесс обработки запросов сервером. Это важно знать при изучении PHP программирования с нуля:

  • PHP бесплатен и предлагает открытый исходный код;
  • Изучить его проще, нежели JSP, ASP и т. д.;
  • Большое сообщество разработчиков;
  • Большинство хостингов поддерживают PHP, чего не скажешь об ASP, для которого необходима поддержка IIS;
  • PHP постоянно обновляется;
  • PHP предлагает встроенную поддержку MySQL. Также PHP можно использовать с:
  • Postgres;
  • Oracle;
  • MS SQL Server;
  • ODBC;
  • PHP – кроссплатформенный язык. Это означает, что вы можете реализовать свое приложение на нескольких ОС, включая Windows, Linux, Mac OS и других.

На основе PHP работает более 20 миллионов сайтов и веб-приложений:

ASP – Active Server Pages.
JSP – Java Server Pages.
CFML – Cold Fusion Markup Language.

В таблице ниже приведено сравнение различных серверных языков с языком программирования PHP.

СвойствоPHPASPJSPCFML
ОбучаемостьБыстроДольше чем PHPДольше чем PHPДольше чем PHP
ХостингПоддерживается практически всеми хостерами.Необходим выделенный сервер.Относительно хорошая.Необходим выделенный сервер.
Open SourceДаНетДаДоступны коммерческая и open source версии
Поддержка веб-сервисовВстроеннаяИспользуется фреймворк .NETИспользуются дополнительные библиотекиВстроенная
Интеграция с HTMLПростаяДостаточно сложнаяДостаточно сложнаяПростая
Поддержка MySQLНативнаяПотребуются сторонние драйверыПотребуются сторонние драйверыВ текущей версии есть нативная поддержка. В прежних версиях используется ODBC
Дополнение другими языкамиДаНетПри помощи Java-классов и библиотекДа

Чтобы сервер мог распознавать PHP-файлы, сохранять документы нужно с расширением .php. В прошлом к PHP-расширениям также относились:

  • .phtml
  • .php3
  • .php4
  • .php5
  • .phps

PHP был разработан для работы с HTML, следовательно, его можно встраивать в HTML-код:


В web программировании PHP можно создавать файлы без использования HTML-тегов, и это будет считаться чистым кодом. Сервер выполняет PHP-код и выводит результат в браузер как HTML-код.

Чтобы сервер мог отличить PHP от HTML, код всегда нужно обрамлять соответствующими тегами. PHP чувствителен к регистру. Это значит, что «VAR» — это не то же самое, что «var».

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

Мы расцениваем строки PHP-кода как выражения. Они оканчиваются точкой с запятой (;). Если у вас будет только одно выражение, то точку с запятой можно опустить. Если выражений больше одного, то каждая строка должна завершаться точкой с запятой.

Приведённая ниже программа является простым PHP-приложением, которое выводит “Hello World!” в браузере.

<?php
echo "Hello world";
?>
  • Язык программирования PHP расшифровывается как Hypertext pre-processor;
  • PHP выполняется на стороне сервера. Это исключает необходимость установки дополнительного программного обеспечения на устройства пользователей;
  • PHP-файлы необходимо сохранять с расширением .php;
  • PHP распространяется с открытым исходным кодом и поддерживается на многих платформах.

Данная публикация представляет собой перевод статьи «What is PHP? Write your first PHP Program» , подготовленной дружной командой проекта Интернет-технологии.ру

www.internet-technologies.ru

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

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

Что такое PHP?

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

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

Junior

Кто такой PHP-разработчик?

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

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

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

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

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

Middle

Кто такой PHP-разработчик?

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

  • Опыт разработки на 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

Кто такой PHP-разработчик?

Как вы заметили уровень программиста отличается не только профильными скиллами, но и общим сеньорити в принятии решений (умением быстро среагировать на проблему, придумать выход из ситуации, брать ответственность) и лидерскими качествами. Для того, чтобы стать 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 программиста с нуля? — Toster.ru

Буду исходить из «дано» задачи «PHP программист» и из того что автор вопроса стремится заниматься сугубо back-end программированием. Заранее прошу прощения, я несколько увлекся
Итак:
1. Установка сервера (Open Server, Xampp, Denver), на начальном уровне. (просто из exe)
2. Общие принципы.
2.1. Типы данных.
2.2. Переменные.
2.2.1. Работа с переменными по ссылке.
2.2.2. Методы объявления и уничтожения переменных.
2.3. Управляющие конструкции (если знаком, то особенности синтаксиса в рамках языка).
2.3.1. Условия.
2.3.2. Циклы.
2.4. Конструкции вывода(print, print_r, echo).
2.5. Конструкции отладки и управления выполнением(var_dump,die,exit,break в циклах, пустой return;).
2.6. Пред определенные глобальные переменные($_GET,$_POST,$_REQUEST,$_SERVER), константы зарезервированные под модификаторы (static, function, const, $this)
2.7. Особенности версий 5.3, 5.4.
2.7.1. Анонимные функции.
2.7.2. Замыкания.
2.7.3. Особенности объявления массивов.
2.7.4. Пространства имен.
3. HTTP протокол.
3.1. Заголовки входящие.
3.2. Заголовки исходящие.
3.3. Процесс общения.
3.4. Метод php “header(…)” в контексте темы.
3.5. Глобальная переменная $_SERVER[] в контексте темы.
4. Установка сервера на среднем уровне (основы файла .htaccess и RewriteRule)
5. Процедурное программирование.
5.1. Математические методы.
5.2. Оперирование типами.
5.2.1. Методы оперирования массивами (array_values,array_keys,array_map и т.д.)
5.2.2. Методы оперирования строками (strlen,substr и т.д.).
6. ООП.
6.1. Классы.
6.1.1. Инкапсуляция(public,protected,private). Понимать разницу.
6.1.2. Наследование.
6.2. Интерфейсы.
6.2.1. Имплементация интерфейсов.
6.3. Абстрактные классы.
6.4. Полиморфизм.
6.5. Магические методы.
6.5.1. Базовые (__construct,__get,__set,__destruct)
6.5.2. Расширенные (__invoke,__serialize,__isset)
6.5.3. Разобраться когда стоит применять магические методы а когда это плохая практика.
7. Библиотека SPL, и расширение поведенческих возможностей классов за ее счет.
8. Базы данных.
8.1. SQL
8.2. Примитивный уровень общения с БД. (mysql_connect,mysql_close,mysql_query).
8.3. Средний уровень общения с БД(PDO и другие кастомные библиотеки).
8.4. Высокий уровень (ActiveRecord,DataAccessObject,ObjectRelationMapping).
8.5. NoSql БД на примере MongoBD (настоятельно рекомендуется, но не обязательно).
9. Фреймворки. На мой вигляд можно начать с Kohana. Сужу по уровню вхождения стажеров которых видел и отсутствию пространств имен с которыми по первах могут возникать проблемы.

И главное, Внимание! Личностные качества.
— Усидчивость.
— Владение Google при оттачивании темы или сложной задаче на уровне, когда поисковик видит в пользователе не то что DDOS а полноценный физический краш. тест.
— Не брезгливость. Умение заставить себя разбираться в гов… хм. Нелицеприятных дебрях.
— Збагойствие. Отсутствие паники при различных ошибках и не состыковках. Всегда остыть и попробовать снова, но по другому.

toster.ru

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 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

Что и в каком объеме нужно знать php программисту / Habr

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

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

Ядро

Ну тут само по себе понятно что, если планируешь стать PHP программистом то PHP как раз то что нужно знать и как можно лучше. Касательно версии PHP, которую стоит изучать — думаю что на данный момент нету смысла начинать с версии ниже PHP 5.0, вряд ли вы найдете где-то вакансию где нужно будет работать на версии ниже этой.
Что касается глубины знаний по этому языку, то чем они будут глубже и объемнее тем соответственно лучше, т.к. это ваш основной рабочий инструмент. О том что конкретно изучать и в какой последовательности вы сможете легко найти информацию в Интернете скажу только что обязательно нужно изучить реализацию ООП, т.к. основная масса фреймворков и CMS написаны с использованием этой парадигмы. Так же полезным будет почитать про шаблоны проектирования, в частности про MVC.

Хранилище данных

Вряд ли зная только один язык PHP вы сможете найти достойную работу. Основная масса вакансий требует от программиста знания и умения работать с одним из распространенных хранилищем данных. На данный момент выбор различного ПО для хранения данных довольно велик хотя на мой взгляд для php программиста была и пока остается самой востребованной СУБД MySQL. Я не в коей мере не пытаюсь занизить достоинства других СУБД, но в основной массе вакансий фигурирует именно MySQL.
Что касается версии, то опять же стоит изучать MySQl с версии 5.0 и выше.
По данной теме в Интернете так же можно найти множество информации для изучения, от себя хочу акцентировать внимание только на необходимости изучения способов оптимизации как самой структуры базы данных, так и запросов к ее таблицам.

HTML + CSS

Базовые знания в данных вещах в любом случае понадобятся php программисту. Пусть php и является серверным языком, но он в основном и связан с генерацией HTML страничек с CSS стилями, так что базовые знания все же нужны.

JavaScript

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

ОС

Это опять же мое личное мнение, которое основано на опыте и на логике. Т.к. основная масса серверов для хостинга сайтов написанных на php работают под управлением *nix (Linux или Unix) то соответственно лучше бы знать эту операционную систему. Лично я уже давно на рабочем компьютере устанавливаю Linux Ubuntu. На данный момент в этом дистрибутиве все сделано таким образом, что установка и настройка LAMP не вызывает совершенно никаких трудностей.
После того как вы установите и настроите у себя на компьютере LAMP советую изучить основные команды для работы в командной строке: работа с пользователями и группами пользователей *nix, работа с файлами и каталогами, работа с редакторами vi, vim, работа в файловом менеджере Midnight Commander, работа с демоном-планировщиком cron.

Веб-сервер

Думаю что не ошибусь, если скажу что на данный момент Apache все же остается самым распространенным веб-сервером. Мне кажется что начать легче всего именно с него. Хотя и изучать особо углубленно его тонкую настройку все же нет смысла, т.к. по производительности лучшим выбором будет связка Ngix + php-fpm.

Дополнительно

Ниже приведен перечень того, на что бы я еще порекомендовал обратить внимание для серьезного php (и не только) программиста:
1. PHP фреймворки — на данный момент очень редко в вакансиях не указывается знание одного или нескольких PHP фреймворков. В основном востребованы следующие: ZendFramework, Yii, Code Igniter, Symfony и Kohana. Мне больше всего нравится Yii.

2. ПО для кеширования данных, например: Memcached, Redis и т.д.

3. ПО для кеширования байткода php скриптов, например: eAccelerator, XCache и т.д.

4. NoSQL базы данных, например: MongoDB, CouchDB, Redis и т.д.

5. Английский язык, как минимум в достаточной мере что бы читать англоязычную документацию без словаря.

Дополнительно для работы в команде

Важные вещи для успешной работы в команде:

1. Coding Standards — очень важная вещь. В общем понимании это правильное и удобное для чтения оформление вашего кода.

2. Удобный и правильно настроенный редактор. По поводу правильных настроек лично я имею ввиду только правильною кодировку файлов и отступы в виде табуляции.

3. Умение работать с одной из распространенных систем контроля версий. Например: svn или git.

4. Опыт работы с каким-нибудь ПО для организации работы команды для постановки задач/ошибок, отслеживания потраченного времени и т.д. так же будет плюсом. Обычно такое ПО называется project management, в качестве примера можно привести Jira.

Дополнительно для работы в режиме фриланса

1. Если предполагается работать одному, то тут вам уже не обойтись без хотя бы базового знания графических программ, таких как Photoshop. Так же нужны будут боле углубленные знания по HTML + CSS, для того, что бы вы смогли делать кросбраузерную верстку.

2. Основная масса заказов скорее всего будет состоять в исправлении или добавлении функционала распространенных CMS, таких как: wordpress, Joomla, Drupal, DLE или Bitrix. Если ориентироваться на мелкие и средние заказы, то вам вряд ли понадобится знание какого-то из перечисленных выше фреймворков.

Заключение

Ну вот вроде и все что я хотел сказать по данной теме. Надеюсь что статья окажется полезной. Спасибо за внимание.

habr.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *