×Закрыть

Какие требования к Junior PHP Developer в 2019 году?

Здравствуйте.

Сразу прошу не кидать в меня всем, что под руку попадётся. Тема поднималась, и не раз, но вся информация, за 2017, за 2018, уже устаревшая.

Принял решение поднять свой уровень до Junior PHP Developer за полтора месяца. Уровень мотивации очень высок, готов тратить весь день на изучение и практику.

Что знаю сейчас:
Основы HTML/CSS;
Основы PHP + ООП;
Основы SQL;
Примерные представления о MVC;
Основные знания в работе с git
Совершенно никогда не работал с PHP фреймворками, всегда всё писал чисто с нуля, либо же на CMS системах.
Не знаком с JS, так как всегда был сосредоточен на Backend, однако узнал, что сейчас лучше основы JS и библиотек, типа jquery знать для работы

Мой вопрос:
Что должен знать Junior PHP Developer для устройства на работу в 2019 году?

Я составил примерный список того, что мне нужно будет изучить. Возможно что-то забыл, что-то лишнее и т.д.
Подскажите пожалуйста верный путь.

В первую очередь думаю следует более углублённо разобраться с MVC;
Ознакомиться со стандартами PSR-2, PSR-12;
Composer. Нужен ли?
Приступить к изучению Laravel;
Изучить основы JS, jQuery;
Реализовать 2 небольших проекта, больше как портфолио на работу:
Первый, с самописным движком, онлайн текстовая игра. Подобие у меня на гитхабе github.com/Jonikster/NESS
Второй, с использованием фреймворка, хочу реализовать некое подобие Reddit.
Что можете посоветовать? Может, что убрать или добавить, общее направление?
В дополнение хотел бы узнать ваше мнение, возможно ли достичь желаемого мной, при усердии, за полтора месяца?
Заранее благодарен!

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

там в описании нехватает трех вещей docker+kubernetes,vargant

Обязательно: HTTP, REST, MVC, SOLID, базовые паттерны
Начни учить Laravel, гарантирую, тебе очень понравится. Дальше можно будет двигаться к Symfony
JS сейчас нужен каждому, кто работает в web разработке. Ничего лучше learn.javascript.ru так и не нашел
На jQuery можешь забить, надейся, что на работе не встретится. Если встретится — со знанием vanilla JS учится быстро
Composer достаточно знать на уровне «добавь/обнови/удали зависимость». Аналогично с SQL — максимум views и partition over
Docker — жирный плюс для любого джуна. Да и штука оказывается очень удобной после ознакомления
В сентябре должен найти работу, удачи

ES2017, React.

Попробуй сделать своим приятелям интернет-магазин something.

Laravel — не лучший фреймворк для учебы.

Беги из пхп, он нетипизированный и эзотерически ориентированый.

Когда последний раз вы работали с php? В 2012?

Я чёт не понял, когда уже в него успели завести _компайл_тайм_тайпчек_ со статическими типами, дженериками, тайплевелом и прочими ништяками? Чтобы прямо вся программа со всеми библиотеками была от и до протайпчекана и посажена на типы? Когда в него успели завести нормальный тулинг и синтаксис?

Т.е. надо бежать из любого языка где нету статической типизации и дженериков? Ну-ну.

Если проект больше лендинга-хелоузаказчика, то да, бежать и подальше, ибо тонет в багах, если не держать желзобетонную дисциплину и культуру на очень высоком уровне. Часто затраты на дисциплину и культуру не оправданы.

Если не держать дисциплину и культуру на высоком уровне, боюсь никакая типизация не поможет

public function assignDepartment(DepartmentInterface $department): EmployeeInterface;

вот примерно так выглядит пыха 7.3, нельзя засунуть не реализацию DepartmentInterface в метод, если забудешь или вернешь null вместо реализации EmployeeInterface — получишь фатал

да, конечно этого нету на этапе компиляции, наверно потому, что в данный момент пыха — это интерпретируемый язык

но видимо и пайтон говно, ибо и интерпретируемый и с динамической типизацией

Как не типизированный? onedev.net/post/766
Пристутсвует динамическая типизация. В 7 версии появился аналог дженериков.

Динамическая типизация это зло, потому что требует запуска кода. Статическая типизация выгребает ошибки ещё во время или до написания кода, и запуска кода не требует. В 7 выпустили типы от этого весь существующий код сразу стал типизированым? Я думаю что нет. Кроме того, туллинг туда прикрутили? IDE по качеству которую можно сравнить с intellij? А тулинг в виде хорошего дебага из IDE с возможностью посмотреть все кишки, потребление всех ресурсов?

Каким образом весь этот холивар помогает топик стартеру?
Есть масса топиков где можно на эту тему похоливарить.
А вот начинающему специалисту это всё только мешает, так как человек уже определился с направлением и ему нужна помощь с наполнением индивидуального плана развития. Я ниже уже писал, что язык не так важен, важно умение решать поставленные задачи.

Я ниже уже писал, что язык не так важен, важно умение решать поставленные задачи.

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

Следуя Вашей логике, начинающий разработчик должен знать несколько языков и умело ими «жонглировать» подбирая идеальный под конкретную задачу.
Я же акцентирую внимание на том, что коммерческая разработка — это не умение писать красивый код и прикручивать библиотеки, а решение бизнес-задач.
И навык конвертирования потребностей бизнеса в технические реализации не зависит от выбранного языка.

Я же акцентирую внимание на том, что коммерческая разработка — это не умение писать красивый код и прикручивать библиотеки, а решение бизнес-задач.
И навык конвертирования потребностей бизнеса в технические реализации не зависит от выбранного языка.

Я прекрасно знаю что такое коммерческая разработка. Очень сильно зависит от языка. Разрабы некоторых языков намеренно недокладывают в языки использование хороших и годных парадигм в угоду простоте, а если и докладывают, то устанавливают монополию на их введение, чтобы разрабы не забивали себе голову сложными вещами а ляцкали побольше буизинесьвелью. В других же языках всего докладывают, а если не докладывают — оставляют возможности доложить. Подробнее: (www.youtube.com/...​_continue=6&v=mmvHC3UgYmg). Если ты постоянно пишешь на PHP о некоторых вещах которые добавляют больше надежности(и качества), а как следствие — и велью, не узнаешь. Важно знание и понимание парадигм, а не конкретных языков и фреймворков но на некоторых языках некоторые вещи просто не возможно пощупать просто потому что язык этого не позволяет.

«жонглировать» подбирая идеальный

жонглировать парадигмами и методами решения подбирая идеальную/ый под задачу.

Перефразирую одну цитату:
«Ты можешь быть бесконечно прав и знать все лучшие парадигмы программирования, но какой в этом толк, если твой клиент плачет?» ;-)

твой клиент плачет

твой плачет? сочувствую. Мои — нет.

Неуместная «подколка».
Возможно, Вы не до конца понимаете юмор моей прошлой фразы, которая не направлена на Вас лично, а, лишь, является модификацией знаменитой цитаты.

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

отказывались от некоторых практик в угоду текущих требований

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

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

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

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

Этот евангелист, кажется, поломался — можно следующего посмотреть?..

Оооокей. Меньше вэлью чтобы больше вэлью.

ru.wikipedia.org/wiki/Чем_хуже,_тем_лучше во всей красе же. JS и PHP это яркие примеры.

Меньше вэлью чтобы больше вэлью

вырвано из контекста. На изучение тех самых вещей которые приносят вэлью надо тратить эффорт и время. Если пользоватся схемой простота освоения наперёд — то можно брать и писать рям сразу, только не факт что хорошо получится хорошо и продукт не потонет об подводные камни.

P.s.

вэлью

и

буизинесьвелью

вещи разные

На изучение тех самых вещей которые приносят вэлью надо тратить эффорт и время. Если пользоватся схемой простота освоения наперёд — то можно брать и писать, только не факт что хорошо получится хорошо и продукт не потонет об подводные камни.

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

Поэтому стратегия побыстрее (и подешевле) наговнять MVP имеет в своей основе совершенно рациональные корни. По примерно тем же причинам пых живее всех живых, рельсы все хоронят-хоронят, а работы с нормальными рейтами только больше становится, такой сякой джаваскрипт нужен повсеместно и т.п.

