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

в 8:54, , рубрики: css, html, javascript, mysql, php, Веб-разработка, метки: , , , ,

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

Заключение

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

Автор: vagrand

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js