Senbonzakuraa
@Senbonzakuraa
Начинаю начинать

Что обязательно нужно знать в PHP и что посоветуете выучить?

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

Я знаком с:
  • Самыми простыми вещами, синтаксис, переменные, операторы и тд.
  • Циклы и управляющие конструкции if, else.
  • Переменные $_GET,$_POST.
  • Сессии.
  • MySQL, умею составлять запросы.
  • Некоторые строковые функции.
  • Немного AJAX.
  • ORM по типу RedBean.
  • Немного GitHub.
  • Начинаю знакомиться с laravel и Composer.
  • Серверная часть. Убунту-сервер, командная строка и тп.


Я могу:

  • Написать скрипт регистрации и авторизации для сайта, с помощью сессий.
  • Сделать простой загрузчик файлов на сервер.
  • Сделать постраничный вывод записей из бд.
  • Знаю HTML+CSS, могу верстать простенькие макеты.
  • Имею опыт в создании новостного сайта для своего региона на чистом PHP, с использованием перечисленных выше знаний.

Реализовал на сайте систему модерации контента и пользователей, редактирование категорий, систему просмотров и комментариев, пародию на доску объявлений по типу авито и всякого по мелочи. Конечно судя по моим знаниям можно понять какого я Франкенштейновского монстра создал, но хоть что-то.
Каких советов я жду?
Я жду советов по типу:

  • Какие функции обязательны к изучению?
  • С какими общими понятиями нужно ознакомится?
  • Что бы вы лично рекомендовали к изучению?

Ах да, и прошу объективно оценить мои шансы устроиться джуном через пару месяцев (могу обучаться хоть целыми днями)
  • Вопрос задан
  • 5380 просмотров
Пригласить эксперта
Ответы на вопрос 13
toxicmt
@toxicmt
CTO at hexlet.io
> С какими общими понятиями нужно ознакомится?

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

1. Автоматизированное тестирование.
1. Автоматное программирование.
1. DDD.
1. Функциональное программирование (функции высшего порядка, библиотеки типа https://github.com/tightenco/collect)

Мастхев книги: https://ru.hexlet.io/pages/recommended-books
Немного умных слов: https://docs.google.com/spreadsheets/d/e/2PACX-1vS...
Ответ написан
voronkovich
@voronkovich
Я бы порекомендовал посмотреть плейлист PRS-7 фреймворк на канале Дмитрия Елисеева.
Там обсуждается создание современного фреймворка на PHP и рассматриваются такие темы как: PSR, Dependency Injection, шаблонизаторы и т.д. Крайне рекомендую!

Также советую почитать книгу Джоша Локхарта (создатель фреймворка Slim) Современный PHP.
Slim-фреймворк тоже можете посмотреть, он достаточно добротно написан :).

TDD. Есть хорошая книга Кента Бека Экстремальное программирование. Разработка через т.... Примеры там даны на Java, но будут понятны любому кто знает хотя бы один Си-подобный язык (PHP к таковым относится!).

UPD: Вы просили указать: можно ли с вашими знаниями устроится джуном. Я думаю, что да, можно.
Ответ написан
Комментировать
MisterN
@MisterN
Вообще правильно выше сказали, что необходимо плясать от требований потенциальных работодателей. Это все очень зависит от региона - требования, конкуренция, предпочитаемые технологии. А на удаленку без опыта не знаю, можно ли устроиться, я не пробовал. Я бы сказал, что вреда не будет, если вы прямо сейчас напроситесь на собеседование где-нибудь.
Можете погуглить че-нить типа "как пройти собеседование на программиста 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 Список товаров (яблоки, апельсины, мандарины)
Ответ написан
@anton99zel
29а класс средней школы №7
Частично согласен, и вот что в целом получается:
Грубо говоря, рынок "создателей сайтов" делится на два лагеря: школьники, готовые за 500 рублей за 2 часа состряпать что-либо из готового шаблона, и профессиональные фрилансеры и веб-студии. Заказчики, к счастью не все, но все же ищут тех, кто сделает хорошо и очень дешево. Но потом все равно такие заказчики идут на биржу в целях найти тех, кто исправит косяки школьников, а также реализует все "хотелки". Чаще вижу не тех кому нужен сайт, а тех кому нужны люди с напильником. Особенно подобное можно наблюдать в сфере интернет-магазинов, когда каждый школьник может установить cms, а потом когда нужно настраивать разного рода функционал, то школьники уже в силу своих знаний, ничего не могут. Это касается различного рода: работы с интернет платежами, синхронизации, доработка различных фильтров, написание собственных разработок, модулей.

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

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