Если очень сильно утрировать, то мы имеем две слабопересекающиеся реальности: в одной бизнес заинтересован в низком пороге входа, что позволяет намного проще (и дешевле) покупать ресурс жопочасов. В другой реальности пипл уже наступил на грабли (или просто дорос до нужного размера) и готов платить больше (в том числе переучивать стафф за свои деньги) чтобы внеднять «те самые вещи, которые приносят вэлью». И это хорошо, потому что и у кодерков появляется выбор (а возможность выбора — это всегда хорошо, кмк)...

спорить бесполезно, в лучшем случае человек видел пыху 5.6(а то и нечто древнее), и теперь рассказывает, что пыха говно, на основании версии, которая уже вобщем-то не саппортится, ибо считается наглухо устаревшей :)

C тулингом особых то проблем и нет, PhpStorm от JetBrains, дебагинг, profiling есть.
В ключевых фреймворках есть debug panel в которой и тайминги, и sql-запросы тоже показываются. Да и что можно смотреть в «потребление всех ресурсов» при одиночном запросе, когда приложение расчитано на конкурнтную работу с сотнями/тысячами клиентов. Net bandwidth, Disk io, не проверишь, ну немного cpu и memory, хотя с memory в 99% случаев проблем никаких.

Насчёт скорости решаемых задач (до какого-то размера), тоже проблем нет, иначе php б уже самовыпилился из-за неконкурентоспособности. Но вполне живёт и развивается, хотя тренд популярности нисходящий.

Значит ли что php по качеству уровня С#, Java — нет. Стоит ли начинать сейчас его учить как первый язык — лично моё мнение, нет. Хотя те же ruby, js и python я бы тоже не рекомендовал, те же яйца, только сбоку (но это моё личное мнение).

тебе-то какая разница вообще? Автор топика совет спросил по требованиям для джуна,а ты про типизации тут и дженерики. Каждый язык решает свои проблемы и по-своему интересен, может автор ссаными тряпками джаву или джаваскарипт пихал, зачем быть с таким чсв?

автор ссаными тряпками джаву или джаваскарипт пихал

Эти языки и я не прочь ссаными тряпками погонять. Есть же другие более совершенные и прогрессивные языки типа rust, kotlin, swift, scala, новые стандарты C++. Можно с них начать и научится новому и хорошему, чем нырять в несвежее легаси.

возможно, вы в чём-то и правы, но автор уже изучил какие-то основы и как я понимаю, хочет через 1.5-2 месяца устроиться на работу

Вы нелюбите кошек? Вы просто их готовить не умеете....

В моём конкретном случае язык важен, так как помимо веба, мне интересны машинное обучение, искусственный интеллект и прочее.
Но увы, с Python поиск удалённой работы будет затруднителен.

Попробуй на Java neuroph.sourceforge.net/ например это поюзать

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

Мне от Python есть польза. Но не в плане работы.

Вообще я иду к Python, но найти работу по Python очень и очень трудно.

В первый раз про сложность нахождения работы питонистом слышу.

Даю добрый совет — не пиши свои проекты. И код свой не пиши тоже. Лучше влейся в проект любого из фреймворков или в тот-же компосер, где куча багов: github.com/composer/composer/issues

Выбери нужный баг.
Научись его воспроизводить.
Найди причину бага.
Исправь ее.
Отправь пулл-реквест с исправлением.
Добейся включения в ветку.

После этого у тебя будет реальное и полезное портфолио, а не очередные два куска уродского и ненужного (не спорь плз) кода.

Судя по вакансиям от украинских компаний главное требование для junior php developer — быть мидлом но просить зп 300$.

Адекватные компании не ждут, что джун будет сам писать код или разрабатывать продукт с нуля. Это тот, кто может придти в рабочий проект, кто может разобраться в существующем коде и согласно существующим договоренностям или примерам на проекте пофиксить багу или прикрутить что-нибудь не сложное и под руководством более опытных товарищей. И в результате этого будет учиться и вникать в детали. Мне кажется, что знать язык хорошо и уметь его применять этого достаточно, чтобы с вами можно было начинать работу. А ребята, которые учат год php, js, все фреймворки, пилят сами какие-то свои проекты и подаются на вакансию джуна вызывают подозрение.

