PHP.today
3.94K subscribers
10 photos
3 files
233 links
Самые свежие новости из мира PHP. Обновленные стандарты. Лучшие практики с примерами кода. Как писать чистый, читаемый и понятный код.
Чат тут https://tttttt.me/all_it_ru
Download Telegram
Итак, приступим.


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

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

Обычно основные этапы делятся на два типа - алгоритмы и архитектура.

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

Но прежде чем начать читать, я хочу еще раз подчеркнуть, что System Design - это НЕ проверка ваших знаний!! Вам нужно показать не свои знания и опыт, а как вы думаете, ошибаетесь, предполагаете, и что будете делать в той или иной ситуации. Главный совет - забудь весь свой опыт и начни думать «с нуля»!

https://habr.com/ru/amp/post/516718/

Вот тут еще подборка неплохих видео с задачами и решениями, однако я хочу вас предостеречь, что некоторые интервьюируемые больше сыпали опытом, чем реально показывали свой мыслительный процесс:

https://youtube.com/playlist?list=PLBRXq5LaddfzDBjg6soIwJJA2klXXs6ni
Алгоритмы.

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

Для подготовки требуется понять что такое сложность алгоритма по времени и по памяти

https://tproger.ru/articles/computational-complexity-explained/

ну и потратить от 100 часов на leetcode.com на решение разнообразных задач. А так как все мы любим решать сложные, никому не нужные проблемы методами, которые никому не известны (отсылка к анекдоту, если кто не понял), то такая подготовка - одно удовольствие.


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

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


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

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


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

Например - Амазон имеет 17+ (они все еще пополняются) так называемых принципов лидерства, к каждому из которых необходимо подготовить историю из личного опыта.

Вот тут можно почитать про них подробнее:

https://habr.com/ru/amp/post/645045/
Меня тут недавно попросили рассказать про гит для ребят, только начинающих свой путь в разработке ПО, и я понял, что мне очень нравится рассказывать что-то, что я знаю. А потом посыпались вопросы по каким-то нюансам, и вдруг оказалось, что рассказывать то, что я не знаю - еще более увлекательно 🤣

И тут я подумал - а не заняться ли мне инфоциганством в мире IT?

Было ли бы интересно кому-то из вас узнать что-то новое/старое но более подробно на паре-тройке небольших видеомитингов в формате «первый бесплатно, а потом, как пойдет»? Ставь лайк, если да, и какаху, если инфоцигане задолбали.

Навскидку приходят разные темы, от инструментов вроде git, ngrok, сервисов типа elasticsearch, nginx, varnish и до каких-то вещей внутри языка вроде алгоритмов, ООП. А может даже что-то про серверы, bash scripting etc. Ну и конечно - можно поговорить о Magento, ведь разрабов там постоянно не хватает, зарплаты х2 от обычного ларавельщика, ООП не хуже чем в симфони, интересных задач хватает (вроде каталога на 2 млн продуктов, которые нужно синхронизировать каждые два часа) а сама мажента таки в ближайшие лет 5 точно не умрет (а потом можно будет свалить куда-то в смежную область)

Заодно прикрепляю опрос, чтоб узнать, какого уровня кунг-фу у большинства из подписчиков.
Я на всякий случай напомню, что у нас есть еще и чатик, где можно позадавать вопросики

Ссылка:
https://tttttt.me/all_it_ru
С 9 июня потихоньку релизят альфа-версии PHP 8.2.

Недавно вышла уже третья альфа.

О том, какие RFC включили в 8.2, что же такого новенького мы получим - можно почитать вот тут https://sergeymukhin.com/blog/chto-novogo-v-php-82 (спойлер - ничего сверхъестественного я там не нашел, конечно же, но кое какие вещи типа readonly классов, или устаревание некоторых синтаксических вещей будет полезным)
Yii. Лет 10 назад был моим любимым фреймворком. Шутка ли, в пару строк кода/ в пару кликов с Gii можно получить грид, который будет не только выводить все что нужно, но и работать по ajax с jQuery под капотом, собственным готовым дизайном, и все это за пару минут!

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

Я все как-то хотел написать про третью версию фреймворка Yii, но руки не доходили. И вдруг на Хабре наткнулся на статью, которая обещает стать циклом. Похоже Yii3 собирается подвинуть популярные в последние лет 5 Symfony и Laravel.