Читайте хабру, тостер, сделайте свой тестовый сайт и на его базе придумывайте новый функционал, это будет теория с практикой. Задачки можно подсматривать тут или на фрилансе. Но в целом, тот багаж знаний, который вы описали, достаточен, чтобы начать маломальски где-либо работать, но расти нужно каждый день. Мне кажется в данной сфере - всю жизнь учишься и работаешь.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
В PHP, в базовом уровне обучения - всё просто:
Нужно уметь создавать несколько новых объектов на основе уже единственно-созданного.

Код для любого унифицированного объекта (включая его рендер на фронте и обработчик) - мы пишем ОДНОКРАТНО!

Например, у нас есть блог.
На странице нужно разместить 2 формы авторизации, 2 строки поиска и 6 блоков с определёнными выборками: 5 самых читаемых раздел1, 5 самых новых раздел1, 5 самых читаемых раздел2, 5 самых новых раздел2, 5 самых коментируемых раздел1, 5 самых коментируемых раздел2.
Это три класса и три объекта. Все остальное - это клонирование созданного нужного объекта и замена свойств.

Затем, всё это оформить в нормальную архитектуру.
Чтобы 1 строку поиска или 10 строк подряд - было не важно: запуск цикла нужное количество раз и нужное количество строк поиска с обработчиком - готовы.

Ну и самое главное - контроль входных и выходных данных!
Ответ написан
Комментировать
REST API, SOAP , RPC и прочую бадягу по типу клиент-сервер
Ответ написан
Комментировать
OtshelnikFm
@OtshelnikFm
Обо мне расскажет yawncato.com
js - да, это фронт как вам кажется, но без него никуда
Безопасность - все что вы пишете, принимаете, выводите - требует понимания предстоящих проблем. Поэтому очистка и валидация - как минимум.
Работа с куками
Работа с мемкешем и в принципе с объектным кешированием
ООП - странно, но это же само собой пунктом номер 0
Доки - думаю в команде будут требовать документировать код (PHPDoc)

Чтоб устроиться еще быстрей - api wordpress. Но тогда из моих пунктов останутся только первые три
Ответ написан
Комментировать
@Programmir
Я изучил php и laravel, а работу не могу найти. Сейчас же каждый школьник может сайты клепать, все ломанулись в веб.
Ответ написан
@mirosas
Я бы посоветовал не идти джуниуром в контору, если вы только не живете в Москве, либо вас очень привлекает работать от забора до обеда. Программирование ради программирования с фрилансом несовместимо, там конкретные задачи, но вы бы выбрали не php скорее всего, если бы вас интересовало программирование ради программирования. Вообще работать в конторе хорошо, но при курсе 60 рублей за доллар, какой в этом смысл?

Почему? Ну описываемых вами навыков, если еще подизучить вордпресс чуток, и если вы знаете инглиш хоть немного, достаточно чтобы на фрилансе зарабатывать сотку в месяц уже через полгода, и понапрягаться придется только первые месяца два-три. Если знаете инглиш хотя бы на High Intermidiate, то есть смысл попробовать работать удаленно именно как php developer (без всякого там клепания плагинов для вордпресса). И все это можно начать делать уже сейчас, обучаясь по ходу, и получая оплату на первые 2-3 месяца около 3-5 долларов в час.
Ответ написан
Комментировать
@Yan-s
Ответ написан
Комментировать
@vanyamba-electronics
Рекомендую с XML-RPC познакомиться, раз AJAX уже знаете.
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Все зависит от требований нанимателя, а не от наших напутствий. А так же от ценника, на который Вы рассчитываете.
Однако не увидел в Вашем списке ООП. А без него никак и никуда, только wp мучать. А Вы там еще laravel начали, его точно хрен поймешь пока ООП не освоишь. Так что надеюсь Вы просто забыли упомянуть.
Все что написали мои коллеги - очень важно, но не критично для джуна на большинстве компаний. Тем более если реально попадете на компанию, где Вас заставят wp напильником строгать. Но я бы не шел на такие. Это путь в никуда. Можно рассмотреть на короткую перспективу, что бы была запись в трудовой, деньги хоть какие-то, а параллельно после работы читать и осваивать то, что будет отличать Вас от школьника.
Ответ написан
@Vilintritenmert
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
от 300 000 до 500 000 ₽
20 апр. 2024, в 18:09
70000 руб./за проект
20 апр. 2024, в 18:04
3000 руб./за проект
20 апр. 2024, в 17:55
3000 руб./за проект