Заказчику часто требуется чтоб сотрудник умел работать сразу с несколькими инструментами/технологиями. Но сейчас стек настолько широк что на получение глубокого практического опыта по всем технологиями потребуются десятилетия. Я составил примерную шкалу для оценки своих навыков.
Уровень | Детали |
Довольно хорош | Хорошо знаком с технологией и ее возможностями, имеется многолетний опыт работы и знание особенностей применения |
Конкурентный | Базовый теоретический опыт с инструментами/технологией. Практические навыки применения для большинства задач. Предыдущий опыт и интуиция позволяют быстро находить решение проблем в сложных случаях |
Начальный | Начальный теоретический уровень или небольшой практический опыт. Необходимо погружаться в работу с документацией, сделать несколько тестовых примеров, перед тем как применять на рабочих задачах |
Поверхностный | Поверхностные знания о технологии и ее возможностях |
Список наиболее востребованных навыков, которые часто запрашиваются в описании к вакансиям и свой опыт по ним я описал в таблице.
Навык | Описание | Мой уровень | php | Конструкции: циклы, суперглобальные, рекурсия, регулярные выражения, анонимные функции, парсинг и т.п. | использовал на каждом проекте, опыт использования на других языках программирования. |
принципы ООП и SOLID, интерфейсы, трейты, абстрактные классы | Я хорошо в этом разбираюсь. Есть опыт код-верью, опыт работы с legacy-кодом | |
Паттерны, MVC | я глубоко не изучал все паттерны, но самый популярный MVC использовал на каждом проекте | |
Современная версия 8+ | 10 лет назад я начинал с версии 5.6, на рабочих проектах мне встречались 7-е версии, сейчас в своих проектах использую 8+ | |
REST JSON, XML | У меня есть опыт создания REST API, обычно все приложения его поддерживают, включая мой pet-проект. С api xml не работал, использовал формат для настройки php composer и sitemap | |
API, интеграция со сторонними сервисами | Я часто сталкивался с задачами по разработке и настройке интеграции приложений с множеством сторонних сервисов: sber pay, yoomoney, yandex map, социальные сети, кладр и многие другие | |
PSR-стандарты, composer | composer я начал использовать только на pet-проекте с применения psr-4, который не поддерживали рабочие проекты. В своей работе я руководствуюсь стандартами и применяю многие из интерфесов php-fig | |
Фрэймворки: Laravel, Symfony, Yii, Birtix, ModX, WordPress | Laravel: пробовал следовать документации и установить проек с herd панелью.Birtix: настраивал тестовые стенды интернет-магазинов и git-репозитории. Добавлял формы, скрипты, настривал умный фильтр и т.п.Yii2: участвовал в написании rest-api. Делал миграции, action и т.п. С остальными фрэймворками я знаком поверхностно. | |
Unit-тесты | Я нахожу применение unit-тестам на своем pet-проекте и близок с php-uint. На рабочих проектах большинство заказчиков принебрегали тестами, но я считаю что это не правильно и для себя так не делаю. | |
Debugging | я пробовал успешно применять xDebug с phpStorm и Docker. Мне иногда приходилось искать ошибки на рабочих проектах. | |
ORM | Некоторые рабочие проекты поддерживали свою ORM и я использовал возможности для рабочих задач. С Eloquent, Doctrine знаком поверхностно | |
Консоль | Мне приходилось писать php-скрипты для консоли, не только unit-тесты | |
Программы: phpStorm, VSCode, Postman | Я уверенно владею основными средствами разработки, моя любимая ide PhpStorm | |
html, css | html DOM: заголовки, код ответа, документ, линки, разметка тэгами и прочее | Использовалось на каждом проекте, обычно моего опыта достаточно для пешения большинства задач |
css, адаптивная верстка, bootstrap | У меня есть опыт отзывчивой верстки под разные разрешения, ориентации и viewport, обычно с помощью медиа-тегов в css-файлах | |
JavaScript | Конструкции | Знаком с основыными конструкциями и их примением |
Jquery, Ajax | Применял на каждом проекте | |
ООП в JS | Пока я мало интересовался как устроено наследование или полиморфизм в js | |
Фрэймворки React, Vue.js, TypeScript, Nuxt.js, Angular | Знаком немного в теории, пока не использовал на практике, но есть к этому интерес | |
ES-6 | Пока я мало интересовался js стандартами | |
node.js npm | Не пробовал, но кое-что читал, знаком поверхностно | |
Реляционные базы данных | mySql, MariaDb | Использовал на рабочих и pet-проектах |
MsSql | Использовал на одном рабочем проекте и на тестовых заданиях | |
PostgreSql, Oracle | Я читал об этих БД, но пока не приходилось работать с ними | |
Запросы | Я довольно хорошо умею составлять сложные sql-запросы с агрегационными функциями для реализации безнес-логики | |
Нормализация, денормализация, ключи, индексы, схема данных | Мне часто приходилось добавлять/изменять таблицы в базе данных, настраивать первичные ключи и связывать таблицы внешними ключами. С оптимизацией запросов я знаком в меньшей степени, но есть понимание плана запроса и как это работает. | |
Отчеты | Иногда мне приходилось создавать/изменять отчеты в базе даннх | |
Оконные функции | На практике я почти не стакливался с этим | |
Процедуры, триггры, блокировки | Иногда рабочие задачи касались и таких вещей, но на практике не часто | |
Транзакции, T-SQL | В теории я имею представление об атомарности, консистентности, проблем параллельного доступа и уровнях изоляции транзакций, но на практике пока не использовал транзакции | |
Репликации | Начальные знания о способах репликации и RAID | |
Шардирование | Начальные знания, немного касался вопроса по elasticsearch | |
Нереляционные базы данных | ClickHouse, MonogoDb | Немного читал об этом, пока не использовал |
Shell linux, windows | Умения рабоать с командной стройкой, проверить службы, порты и т.п., использовать ssh putty, sftp | Я часто использую консоль на windows, linux, в Docker |
Умение прочитать логи, настрить конфги | Мне часто приходилось разбираться в настройках конфигураций различных серверных и не только программ | |
Git | Работа с репозиториями, ветками, комитами, решение конфликтов и т.п. | Я довольно близко знаком с git, использовал на рабочих и pet-проектах |
Настройка Workflow, PullRequest и т.п. | Мне приходилось настраивать git для командной работы и автоматизировать ci/cd на pet-проекте | |
Кэш (высоконагруженные системы) | Redis | Я сталкивалися с установкой Redis применительно к задачам по Ansible, немного знаком в теории как использовать для хранения ключей/списков и т.п. |
Memcache | Начальные теоретические знания | |
Docker | Сборка | У меня есть опыт сборки приложения в docker, настройки docker-файла на pet-проекте |
Микросервисы | Я вплотную подошел к микросервисам на pet-проекте и настройки сети между контейнерами в docker, имею представление о kubernetes | |
OWASP | Безопасность web-приложений | Базовые знания и практические уменя в части безопасности web-приложений и способов защиты от атак |
тесты | юнит-тесты | к сожалению большинство работодаьелей принебрегают тестами на рабочих проектах, но я нахожу выгоду от использования unit-тесты на своем pet-проекте |
интеграционные тесты | Немного знаком, думаю мог бы освоить без проблем | |
Регресс | Пока мне писать регресс-тесты не приходилось | |
Брокеры очередей | Kafka | Вообще мне часто приходилось иметь дело с обменом сообщениями с различными сервисами с помощью очередей, и по опыту в этом есть много тонких моментов. Именно с Rabbit и Kafka я не работал |
Rabbit Mq | ||
Методологии | Scrum | На последнем месте я работал в небольшой команде по Scrum и 4-х недельным спринтам |
Kanban | Немного читал об этом | |
Aglie | ||
Lean | ||
TDD | Иногда я считаю такую методолгию полезной и сначала пишу тест | |
Прочие | Ansible | Успешный опыт настройки стенда Ansible и передова cron-задач с распределенных серверов |
Elasticsearch | Успешный опыт установка и настройка сборщиков логов filebeat, pipelines logstash, rollover lifecycle policy | |
Web-Sockets | Начальные теоретические знания о технологии и ее возможностях | |
TelegramBot | Поверхностные знания | |
BlockChain | ||
Процессы | Swagger, Confluence, Jira | У меня есть опыт работы по задачам и учету рабочего времени в Jira, ведении документации по проекту в Confluence |
Присматриваю варианты для взаимовыгодного сотрудничества. Готов приступить к работе по договоренности