Компании разные и требования разные. То, что Вы описываете имеет место быть, не спорю. Но есть и обратная сторона медали: джуны, у которых пробелы даже в самых базовых знаниях, сделавшие 1-2 простеньких проекта на CMS в режиме «накликивания» и желающих ЗП миддла.
На рынке, к сожалению, нет единых стандартов и в ближайшее время не предвидится.
Мы для себя решили делать интернатуру и набирать людей с потенциалом и английским адекватным, а не пытаться переобучить недоМиддла.
Конечно, есть масса замечательных исключений, так как люди, зачастую, получают практический опыт, ограниченный возможностями текущих компаний и проектов и не всегда могут дополнить практику соответствующей теорией, но желание расти и развиваться встречается далеко не всегда.

Вот недавно составлял требования

Понимание ООП
PHP
Mysql — надо уметь писать запросы с JOIN, GROUP BY
HTML, CSS — как минимум собирать верстку с Bootstrap и вносить в нее стилистические правки
Javscript — как минимум работа с jQuery, подключение jQuery плагинов
Фреймворки(mvc framework php) — опыт работы с каким нибудь PHP фреймворком, возможно самостоятельно в целях ознакомления
Базовые навыки работы с системой контроля версий
LAMP, также базовые навыки работы с Linux

Будет плюсом:

Опыт работы с фреймворка Yii2 будет плюсом
Знания паттернов проектирования

На нашем проекте вы столкнетесь с:

Разработка централизованной системы и API, которая обслуживает десятки сайтов и приложений
Работа с фреймворком Yii2
Работа с платежными системами
Интеграция внешних API
Обработка и анализ больших масивов текстовых данных
Elasticsearch
PostgreSQL
MySQL
Новый код

А Вы в каком городе проживаете?

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

Харьков. Но удалёнка в приоритете.

Мы планируем в Харькове в конце лета\начале осени делать очередной набор интернов.
Но вариант удаленки не особо подходит для обучения и быстрого развития.
Если интересуют подробности — пишите в ЛС

С очной работой есть трудности, так как инвалид по зрению, и мне проще работать удалённо, нежели ездить каждый день на работу.

Нет. Как и пол, цвет кожи, религиозные взгляды и половые пристрастия =)
Главное, чтобы человек был хороший © ;-)

Вы имели ввиду что бы специалист был хороший?

о нет, только не друпал, не лезь туда!

Вы любитель похоливарить на тему CMF \ Фреймверков и т.п.?
Я уверен, что не так важен язык или фреймверк для начинающего разработчика, как важна практика и возможность научиться решать бизнес-задачи, ведь программирование, зачастую — это не сферический конь в вакууме, а некий сервис для бизнеса (по крайней мере, коммерческая разработка, которой занимаются подавляющее большинство).
Друпал 8 близок к симфе, 9ка еще ближе, поэтому свич, при необходимости, не вызывает труда. Есть масса прекрасных примеров, если что.

хороший фреймворк, но он для западного рынка, там он больше распостранен. А yii вроде нашенский и доки по нем нормальные. Проектов много в России и Китае. Выбирайте, что вам ближе...

Вакансий на Laravel у нас много, на самом деле. Сама на нем работаю и вижу, что выбирать есть из чего. В комплекте к нему часто просят Vue.js, поэтому, его тоже пришлось освоить :)

А вы реально девушка программист? Или у вас логин такой?

Вполне себе реально, имя-фамилия настоящие)

Если джуниор, то на собеседованиях будут гонять по всевозможной теории — работа веб-сервера, HTTP-запросы, теория ООП, магические методы, абстрактные классы, интерфейсы и тому подобное. Любят спрашивать паттерны проектирования. SQL — индексы, типы связей, разные типы join, могут спросить про транзакции, попросить написать какой-то несложный запрос. jQuery подучить можно, во многих вакансиях ее все еще просят, тем более, учить там особо нечего. А дальше думайте, в каком направлении хотите двигаться — CMS или фреймворки — и смотрите уже конкретные инструменты.
По PSR меня на собеседованиях никогда не спрашивали, но для себя ознакомиться стоит. Composer нужен, но он простой, много времени не займет.

меня в основном на тонкостях языка ловили. Например, в чем разница между одниарными и дводйными кавычками. Что значит эта запись $$value, и.т.д.

Подписаться на комментарии