Что должен знать php junior: Что должен знать Junior PHP разработчик – Что нынче должен знать php junior без опыта? — Хабр Q&A

Знания Junior php разработчика? — Хабр Q&A

что должен знать идеальный джуниор (мое личное мнение):

- Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
- GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
- Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
- PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
- Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
- Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.

- Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
- Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
- Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
- Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
- Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
- Уметь дебажить. xdebug, blackfire и тд.

В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.

Большая подборка полезных материалов для PHP Junior

После этого списка многие из вас обнаружат, что даже наполовину не являются PHP Junior. А всё из-за грубого заблуждения, что Junior –  низший уровень.

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

Видео-уроки

HTTP протокол, GET и POST запросы

Работая с PHP, вы одновременно должны понимать принципы передачи данных по сети через HTTP протокол и знать разницу между GET и POST запросами. Из этого видео вы узнаете всё и даже больше:

Git и Github

PHP Junior обязан уметь пользоваться системой контроля версий Git и завести репозиторий на GitHub'e или Bitbucket'e. Это не просто место, где вы можете хранить ваши проекты, а ваше резюме для будущих работодателей. Автор этого видео научит основным командам для начала работы:

Composer

По PHP можно найти много разных библиотек, которые лучше устанавливать к себе на проект через Composer, а как это сделать - покажет автор этого видео:

Книги

Полезные статьи

Окружение и среда разработки

PhpStorm

Забудьте про текстовые редакторы, NetBeans и VS Code. Единственная IDE, с которой вы должны подружиться, – PhpStorm. Туториал от создателей IDE поможет вам разобраться в нём и узнать о его необычных возможностях:

https://www.youtube.com/watch?v=th3TvzgFCU0

Docker

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

Библиотеки и фреймворки

PHPUnit

В мире серьёзной коммерческой разработки принято тестировать приложения, а что это такое, и какая библиотека самая популярная, расскажет автор этого плейлиста:

Ratchet

Хотите написать что-то сложнее блога? Напишите чат! В этом вам поможет библиотека Ratchet:

Laravel

Один из лучших фреймворков современного PHP, который не стыдно изучить. И лучше это сделать с помощью уроков от Laracasts:

Twig

Twig – это популярный шаблонизатор, призванный сделать код чище. Является частью фреймворка Symfony, однако вы можете им пользоваться отдельно. Небольшой плейлист по основам:

Xdebug

PHP Junior должен знать, что на вардампах далеко не уедешь, и поэтому надо научиться пользоваться Xdebug:

Ещё немного полезных статей и книг

Практика для PHP Junior

Если всё то, что здесь представлено, вам знакомо, и вы умеете с этим работать, то вы – PHP Junior разработчик. У остальных же впереди ещё много задач на выполнение. Дерзайте и удачи!

Что должен знать junior php на 2020 и стоит ли ходить на все собеседования? — Хабр Q&A

(надеюсь не поздно, хотя по словам девушки которая собирая вещи ушла)

Я её понимаю частично, вы открываете аудитории свои проблемы, которые никому не важны. Т.к у каждого свои.

1.

На сколько хорошо jun должен знать HTML?

Достаточно хорошо, что бы понимать что такое семантика, что-такое доступность и не лепить div туда, куда можно поставить p, span, aside, nav
2.
На что обратить особое внимание при php и где лучше брать тест задания?

Для начала стоит выучить основные операции на языке(функции, циклы, работа с массивами), советую посмотреть в сторону курса Hexlet PHP, в своё время сама проходила. Там познакомитесь с базовыми операциями, такими вещами как composer и тд.
3.
Стоит ли сразу же после прохождения курсов и пару месяцев практики, браться за фреймворк? В том году учил Laravel, смотрел видео человека из Индии, где он достаточно хорошо говорил на этот счет. Есть еще мысль купить курсы Laracast и пройти их, но не знаю на счет целесообразности?

У вас похоже проблемы с желанием наконец-то пойти работать. Год назад вы учили Laravel. В чем проблема год назад искать работу джуном? Откуда такой скачок во времени что через год вы снова решили учить фреймворки.
4.
Когда ходил на собеседования, не решался пойти на все. Понимал что уровень знаний не совсем достаточный, хотя определенные плюсы видел. Сразу было понятно, где я отстаю и тд. Стоит ли ходить на абсолютно все, даже если ты понимаешь что еще не совсем готов, или подождать пару месяцев, и досконально довести до идеала?

Куча тараканов в голове, переставайте бояться, вы не обязаны знать всё в идеале. Это не стихотворение Пушкина или Маяковского. Вы должны понимать концепты и механизмы разработки, с каким инструментом и как что делается. Открою вам большой секрет. Все, всё, всегда гуглят. А так же пишут говнокод. Поэтому начните с фундаментальных основ, нагуглите варианты тестов(или собеседований) для джуна PHP и проходите по 3-4-5-10 раз. Я думаю на раз 6 все получится.

Советы сеньоров: как прокачать знания junior PHP

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

Главная проблема, с которой сталкиваешься, когда начинаешь изучать PHP — психологическое давление. Дело в непопулярности этого языка в среде программистов, по крайней мере, на словах. Можно услышать много неприятных эпитетов, в основном сводящихся к фразе: «Недоязык формошлёпов для создания говносайтиков». Твоя задача — не забывать, что «собаки лают, а караван идёт». Например, на РНР написан такой проект, как «Фейсбук», и этот факт сразу ставит на место любителей выбирать язык программирования по его модности.

Пс, сядь-ка поближе, что скажу. Чисто между нами: РНР — действительно не самый лучший язык в мире. Основных причин я назову две — и тебе лучше о них знать.

Первая проблема РНР — это неконсистентность, то есть похожие вещи сделаны по-разному. Например, одни имена функций названы с подчёркиванием (str_replace), другие — без (strrev), а оператор «::» вообще называется «Paamayim Nekudotayim» (это иврит, детка). Это связано с тем, что язык развивался в разное время разными людьми, поэтому получился такой конгломерат разных подходов.

Вторая проблема РНР — это работа с памятью и скорость. Например, заявленным удобством РНР является динамическая типизация (когда выражение «1» может быть по ситуации использовано как строка или как число). И это же заставляет РНР проигрывать по скорости более строгим, статически типизированным языкам.

Но есть одно но. Каждый инструмент хорош для своего круга задач. РНР — не исключение. Этот язык хорош для создания быстрых прототипов веб-приложений, а это и нужно бизнесу — быстро проверить бизнес-гипотезы. Именно поэтому статистика DOU по реальной популярности языков программирования за 2017 год показывает, что РНР находится на 4 месте и обгоняет Python и Ruby (т. н. «модные языки», хе-хе). Пример — тот же WordPress: хотя программисты могли бы написать код и получше, всё же на этом движке работает четверть всех сайтов в мире (если точнее, то 26% в 2016 году).

На интервью тебя могут спросить что-то низкоуровневое, типа «как обернуть строку». Но одно дело собеседование, а другое — реальная работа. На чистом низкоуровневом РНР давно никто не пишет (хотя в самом начале обучения это лучше всё-таки сделать, чтобы понять матчасть). Постепенно переходи на готовые решения, например, фреймворки (лично я рекомендую Symfony): так тебе будет легче отделить дизайн от бизнес-логики (мухи отдельно, котлеты отдельно), плюс использовать готовые решения, написанные другими умными людьми, чтобы ты этим пользовался. Так ты сможешь сосредоточиться на действительно важных вещах (бизнес-задачах), а не на том, какой формат данных принимает тот или иной API.

Кстати, про API скажу отдельно — изучи, как удобно и быстро их создавать, документировать и покрывать тестами. И тогда ты, один РНР-программист, сможешь делать бэкенд для целого отдела mobile-разработчиков: вендоров телефонов много, а backend у всех один. А не задокументируешь свой API (я имею в виду публичную документацию, особенно где можно сразу поиграться с API) — увязнешь в параметрах. Не покроешь тестами — построишь дуршлаг.

И потом, когда уже матчасть будет освоена, переходи на более высокий уровень абстрагирования — изучи основные паттерны проектирования, прочитай «Чистый код», и, если хочешь стать совсем джедаем, то и «Domain Driven Design». Так постепенно ты станешь «language agnostic developer», т. е. программистом, которому не важно, на синтаксисе какого языка писать. Важно научиться «дистиллировать знания» из нечётких требований заказчика в готовый алгоритм. «Тогда, мой сын, ты будешь Человек».

Aндрей Федык, Senior Software Engineer в Intetics, 14 лет опыта PHP разработки:

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

Команда

Команда — это ваше все. Догонять проще, чем бежать впереди всех. Если вам тяжело идти вперед, и вы знаете о своих проблемах с мотивацией, ищите сильную команду, все просто! Сами не заметите, как пойдете вперед семимильными шагами. Причем начинать советую с больших компаний — там обучение эффективнее. Но, если вы пока что не соответствуете запросам большой компании, начать можно с маленькой, но не засиживайтесь там. А еще — делитесь знаниями со своей командой, она, в свою очередь, будет делиться с вами. Получается взаимовыгода. Ну и не забываем про оптимизацию рабочего места — не тратьте свою энергию (мыслетопливо) на рутинные задачи, постарайтесь их автоматизировать (самое простое — настройте в хроме search engines, либо с %S, либо без). Чем меньше рутинных задач, тем больше мозг работает над основными задачами.

Теория

Самоучкам очень рекомендую фундаментальные книги. Если читать лень — делайте аудиокниги (можно txt перевести в голос) или смотрите видеолекции. Вот подборка, которую я советую:

Причем тут важно не просто открыть, прочесть и забыть. Делайте пометки, своего рода конспекты. Если что-то непонятно или сложно, вникните, а потом перефразируйте. Найдите лучший для себя вариант обучения. Еще я очень рекомендую слушать подкасты. Ниже подборка, с которой советую начать:

Опыт

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

Также не представляю PHP без JS — это вам такая пометка, что не стоит зацикливаться только на PHP. Расширяйте кругозор, смотрите по сторонам, выходите за пределы «зоны комфорта» в плане задач. Не делайте только то, что вам говорят — учите что-то новое, что вам интересно, обращайте внимание на другие задачи, которые могут вам дать в будущем. Не позволяйте мозгам простаивать, изучайте новое (даже если какие-то знания не лежат в вашей предметной области). Надо держать руку на пульсе — читать статьи, слушать подкасты (я лучше воспринимаю на слух, но опять же ищите свой вариант).

И еще раз — не ленитесь! Отговорки придумать можно всегда, но также можно всегда найти способ заняться образованием. Я, например, учусь в основном в маршрутке по дороге из дома на работу и наоборот. Лень идти к цели — лежите в направлении цели!

Александр Махомет, Product Architect в Upwork, 14 лет опыта PHP разработки:

Хорошим вариантом будет устроиться на работу в команду опытных PHP разработчиков, со сложными современными проектами да с возможностью находиться под менторством одного из коллег. В таких полевых, реальных условиях вы максимально быстро получите знания и опыт. К сожалению, это бывает нелегко. Конкуренция для уровня Junior достаточно высока. Да и отличить хорошую компанию от «не очень» бывает не просто.

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

Во-первых, программирование на PHP — это в первую очередь программирование, поэтому имеет смысл ознакомиться с общими парадигмами и подходами. Из классики это труды Martin Fowler, GOF, Robert Martin, Steve McConnel. Читать этих ребят — это не «Игры престолов» смотреть (не так увлекательно), но постепенно с фундаментальными вещами знакомиться стоит. На GitHub (если вы не в курсе, что такое Git, тоже в список to do на изучение) есть большой список бесплатных книг, по программированию и по PHP в частности.

PHP существенно изменился за десятилетия, а в интернетах много устаревших туториалов. К счастью, не утонуть в этом огромном количестве информации для новичков поможет ресурс phptherightway. В нем собраны актуальные бест практики для PHP разработчиков, причем там затрагивается не только PHP, но и смежные тематики, например, вопросы развертывания (deployment). Есть даже частично переведенная украинская версия этого ресурса, но я настоятельно рекомендую работать с первоисточниками, иначе у вас будет неполная и неточная информация. Знание английского языка хотя бы на уровне чтения — must have. Изучение или прокачивание английского языка будет хорошей инвестицией в карьеру разработчика.

Дальше можно сходить на offline-курсы, это обычно платно. Их в Украине есть минимум несколько. К сожалению, у меня нет информации, какие из них качественные, поэтому конкретные названия приводить не буду, изучайте рейтинги на DOU и в интернете. Если повезет с преподавателем, это будет эффективнее, чем самостоятельное обучение.

Еще бывают online-курсы, и тут одну хорошую ссылку я все же оставлю. Это курсы от hexlet (обучение частично платное, частично бесплатное).

Будьте в тренде. Следите за изменениями, новыми статьями и инструментами в мире PHP. Вам помогут два дайджеста: DOU PHP Digest и Habrahabr PHP Digest. Материалы этих дайджестов покрывают большую часть того, что происходит в PHP мире.

Читайте блоги и твиттеры передовых PHP разработчиков. В PHP сейчас эра фреймворков, стоит знать, кто такие и что такое Fabien Potencier (Symfony Framework), Taylor Otwell (Laravel Framework), Matthew Weier O’phinney (Zend Framework). Разберите по полочком код какого-то фреймворка, например, Symfony, попытайтесь написать свой.

Поучаствуйте в open source проекте, начните свой или присоединитесь к существующему. Это даст интересный опыт работы над open source проектом, знакомства с ключевыми разработчиками этих проектов, возможность перенять их опыт. Бонусом придет признание в сообществе и позитивная оценка работодателями.

Ходите на PHP митапы. В Украине и в частности Киеве проводятся как большие и платные конференции, например, PHP Fwdays, так и бесплатные встречи, например, PHP Friends Club, Symfony Cafe и другие. На таких встречах можно послушать доклады, но самое главное — пообщаться с более опытными коллегами, задать вопросы спикерам, к которым в обычном режиме достучаться сложно.

Успехов! 🙂

Сергій Камолов, Senior Software Developer в PROBEGIN, 10 років досвіду PHP розробки:

Перефразовуючи Марка Твена, можна назвати два найважливіші моменти у житті PHP розробника: рішення почати працювати з PHP та рішення перейти на Ruby. Це, звісно, жарт, але ще кілька років тому кар’єра PHP розробника виглядала саме так. Хіба що замість Ruby могла бути будь-яка інша мова програмування.

Із самого початку PHP вважалася мовою з найнижчим порогом входження, що, з одного боку, зумовило її стрімку популярність, а, з іншого, породило дещо зневажливе ставлення з боку представників інших мовних «філософій», адже розпочати кар’єру з PHP було набагато простіше, аніж, скажімо, з Java або .NET. Ще кілька років тому мінімальний перелік вимог на посаду Junior PHP Developer, окрім знання самої мови, обмежувався базовими знаннями HTML та MySQL, а знання JavaScript додавало неабияких переваг серед інших кандидатів.

Зараз ситуація інша, адже змінилися і сама мова PHP, і рівень задач, що вона вирішує. Навіть сам Расмус Лердорф, винахідник PHP, часом дивується, якого розвитку набуло його творіння. Якщо проаналізувати сучасний рівень вимог до кандидатів-початківців, то тут вже і знання з ООП та патерного програмування, досвід роботи з різними фронтенд-фреймворками, компіляторами та препроцесорами, SQL та NoSQL базами даних. А базові навички адміністрування Linux-систем тепер просто must have, як і розуміння ряду принципів, що формуються у зарозумілі слова із великих латинських літер (SOLID, KISS, DRY). І це ми навіть не дійшли до вимог щодо володіння самою мовою PHP, рівень знання якої має відповідати кільком рокам практичного досвіду. Звідси і виникає головне питання: як розпочати свою кар’єру в якості PHP розробника і як залишитися затребуваним фахівцем у галузі, де рівень вимог і технологій змінюється так стрімко і непередбачувано, як курс долара в нашій державі.

Перше, і, мабуть, найголовніше — це знання основ. І не стільки знання основ самої мови PHP та супутнього стеку, як розуміння принципів написання якісного коду як такого. Адже більшість проектів вимагають саме командної роботи, і володіння загально прийнятими практиками дозволяє створювати якісний продукт. Розвинути такі навички допоможуть:

Друге — це практичний досвід. Але тут важливо розуміти, що досвід може бути як корисний, так і не дуже, особливо з огляду перспектив у майбутньому. Як от, наприклад, тривалий досвід роботи лише з певною CMS чи застарілим фреймворком. Якщо врахувати, що за темпами появи нових трендів PHP відстає лише від JavaScript, можна зробити висновок, що за деякий час такий досвід може виявитися абсолютно не потрібним. Тому дуже важливо слідкувати за трендами та тенденціями у галузі веб-розробки. Створення додаткових проектів чи навіть просте проходження «туторіалів» дозволить залишатися затребуваним, навіть якщо основний проект все ще працює на PHP 5.3. На щастя, кожен популярний фреймворк має гарну документацію та добре організовані спільноти для обговорення нагальних проблем.

Третє — де шукати інформацію про тренди? Можна, звісно, скористатися сервісом GoogleTrends, але тут великий ризик дізнатися, що розробка на Python має набагато кращі перспективи. Можна переглядати різні рейтинги фреймворків на технічних сайтах чи блогах, але об’єктивну оцінку знайти там важко, бо кожен, як то кажуть, хвалить своє болото. То де ж шукати об’єктивність? На допомогу приходить DOU із розділом «Робота» (головне не переплутати із розділом «Зарплати»), адже, переглядаючи відкриті вакансії, можна дізнатися, що попит на знання Symfony 2 набагато перевищує попит на, здавалося б, сучасніший Symfony 3, а Full Stack Web Developer — це не міф, а реальна вакансія.

Четверте — вчитися на успішних прикладах. Здібності до програмування — це, звичайно, добре, але вони майже нічого не варті без вміння шукати якісну інформацію та здатності переймати чужий досвід. На жаль, деякі початківці починають створювати свої власні фреймворки та СMS, намагаючись самостійно розробити продукт, кращий за результат роботи цілої спільноти висококваліфікованих фахівців. Тим часом перспективність будь-якого розробника-початківця залежить від його відкритості до запитань та здібностей аналізувати чужий код.

Найкраще, звісно, шукати відповідей у більш досвідчених колег — вони і вкажуть правильний напрямок, і «носом ткнуть» у провалені тести, а ще ніщо так не збиває пиху, як код-рев’ю проведене тімлідом. Якщо ж такої можливості немає — тут вже тільки Google, тільки хардкор, тобто Хабрахабр. Хоча краще одразу налаштовуватися на пошук інформації в англомовному сегменті інтернету — більше шансів отримати якісну відповідь. Хоча бувають і винятки: так, наприклад, найбільшими дописувачами на відомому StackOverflow є саме початківці, а, отже, і якість інформації там відповідна. Дуже корисно переглядати проекти на GitHub з великою кількістю контриб’юторів, особливо коли потрібно вирішувати архітектурні питання. Головне розуміти, що використання чужих напрацювань — значно краще, ніж створення велосипеда самотужки. Ось, наприклад, підбірка кращих рішень на будь-які випадки життя: Awesome PHP.

Наостанок, якщо ви вже розробник-практик, можете похвалитися кількома завершеними проектами і навіть почали розглядати вакансії на посаду Middle або й Senior, то прийшов час відповісти самому собі на просте запитання: Why You’re a Bad PHP Programmer.

Ігор Петрович, Deputy Production Director в CoreValue, 10 років досвіду PHP розробки:

PHP — це мова, яка добре підходить для старту кар’єри в ІТ незалежно від того, як ви потім захочете розвиватись. Кожна мова має певні сильні та слабкі сторони. Існує багато дискусій про слабкі сторони PHP, такі як витоки пам’яті, масштабованість та швидкість, проте є більша неочевидна проблема, яку я виявив з власного досвіду. Через низький поріг входу та специфіку PHP багато розробників починають свій професійний шлях саме з цієї мови, але з часом вони не розвиваються і не вчаться писати правильний код.
Загальні рекомендації
Моя порада для новачків-розробників: важливіше навчитися правильно програмувати, ніж вивчити синтаксис. Ви повинні зосередитися на загальній практиці програмування, а не тільки на самій PHP.

Ось декілька важливих елементів в нашій галузі, які ви можете недооцінювати на старті кар’єри, але вам необхідно працювати над ними:

1. Структури даних. Я бачив надто часто, що люди не знають доступних структур даних і коли їх використовувати. Це призводить до низької продуктивності та поганого коду. Так само як шаблони проектування, структури даних — це елементи, які допоможуть вам вирішити конкретні проблеми.

2. Алгоритми. Потрібно спрощувати обчислювальну складність алгоритмів для підвищення продуктивності. Часто розробники використовують алгоритми, надані сторонніми бібліотеками, не розуміючи, як вони працюють. Навчаючись в університеті, я витратив якийсь час на алгоритмічне програмування. Брав участь у конкурсах ACM ICPC, завдяки чому досяг кращого розуміння алгоритмів і їх обчислювальної складності. Не потрібно перемагати у цих конкурсах, потрібно просто брати участі. Навіть якщо ви навчитеся вирішувати лише частину завдань, будете краще розуміти тему.

3. SQL. На великих проектах зазвичай є спеціаліст, який обробляє запити баз даних, особливо складні. Але якийсь час вам потрібно буде це робити самостійно. Згодом вам доведеться розібратись і зрозуміти роботу ORМ. Наприклад, як там формуються SQL запити. Іноді краще писати ці запити самостійно, ніж покладатися на ORM.

4. Шаблони. Зосередьтеся на тому, коли ТРЕБА їх використовувати, а коли НЕ треба. Повторно перечитуйте шаблони кожного разу, коли думаєте, що досягнули нового рівня, адже кожного разу ви будете розуміти і сприймати їх по іншому. Ваша ціль — досягти рівня, коли ви зможете автоматично розпізнати чи потрібно використовувати певні шаблони.