Все тут https://habr.com/ru/post/695664/
Привет, на связи Podlodka PHP Crew! Большинство русскоязычных конференций и митапов по PHP приостановлены. Но мы продолжаем собирать комьюнити! Во 2-м сезоне поговорим, как внедрять в работу новые инструменты разработки с пользой для бизнеса.

Вместе с Александром Макаровым, Валентином Удальцовым, Александром Кирсановым и другими спикерами разберёмся с основными и продвинутыми сценариями отладки кода, научимся эффективно комбинировать PHP и Docker.

Стартуем уже 27 февраля! В программе:

✴️ Лайвкодинги по поиску ошибок с помощью статического анализа;
✴️ Практика применения Docker;
✴️ Доклады по отладчикам кода и анализу code style;
✴️ Воркшопы по работе с Composer.

Это не всё 😉 В новом сезоне вас ждёт много интересного. За подробностями — на сайт

Онлайн-конференции Podlodka Crew родились из одноимённого IT подкаста. Каждый сезон длится пять дней — рассматриваем одну тему с разных сторон, чтобы узнать её как можно глубже. 

🤑 Успейте забрать свой билет по сниженной цене — ранним пташкам скидки.
Написал для вас "Шпаргалку по JavaScript для всех бэкэндеров". Она для тех, кому иногда приходится сталкиваться с JS, но настолько редко, что основные тонкости языка очень быстро выветриваются из головы.

#js #frontend #шпаргалка

https://vc.ru/dev/612832-shpargalka-po-javascript-dlya-vseh-bekenderov
Вы еще не пользуетесь rector? Тогда мы идем к вам!

Способ уменьшения боли при рефакторинге для обновления (да и не только, там тысячи сценариев для анализа и исправления кода).

Подробности тут https://habr.com/ru/companies/oleg-bunin/articles/720216/
Я помню, как работал с большим массивом данных, и очень удивился когда обнаружил, насколько отличается потребление памяти ассоциативного и классического массивов. Даже пришлось нагородить свой велосипед, чтоб работать с 10 миллионами строк из базы не втыкая еще пару планок оперативы (разница была в районе - ассоциативный 8 гигов, классический - 300 мегабайт).


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


https://habr.com/ru/articles/746868/
Залез почитать что новенького на Плюке, и обнаружил отличного автора!

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

То, что точно подойдет для всех - кастомизация шторма (с новым дизайном) для большего удобства - https://habr.com/ru/articles/784256/
А для тех кто пишет API на Symfony - как можно суперудобно прикрутить сваггер, без добавления дублирующих всё и вся аннотаций к каждому методу (да еще и не сломав старую реализацию, если она у вас уже есть)


https://habr.com/ru/articles/775056/
Новая статья на хабре о перезапуске устаревшего портала на PHP
Много технических подробностей, схемы архитектуры и общие рассуждения о том, что делать с устаревшими проектами, чтобы они продолжали жить и развиваться.

https://habr.com/ru/articles/787958/
Привет! На связи Podlodka Crew, организатор IT-мероприятий по разным технологиям и языкам. Уже 22 апреля мы запускаем четвертый сезон конференции по PHP. Тема — практика работы с базами данных. И практики будет реально много. Ведь никакая теория не сравнится с возможностью увидеть применение инструментов и технологий в реальности при решении рабочих задач.

Продолжаем знакомить вас со спикерами! Ребята поделятся кейсами и научат внедрять услышанное в собственные проекты:
Олег Мифле из VK расскажет, какие бывают уровни изоляции транзакций, зачем они нужны и как устроены. Разберёт аномалии, влияющие на консистентность базы, и способы с ними справиться.

Ильяс Салихов из RetailCRM раскроет тонкости работы с PostgreSQL, в том числе поговорим про индексы и типы данных. Объяснит нюансы миграции схемы в масштабе, рассмотрит батчинг-операции.

Дмитрий Вагин из Wildberries тоже затронет тему миграций. Но не остановится на этом: научит строить грамотный flow работы с СУБД на проектах. Опишет, как устроены фикстуры и слепки в тестировании и разработке. Покажет проблемы изолированных сред, научит строить prod-like окружение. Отдельно остановиться на работе с чувствительными данными.

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

Ознакомиться с полным списком спикеров и докладов можно на сайте. Билеты уже в продаже, поспеши забрать свой💥