Что посоветуете еще подучить что бы тянуть на Junior PHP разработчика?

Здравствуйте. Буду очень благодарен тем, кто посоветует, что еще изучить или подтянуть. Предоставил ссылки на плагины, возможно кому-то будет интересно. Надеюсь я так же помогу тем, у кого стоит такой же вопрос. Вопрос модераторы удалили вчера, но я надеюсь, что кто-то найдет что-то полезное для себя в ответах:)

Опыт работы есть только на фрилансе.

Стек:

  1. PHP
    1. ОПП - понимаю, могу применить на практике. Был написал маленький форум на процедурке, потом поностью перенесенный на ООП (писал для себя). В форум входили - Разделы, темы разделов, комментарии, CRUD для разделов и тем.Так же была регистрация, только зарегистрированные пользователи могли просматривать темы разделов.

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

      Магические методы, так на память сейчас - invoke, get, set, construct, destruct, isset, unset.

      Понимаю разницу между this и self.

    2. Основы - сами основы PHP знаю на среднем уровне
    3. Laravel - знаю на среднем+ уровне. Сейчас работаю на нем. Сделать магазин с админкой (самописной, да скажите кастыли, но я пишу что бы набраться опыта и разобраться в своем коде мне легче) - не составляет проблем. Есть несколько проектов, 2 магазина, 1 сайт для квест комнаты, в данный момент работаю над крупным проектом - тур сайт (с турами, со страницами с платной подпиской, с регистрацией гидов, мультиязычность), после этого проекта хочу идти рассылать свое резюме:)

      Для админки использую AdminLTE

    4. Знаю стандарты PSR
    5. HTTP протокол
    6. Работаю в IDE phpstorm

  2. SQL
    1. Понимаю и могу приметь на практике один к одному, один ко многим, многие ко многим. Могу применить джоины. К примеру есть три таблицы [Товар] [Фильтры] [Позиции фильтров]. Знаю как их связать, что бы вывести товар, а к нему фильтр(цвет к примеру) и вывести только красный, синий и белый(цвета которые были отмечены к примеру в админке).

      Знаю, что такое order by, group by, limit, like, sum, mux, min, between, count.


  3. HTML - основы знаю хорошо
  4. CSS - знаю на достаточно хорошем уровне. Адаптивная верстка, flex, позиционирование элементов. Сверстать макет - не предоставляет сложности. Работал и знаю фронт фреймворки:
    1. bootstrap
    2. uikit
    3. bulma

  5. JS - знаю на низком уровне. На фриланс проектах был написан календарь для квест комнаты с использованием moment.js и swiper - ссылка на скрин prntscr.com/g5sio5. Был написан калькулятор для выбора элементов - ссылка на скрин prntscr.com/g5sj10. Библиотеки(плагины) с которыми работал по JS
    1. jquery
    2. moment.js
    3. swiper
    4. noty.js
    5. ion.rangeSlider
    6. scrollanim
    7. flatpickr
    8. sweetalert
    9. vue.js начал его изучать. Сейчас на проекте использую element
    10. AJAX



Работал на линуксе, настроить сервер на нем могу. По гиту основы знаю, принцип понимаю.

Вопросы
  1. Что нужно знать обязательно еще джуну по PHP?
  2. Никак не могу понять зачем нужны абстрактные классы и трейты, возможно из-за того что на практике с ними не работал (Вопрос закрыт)
  3. Что можно почитать по юнит-тестам т.к. с ними не работал и пока не имею предствления?
  4. Страшно ли, что работал все время в phpmyadmin, а не в консоле?:)
  5. Нужно ли джуну знать, как настраивать сервер (тонкости) апача?


Спасибо, что уделили время на меня! Буду рад почитать ваше мнения, предложения.
  • Вопрос задан
  • 3213 просмотров