5. «Як працює веб» на рівні, який комфортний для вас. Ви повинні почати з основ і поступово заглиблюватися в кожну тему. Деякі важливі з них:

a. Як запити надходять із вашого браузера на сервер і як дані повертаються.
b. Cookies / Sessions
c. SSL / HTTPS

6. Принципи, яких рекомендовано дотримуватися:

7. Англійська. Вам потрібен хороший рівень англійської, щоб правильно розуміти завдання та щоб комунікувати з клієнтами.
Конкретна PHP порада

При розробці на PHP надзвичайно рідко ви будете використовувати чисту PHP. Як правило, ви будете розробляти, застосовуючи один з таких підходів:

  1. Фреймворки (такі як Symfony, Lavarel, ZF, Yii).
  2. CMS (наприклад, WordPress, Drupal, Typo3).
  3. Платформи (наприклад, Magento).

Для розвитку в PHP можна опановувати будь-який з вищезазначених варіантів. Тим не менш існує певна крива навчання для кожного з цих підходів, тобто ефективність в одному стеку технологій не означає ефективність в іншому. Але не поспішайте вивчати їх всіх одразу, вибирайте один за покликом серця. Зазвичай розробники спеціалізуються не у всіх.

Щодо літератури, існує багато книжок із загального програмування, алгоритмів, патернів тощо. Багато було рекомендовано в попередніх серіях статей DOU для інших технологій. Я можу порадити такі сайти для початку:
1. php.net/manual/en
2. www.phptherightway.com

P. S.: Наприклад, мені достатньо було лише документації від офіційного php.net, щоб отримати PHP сертифікацію.


Подписывайтесь на наш Telegram-канал для джуниоров, чтобы не пропустить интересные вакансии, стажировки, курсы, статьи.

Что обязательно нужно знать в PHP и что посоветуете выучить? — Хабр Q&A

Вообще правильно выше сказали, что необходимо плясать от требований потенциальных работодателей. Это все очень зависит от региона - требования, конкуренция, предпочитаемые технологии. А на удаленку без опыта не знаю, можно ли устроиться, я не пробовал. Я бы сказал, что вреда не будет, если вы прямо сейчас напроситесь на собеседование где-нибудь.
Можете погуглить че-нить типа "как пройти собеседование на программиста php" или типа того, посмотреть обычные задачи для собеседования. Конечно без нет гарантий, что они вам попадутся, но сможете сами увидеть свои слабые места и вообще будете думать в нужную сторону (трудоустройства).
Вот типовое задание. Конечно, сделать его можно по-разному. Но как сделаете - уж точно можете искать место джуна. Хотя, и то правда, что оно не на джуна и возможно, что оно займет у вас много времени. Но если осилил - не сомневайтесь, уже можно искать работу и в парралель продолжать учиться. Я вот очень благополучно работал без знания автотестов. Не к тому, что они не нужны, а к тому, что вам не обязательно пытаться объять необъятное. А на рынок все-же надо смотреть. А то мож и правда нужно битрикс учить, фиг знает. Красота красотой, но зарабатывать надо.
"Создание мини CRM системы:
Должно быть реализовано на любимом фреймворке
Backend часть
1. Авторизация в CRM системе
1.1 Поля для входа на форме (Email, пароль)
2. Модуль для отображения пользователей системы
2.0 Отображение списка пользователей
2.1 Возможность выставление прав пользователям, список (Администратор, менеджер)
2.2 Поля пользователя (email, пароль, статус)2.3 Удаление и редактирование пользователей
2.4 Смена статуса пользователям, Активный или неактивный
2.5 Редактировать список может только пользователи с правами администратор
3. Раздел отображение заявок
3.1 Вывод списка заявок
3.2 Поля у заявки (Имя клиента, Наименование заявки, наименование товар, телефон, время создания заявки, статус, комментарий, цена)
3.3 Смена статуса заявки (Принята, отказана, брак)
4. Раздел истории изменения заявок
4.1 Каким пользователям были изменены поля у заявки (Имя клиента, Наименование заявки, наименование товара, телефон, время подачи заявки, статус, комментарий, цена)
5. Добавить возможность выгрузки в CSV списка заявок, поля в CSV (Наименование заявки, товар, цена, телефон)

Frontend часть

1. Создать простую форму для отправки заявки
1.1 Поля формы (Имя клиента, телефон, комментарий, товар)
1.2 Список товаров (яблоки, апельсины, мандарины)

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

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