Решения вопроса 9
  • Советую прочитать Мэтт Зандстра - «PHP. Объекты, шаблоны и методики программирования», это по поводу абстрактных классов и трейтов, и в целом понимание ООП подтянуть и познакомиться с паттернами. Оч крутая книга.
    Ответ написан
  • @Fortop
    Для джуна уже более чем неплохой стек (при условии, что действительно знаете, а не думаете, что знаете)

    Так что есть смысл расти выше к мидлу.

    • Подтянуть использование ООП (те самые абстрактные классы и интерфейсы).
    • Обязательно Composer, посмотреть некоторые пакеты которые есть на packagist
    • Разобраться в key-value БД, очередях.
    • Познакомиться с патернами.
    • Добрать еще 1-2 фреймворка из разряда Zend/Symfony (но не Yii, Codeigniter, Kohana) и Slim/Zend Expressive
    • Разобраться с REST
    • API
    Ответ написан
  • gobananas
    @gobananas
    botbot.ru
    Да всё у вас в порядке для джуна, дальше только опыт. Всё правильно выше сказали про требования конкретной компании - этого не угадаешь. Где-то mongodb нужен где-то postgresql где-то трейты юзают и php7 а кто-то на 5.3 сидит ещё. Ваших знаний считаю достаточно.
    Ответ написан
  • Я бы не назвал ваш уровень Junior. Если вы в состоянии самостоятельно
    - развернуть девелоп-среду
    - вести гит
    - писать код и обкладывать его тестами
    - настроить деплой

    то значит, в состоянии самостоятельно ставить себе задачи. А это уже на Миддла тянет )
    А у Миддла способ развиваться только один - практика. Самообучаемость, как видно, присутствует. Не зацикливайтесь на парадигмах, фреймворках и ЯП - берите проекты и выполняйте их
    Ответ написан
  • @Maksclub
    Junior-программист
    По Юнит-тестам крутейшее видео (7 часов :) https://www.youtube.com/watch?v=gRmEpUYaS20&list=P...

    от себя добавлю -- нужно знание фреймворка, сам недавно устроился, тестовые почти все дают такого плана -- сделай простейший REST API. Ну и резюме хорошее, много писем и звонков, как писали выше, на Джуна и с меньшими навыками устраиваются. Да, тесты от джунов не всегда требуют, тк в компаниях не всегда их пишут :)
    Ответ написан
  • qonand
    @qonand
    Freelancer/Web Software Engineer
    1. Что нужно знать обязательно еще джуну по PHP?

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

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

    Для этого можно просто погуглить: ссылка раз, ссылка два

    3. Что можно почитать по юнит-тестам т.к. с ними не работал и пока не имею предствления?

    Документацию по phpUnit

    4. Страшно ли, что работал все время в phpmyadmin, а не в консоле?:)

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

    5. Нужно ли джуну знать, как настраивать сервер (тонкости) апача?

    Нет
    Ответ написан
  • Decadal
    @Decadal
    чтобы тянуть на джуна, нужно вовремя закрывать задачки. Работа джуна - просто закрывай задачки которые тебе выдают. Поэтому списки технологий и все эти стеки - одна большая условность, фильтр для вакансии. Ну что значит "знать jquery"? или "знать ajax"? Работайте и запоминайте, где что и для чего используется, а если попросят экзотику - вы её, что поделать, выучите.
    В конечном счёте, всё упирается во время и компанию, на которую собираетесь работать. Для джуна в известной крупной компании нужно действительно хорошо натаскаться в тех стеках, которые они перечислили (не факт что они пересекаются с перечисленными здесь, так что нет смысла заучивать всё подряд),
    для джуна в какой-нибудь компании может не понадобиться вообще ничего кроме базовых знаний, а всё остальное вы приобретёте на ходу.
    Ответ написан
  • saboteur_kiev
    @saboteur_kiev
    build engineer
    1. Что нужно знать обязательно еще джуну по PHP?
    Уметь гуглить вакансии, звонить в компании, отправлять резюме и ходить на собеседование. Именно это, а не что-либо другое, дает реальный шанс трудоустройства.

    Это главное.

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

    3. Что можно почитать по юнит-тестам т.к. с ними не работал и пока не имею предствления?
    Документацию и примеры кода.

    4. Страшно ли, что работал все время в phpmyadmin, а не в консоле?:)
    Плохо, если вы боитесь консоли. Выбирать нужно просто удобный инструмент, но phpmyadmin в энтерпрайзе обычно не пользуют. Если сможете обойтись без него - значит ок.

    5. Нужно ли джуну знать, как настраивать сервер (тонкости) апача?
    Как настраивать - нужно. Тонкости - не обязательно.
    Ответ написан
  • Akdmeh
    @Akdmeh
    PHP, Yii2, Music
    Ко всему выше сказанному хочу дополнить только одно: нужно уметь самому искать нужную информацию. Поверьте, и на этом сайте, и в интернете масса ответов и статей на тему, что нужно знать джуниору PHP. Перед тем, как самому писать, нужно не поленится и погуглить, поискать решение самому. Это будет ваш наиболее ценный навык - умение решать поставленную проблему/задачу самостоятельно.
    По дополнительному: вы не обязаны знать тонкости, но не помешает знать Apache и nGinx, хотя бы принцип работы и почему так, а не иначе - это важно для избежания багов. Не помешает знать, что такое PHP-FCGI, хотя не обязательно; обязательно - Composer; ну и почитайте книгу Мэтта Зандстры. Ну и Symfony, как уже выше советовали - тоже не помешает.
    Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы