Не вошедшие материалы и вакансия есть в нашем телеграм канале. Телеграм: t.me/areawebsu Телеграм чат: t.me/+yMyO-maY... VK: areawebsu Boosty: boosty.to/areaweb Наш образовательный проект - areaweb.su
Немного таймкодов ) 0:00 - Введение, про компанию, вилку ЗП 2:01 - три принципа ООП 2:12 - Инкапсуляция 2:37 - Наследование 2:49 - Полиморфизм 3:33 - Инкапсуляция от техдира 4:38 - В своей работе используешь наследование и полиморфизм? 6:21 - про четвертый принцип ООП(Абстракция) 7:12 - Какой любимый язык программирования? 7:58 - Почему пхп любимый? 8:39 - Что такое в целом типизация? Какая бывает? 9:40 - Какая типизация лучше? 11:10 - Понравился C# ? 12:03 - Списочные типы в пхп есть? 13:27 - По умолчанию в пхп как передаются аргументы? 13:56 - Что такое стрелочные и анонимные функции? 15:04 - Расскажи про замыкания 16:28 - Определение замыкания от техдира 17:00 - Про паттерны проектирование, какие знаешь и т д ? 18:13 - Зачем нужна абстрактная фабрика ? 19:54 - Паттерн Singleton 20:31 - Часто Singleton называют анти-паттерном? 21:00 - Про MVC,MVP,MVVM - сталкивался? 23:30 - Зачем отделять бизнес-логику от представления? 25:59 - Приходилось работать с SOAP API? 26:10 - Расскажи что такое REST API? 28:45 - Какие бывают REQUEST методы? 29:43 - Чем PUT отличается от PATCH? 31:11 - Swagger использовал? 31:45 - C какими БД приходилось работать? 32:27 - С транзакциями дело имел? 33:23 - Что такое ключи в БД? 33:48 - Чем первичный ключ от вторичного отличается? 34:07 - Что такое индекс? 36:58 - Про нормалиазцию БД 38:26 - В каких случаях нормализация не нужна? 40:52 - Про Git. Какой командой можно отменить коммит? 41:07 - Откатить изменений в файле можно? 41:33 - Чем отличается merge от rebase? 42:57 - Тегами пользуетесь? 44:08 - Про Докер, используешь? 44:20 - С Kubernetes работал? 44:50 - с CI/CD опыт имеется? 46:19 - Про документирование проектов 47:16 - Про тестирование 47:29 - В качестве дебагга чем пользуешься? 48:22 - Конец
Какой замечательный ТехДир, как он классно спрашивает, невероятно прекрасно что он после этого говорит, что именно он хотел услышать. Обычно такое происходит только на открытых фейковых собеседованиях :)
Ответы автора максимально слабые я бы ему мидл позицию не предложил. И даже на Джуна бы я его не взял потому что я вижу что человек пишет код пишет кодом много но он совершенно не понимает что он делает зачем он делает как он делает и основное - ему это совершенно неинтересно. Его где-то научили ему где-то сказали и он это просто тупо копирует и делает без понимания того что,как и почему он делает именно так. К такому собеседованию даже готовиться не надо здесь все базовые вопросы которые должны отлетать наизусть. Невозможно не знать о нормализации и де нормализации базы. Невозможно не знать об mvc, невозможно не знать о четырёх основных принципах ооп. Невозможно не знать о рест-е которым ты каждый день пользуешься... У человека нет понимания что такое бизнес логика для него это что-то "абстрактное" У человека нет понимания модели - пихает это понятие куда ни попадя. Вообще ничего не знает о паттернах даже синглтон толком не объяснил. У меня максимально негативное ощущение от собеседования. Очень слабое собеседование да и собеседователь тоже очень слабый если он говорит да-да всё нормально на откровенную хрень. По сути за всё собеседование автор не рассказал с уверенностью ни о чём. По всем заданным вопросам он или вообще ничего не знал или пытался как-то выкручиваться или знал поверхностно и очень плавал а-ля Я где-то что-то слышал но что я слышал где я слышал и нахрена оно надо я без понятия.
@@onlybestmusic4185человек умеет решать задачи и чётко объяснять что он делал и зачем. Пишет свои кастомные инструменты. Это уровень миддл разработки. А для теории и другой инфы, которой всё больше и больше, есть гугл, книги и документация. Ну и душные всезнайки, которые распекают других из-за незнания какого-то всеми забытого термина.
А какие паттерны проектирования вам задавали на собеседовании? я сам недавно выбирал курсы по IT, рассматривал разные компании, но в итоге остановился на Skypro. Лично мне понравилось, что обучение было структурированным и понятным, и уже через несколько месяцев я смог начать работать))
Прослушал с удовольствием(php программист с 2004 года). Прокомментирую. Вот прям непонятно: то ли плакать, то ли смеяться надо было, когда собеседующий сказал про второй этап собеседования. С ведущим разработчиком, понимаете ли, нужно будет повторить. Это что, вообще, такое? Техническое собеседование должно быть одно, а если их больше, то это либо на фиг идите, либо зарплату предлагайте космическую, что в данном случае действительности совсем не отвечает. По технической части на что обратил внимание: 1) Индексы это не просто "сущность" которая позволяет "ускорить фетчинг данных". Индекс это то, что и звучит -- индексация. Т.е. сохранение данных для их последующего использования. По факту, это отдельные файлы, служащие для этой цели. Т.е. сохранение этих файлов для последующего использования это и есть индекс. 2) Индекс для внешнего ключа. Дело не в том что там обязательно или нет, будет там первичный ключ в связи или нет. Смысл кроется в понимании что такое "индексация". Если ты связываешь таблицу внешним ключом с другой таблицей, то скорость поиска будет зависеть ровно от того, от чего и раньше, т.е. есть индекс таргетной таблицы или нет(при простом запросе). Упрощу -- для внешнего ключа нет разницы есть там primary или нет. Есть разница лишь в скорости поиска(наличии этого primary). 3) Нормализация. Собеседующий наговорил каши из своей головы. Нормализация это принцип "не тупи" при струкрурировании базы. Если ты не джун, то ты поймешь, а если джун то после тебя будут нормализировать :) Принципы нормализации гуглятся, но всё это любой мид понимает просто по опыту. Проще говоря, цель нормализации это устранение избыточности данных в базе и их ресурсов при их обработке. А денормализация это отход от этих, очевидных, принципов, в ситуациях того требующих. Спасибо за контент, продолжай в том же духе!
Мне хочется дойти по знаниям до твоего уровня, огромнейший спасибо много чего написал для изучения: Замыкание в php, Всё что было обсуждено о API, Индексация полей в БД и влияние вообще на скорости индексированного поля, Транзакции и т.д
Я php + фронтенд разработчик с 10-летним стажем. Но я не смогу ответить на вопрос, что такое полиморфизм, потому что я все эти определения забыл еще лет 6 назад, я не учу определения - я выполняю задачи! Сталкивался ли я с задачей бизнеса, которую я не смог решить в своей сфере и на платформе, на которой я специализируюсь за всё время работы - нет. 😑
меня кстати вообще поражают подобные собесы. и встаёт вопрос, вы ищите кто теорию вызубрил? или умеет решать бизнес задачи... в общем такое =\ аналогично, как выше про бд, я вообще sql начал забывать, нет нужды, а задачи закрываю стабильно и без проблем все что дают
тоже раньше задавался подобными вопросами, потом увидел как работают в компаниях где задают такие вопросы и понял, что они там находят клиентов лохов которые платят по сотням тысяч в месяц за проекты, которые им делают 2-3 года, в то время как команда поменьше сможет сделать тот же проект за полгода с тем же результатом...
Все зависит от уровня решаемых тобой задач. Вот смотри рандомный абстрактный пример. Ты работаешь инженером в компании, которая разрабатывает двигатели внутреннего сгорания, у вас есть несколько конкурентов, которые выкатывают на рынок более совершенные двигатели, скажем с более низкими расходом топлива. Двигатель сложная штука, с нуля разработать его вряд ли под силу, ты так или иначе пользуешься трудами людей, в том числе теоретическими, которые были вложены в его разработку ранее. Как не имея этих знаний ты сможешь улучшить продукт? Как ты сможешь общаться с коллегами на одном языке? Другое дело ты рабочий на конвейере, которому нужно по инструкции прикрутить этот двигатель к раме, тут тебе знание работы двигателя не к чему. И такой уровень компетенции не требуется для работы. Переводя в айти сферу: ты можешь 10 лет успешно работать джуном в своем уютном мирке, но вот прыгнуть за него уже нет.
@@sergeygnatyuk5217 Вполне возможно, но лично я таких людей не знаю, кто после 2-3х лет работы не был способен самостоятельно справиться с разработкой проекта или руководством его разработкой. Возможно, потому что большинство моих коллег и знакомых-программистов, начинали с не самых паршивых веб-студий и, как правило, бо'льшую часть своей карьеры проводили за оценкой и решением различных задач, разной сложности и трудоемкости на разных проектах. Более амбициозные из них уходили уже на более сложные проекты c DDD, блэкджеком и большой ЗП, некоторые уходят в ПМ и т.п., а те, кто не любит много геморроя, уходили на поддержку не самых сложных проектов заказчиков или в самозанятость, но никого из них назвать дужном я не могу, минимум - это уверенный мидл.
Огромное спасибо за данное видео, очень отрезвляет, сразу видишь , где пробелы, на что обратить внимание. Вопросы не сложные, в принципе. Но как говорит мой товарищ мидл PHP-разработчик стаж 3 года, что в настоящий момент паттерны проектирования особенно важно знать даже при собеседовании на джуна)
Довольно лайковый, если честно собес(по теории норм, даже можно было чутка душнее =) ), но мне понравилось что периодически собеседующий пытался добиться ответа на вопрос "что бы что". Я бы оценит наверно по результату собеседуемого как mid-/mid. У нас используется матрица компетенций и в ней заполняется тепловая карта в разрезе грейды / блоки (тут было были бы видны перековы). Мне не хватило блока про гит, докер и линукс. По базам, как понял часть подвырезана, но понимание нормализации и деморализации + ключи/индексы, прям очень важный блок и он к слову не сложно закрывается. По опыту сейчас во многих языках у разрабов огромная просадка в SQL.
тут ещё момент. что на многих проектах знаний sql и не нужно (и самой БД), у меня легаси. задачки спокойно закрываю, но работа с базой это отдельный сервис. и туда оч редко когда нужно лезть и писать новые запросы. про таблички я и вообще молчу, за год + на проекте, я один раз писал простенький запрос выборки.... у нас девпосы за эту часть больше ответственны, вот так вот... надо будет, подтянуть не проблема, но я вот и правда начал просто забывать многие моменты по работе с бд)
В данном случае автор имел ввиду, что массив не передается по ссылке. Интервьювер не сильно знаком с PHP, я бы на месте автора так-же бы сказал, чтобы не грузить техдира подробностями, а то можно до ZVAL дойти ))
У меня складывается впечатление, что комментаторы никогда не работали разработчиками. Каждый решил вставить свои пять копеек из Википедии и навешать ярлыки на автора, который решает практические задачи, не всегда углубляясь в теорию. Было бы лучше, если бы вы, вместо самоутверждения своего эго, занялись чем-то полезным
Нормализация - это не только про избыточность. Нормализация обеспечивает целостность данных и помогает избавиться от аномалий бд. Денормализация нужна в основном для высоконагруженных систем, когда ради скорости и стабильности ты пладишь избыточность некоторых данных.
Избыточность - не всегда плата за что-то другое полезное. Она сама по себе обладает ценностью, которая вытекает из названия. А целостность бывает разная - текущая (актуальная) и историческая. Это когда все ваши справочники поменяли содержимое на 99%, но вы имеете возможность достать исторические данные на любой срез времени. Я что-то не припомню, чтобы кто-то писал об этом в учебниках.
@@vdbxxx повеселил. это версионность. обычно реализуется на уровне движка бд и вроде как мало какие бд так могут. но в современном мире где как заметил один школьник есть sql и no-sql бд это совершенно не важно :)
Собеседование превратилось в сдачу экзамена)) Главное сдать, а там работа вообще другая будет. Дадут проект или сам будешь писать проект со своими паттернами и идеями. Я бы смотрел опыт разработчика и стаж работы, чтобы понять насколько творческий человек и какой технический опыт он имеет для создания приложений
Вот послушал я это всё и вообще не догоняю - накой хер вообще нужны эти собесы? Я бы сразу садил чела за комп и сразу в бой. Напиши мне это-это. С первых уже строк прояснится кто он есть и что он может.
А как же потешить чсв собеседующего? Вы лишаете человека возможности почувствовать себя богом, решателем судеб. )))) В прочем, я так и делал. Давал задачу, шел курить, кофе пить. )
Спасибо за видео с собеседованием. Пожелание автору: ~ поменьше дерганья в редакторе (очень мешает сосредоточиться на главном), лучше сделать, ну скажем, приятную заставку и т.п., а не "написание" всякого бреда, не связанного с темой видео! ~
@@aukenman Я работаю 5+ лет в it и знаю что такое плохие собесы! Если ты не имеешь опыта в собесах это твои проблемы. Мое мнение частное так что тебе никто не заставляет думать как ты думаешь сейчас
@@alishapudi4868 дотошно, плюс за паттерны лишнее, дебаг и тд. Да, если собирать проект или пакет на той же ларке многое уже придумано до нас. ну такое, 40 минут. Интересно почему не спрашивают как решать реальные задачи.
@@artemfastar8743Потому что легче понять, знает ли человек все инструменты которые ему понадобиться для решения реальных задач. Он может банально не знать предметную область.
Чтобы также как я не тупить на вопросах про паттерны проектирования рекомендую - refactoring.guru/ru/design-patterns (работает только из под VPN) Сам выделю вечерок, чтобы освежить знания🤓
10 лет гребу на симфе, начиная с 2.3 версии. Посмотрел на видео как парень пишет код, думаю, ну ебашит так ебашит я за неделю пишу меньше строк, чем автор написал за 50 минут в этом видео. Послушал собес - понимаю что автор не понимает что он пишет... Миддлом бы не взял, только джуном и первый год писать исключительно тесты.
13:37 -- Есть нюанс, массивы в php передаются по ссылке под капотом всегда, но: если ты указал, что передаешь массив не как ссылку, то при работе с ним (внесение/удаление данных) -- движок скопирует твой массив, а ссылку оставит нетронутой. если ты указал, что передаешь как ссылку -- ничего не изменится. Таким хаком в php экономят память.
есть бандл, который считывает аннотации и генерит доку. причем там не тонны аннотаций, а если через модельки делать, очень даже все легко и симпатично делается.
Все используют замыкания в php каждый день (нет). Нафиг он тебя вообще собеседовал, если нужно пройти еще старшего разраба?? пустая трата времени твоя и их собственно. Можно смело слать их лесом, скорее всего у них душная бюрократия
@@PanicWassano , оно ему зачем, если он его не пользует? Вы прям смотрю на любой вопрос можете ответить? ))) В языке много всякого, но многое люди просто не используют, потому, что можно не использовать и обходится без каких либо проблем.
Проще было бы сказать для удобства разработки. Однако, если посмотреть на логику известных приложений, то болт там клали на это все. ) Пока все спрашивают на собесах про mvc, известные проекты гребут миллиарды и плевать на это хотели. Такое чувство, что пытаются сломать систему, а система не ломается. )
Абстракция - это принцип ООП? Это же тупо общий принцип программирования. Даже не принцип, а скорее аспект, с которым приходится работать. Нельзя делать много непонятных слоёв абстракции, но мало слоёв могут привести к проблемам с гибкостью и расширяемостью.
@@dmitriykonopinskiy3793 , современная расширяемость тоже оставляет желать лучшего, когда хостер присылает письмо, у вас более 12000 файлов и по этому бэкапа не будет. ) Или когда вы ставите библиотеку для решения тривиальной задачи на пару килобайт, а она условно подтягивает за собой зависимости на 50-100 мегабайт. ) О да, современная оптимизация, мать ее... ))) Когда то windows и офис занимали 50 мб, сегодня 70 гб. ) Я вот не уверен, что все идет в нужное русло.
Хоспадя, хороший программист пишет хороший код и точка. Если он двух слов связать не может, это ещё ничего не говорит о его способностях. Также и болтологи могут и двух строчек не связать нормально.
С такой логикой ты сломаешься на простом вопросе: что такое «хороший код»? Т.е. вообще как ты определяешь что твой код хороший? А вообще есть универсальный открытый вопрос, который можно задавать от джуна до сеньера: Как работает интернет? Для прогрева самое то, плюс сразу видно границы компетенции.
@@sergeygnatyuk5217 С чего это мне сыпаться на вопросе про хороший код? Это как если бы гончар не мог отличить хорошей глины. Только это вопрос не определений, а опыта: часто достаточно одного взгляда. А ты со своими вопросами сможешь набрать свежих выпускников вуза, не более.
@@sergeygnatyuk5217 , хороший программист, это всегда интроверт. Интроверт не может связать двух слов. Так было, есть и будет всегда. Балабол всегда проскочит. А вот, что он тебе напишет... ) Вспоминаем павлика дурова. Язык подвешен хорошо, и его брата, который в тени его славы. Все занют, что павлик создал vk, но мало кто знает, что это детище его молчаливого брата.
@@soversus5374 я интроверт, и могу связать и более 3 слов) интроверт - это вообще не об этом. Встречал в свое сфере людей, с которыми очень сложно разговаривать, ну это больше застенчивость, забитость, отсутствие софт скиллов. Это надо исправлять в себе, а не принимать как данность. Ну и старший Дуров, просто не публичный человек, поэтому так думаешь.
MVC это концепция для построения интерфейса пользователя. Она для бека не очень то и подходит) Про чистую архитектуру и деление на слои никто ничего не слышал похоже))
Я PHP больше 7+ лет уже работаю , и столько проекто уже сделал уже и не помню, большинство вопросов я бы не ответил ) тупо не знаю "красивых" названий .... душнилы, дайте задачу пусть делает и смотрим пример как пишит все.
Если начинаете плыть, как тут на вопросе про паттерны, то лучше скажите что не знаете, вместо того чтобы что-то пытаться придумывать. Обычно для собеседующего это уже плохой сигнал и значительный минус по кандидату. Синглтон нарушает С СОЛИД потому что он помимо своего функционала еще и следит чтобы был один экземпляр, но строго соблюдать солид не получится и можно на это забить. Все паттерны и всё что есть в ООП придумано для решения одной проблемы - поддерживаемость кодовой базы.
Нет, паттерны не про поддерживаемость, а про достижение целей оптимальным путём. Из чего может (но не обязана) улучшаться поддерживаемость при условии понимания этих паттернов поддержкой после ухода автора кода.
@@vdbxxxа в чем оптимальность? Это субъективно. Некоторые вещи можно сделать вообще без паттернов чисто процедурно и всё будет работать ок, а клиенту (заказчику) ПО вообще фиолетово что там под капотом.
@@you-are-not-allowed мамкины программисты любят пихать паттерны куда не надо, занимаются прежде временной оптимизацией кода, который не будет меняться))
Хрень все эта с паттернами. Одни придумали ерунду, другие подхватили... Годная вещь для галеры, но не для настоящей работы. Помню как когда то читал про них, учил их... годы шли, а никому это оказалось не надо. ) Возможно где то и использовал без понимания, но это вряд ли. Вот так что бы принципиально использовал, то точно нет.
Странный техдиректор... Вспомнил базовое определение инкапсуляции но принял такое тупейшее объяснение про полиморфизм... По сути про полиморфизм совершенно всё неправильно а то что автор рассказал называется оверрайдинг. 3:20 звучит супер на рассказ о том что используется простейшие наследование... оххх По шаблонам проектирования полный завал. По mvc полный завал. После слов "бизнес логика абстрактная"... Я себе реально ладошкой по лбу ударил и сказал да что ж ты несёшь... Бизнес логика - это самое что ни на есть конкретное в проекте... Какая она абстрактная? По рест API Я бы это назвал провалом... Я так понимаю что интервьюер сам плавает в этом вопросе и поэтому его ответ без какого-либо ответа по принципу ну там что-то это как бы где-то вроде как типа того - полностью устроил.... "Рест апи - это архитектурный стиль" да ладно ? С каких пор... Почему я options ни разу в жизни не использовал но чётко знаю что он делает и для чего используется? Ну как можно сказать я могу перепутать пост пут и патч один используется для одного другой для другого ты же каждый день это используешь как это можно перепутать. Как можно сказать что метод патч "используется для частичного изменения модели в базе" то есть "модель в базе" Это как? И с чего вдруг он для этого используется? Сразу видно что человек вообще не понимает что такое модель что такое эти методы какая взаимосвязь между всем этим... И интервьюер говорит "хорошо всё правильно"... Что правильно? модель в базе меняется ? ресурс в базе меняется? Не знать на собеседовании что такое нормализация? когда Интервьюер рассказал что такое нормализация - Я в осадок выпал... В какой модели хранить посты какие нормализации... Здесь мне точно стало понятно что человек не понимает что такое модель. "При минимизации избыточности мы создаём новые таблички, новые модели" вот это поворот... У тебя вопросы по мускл какие модели зачем ты модели туда пихаешь, какое они имеют отношение к mysql. О'КЕЙ по гиту на поставленные вопросы ответил. Вопросы по девопсу мне на самом деле непонятно зачем их задавать ну видимо просто для общего понимания увлекается человек этим или не увлекается потому что devops - это уже отдельная профессия. по дизайну же вопросы бэкэндеру не задают, непонятно зачем задают по девопсу. А вот у меня впечатление сложилось негативное... Скажу честно на middle позицию не тянешь с такими ответами... К такому собеседованию в принципе готовится не к чему здесь максимально базовые вопросы которые должны отлетать... Если уж совсем быть честным то я бы даже джуниором не назвал, ну потому что junior должен чётко понимать базовые принципы ооп, чётко понимать базы, чётко знать что такое mvc. у автора же вообще ни одного вопроса конкретно чётко не было отвечено он всё время плавал и пытался выкручиваться...
На фоне парня с UlibiTV знания конечно слабоватые, классно но нету wow эффетка ) Прохождение собесов все же это навык, как бы это странно не звучало =/
про гит не знаю, я им пару раз пользовался для курсов, чтобы на гитхаб выкладыать код из иде нихера не понял ци\цд смотрел ролик, тоже мало что понял про докер знаю, но не пользовался за ненадобностью работал с линупс контейнерами в proxmox для запуска отдельных приложений типа впн серверов, чтобы не юзать целую ось ради мелкой проги короче я могу идти в мидлы без опыта работы в пхп 🤣😎
докер ныне это такой же мастхев как и гит. без него тебя мидлом разве что на галеру возьмут сайтики клепать на вордпрессе или любой другой обосраной цмс за зп 60-80к
Про вопросы REST API, я бы ответил, что это протокол обмена данными между потребителем и поставщиком(сервером) основанным на HTTP. Метод OPTIONS часто его назначение это CORS (между доменные запросы), на него обращается браузер когда видит, что есть обращение к ресурсам другого домена. Если по честному, то разницы между методами GET, POST, PUT, PATCH,DELETE нет с точки зрения протокола REST, всем этим методам, мы сами даем содержания из здравого смысла и значения слов(дай, отправь, помести, измени, удали). Вообще никто не запрещает сделать даже свои методы со своими называниями, но тут есть ограничения самого HTTP. Если уж совсем глубже копать, то HTTP это просто текстовой протокол обмена данными основанный на сетевого протоколе TCP. Так, что REST API можно построить и без HTTP, но тут, как говорить зачем изобретать велосипед.
11:11 - а че тебе c# понравился или не понравился наоборот. -c# понравился да, неплохой язык, он мощный похож на javascript и соответственно и на php, значит связь typescript с php перемешены, нормальный. Но я к сожалению просто у меня не было времени нормально заняться там, я тратил время на английский, на php, на c# я не учил его нормально так. но успел поработать знаешь там, открыть пару файликов разобраться в коде, это не сложно... Гениально) сделайте кто нибудь мем.
Технического мало в собеседовании. Не знаю зачем єтот єтап. вовсе. Мидл уже должен понимать.1 очереди, 2 уверенее говорить о индексах (интервьюрер почему то. не поднял вопрос размера индекса и. зависимости. целесообразности его назначения) 3. блокировки а) задач б) бд. При написании того же апи программист должен. учесть. конкурентность. По запросам, можно спросить о идемпотентности
1 очереди не везде нужны. 2. Тут надо давать практическую задачу на какое поле повесить индекс, смысл спрашивать теорию. 3. Перед блокировками лучше спросить про транзакции и уровни изоляции. 4. Concurrency учесть или все таки race condition?
Ну тот кто вопросы задавал, собеседование у меня бы не прошел. По этому я хз. Хотя я сеньор-помидор. Может уже забыл просто че там на мидл уровне. Я в целом не гонялся никогда за бейджами.
на мидла не тянет, но джуном я бы его взял - опыт есть, но осознание еще не пришло. Вопрос про передачу параметров в функцию несколько сложнее и что бы правильно ответить на него надо знать про работу с zval.
Скоро ии вас не возьмет даже джуном. ) Опыт важен, а не теория и определения. Пошел бы он к вам джуном? Делать работу мудла за зп джуна? ))) А оно ему зачем? Вам не нужен, другие возьмут. Свет не сошелся на вашей конторе. Вон битрикс говнокодит, а ваша организация имеет такой же вес? ) Выходит со всеми вашими запросами не тянете вы даже на такое.
@@fenderbender2096 важен не только ответ но и то как отвечают, или даже рассуждают о тех вещах о которых не знают, сразу видно, кто готовился, а кто понимает. И если вы сможете "насобачиться" на вопросах на сеньера до такой степени что будите не только знать как ответить но и понимать о чем говорите, то поздравляю, вы и так уже сеньер.
@@user-fe6pi9vb6h таких, которые внимательно следят за рассуждениями, немного. Обычно есть конкретный ожидаемый ответ. И это не говоря про всякие литкоды.
в виндовсе есть такой сервис поиска данных и файлов когда компутер свободен, то этот сервис индексирует файлы точно так же поисковый робой индексирует сцайт все это нужно для быстрого поиска в базе, чтобы не искать в реальном времени что-то вроде оглавнения в книгах с указанием на страницы
@@alekseyalekseev1700 собеседуемый не упомянул что объекты передаются по ссылке) это важней чем оптимизация пыхи в вопросе передачи переменных пысы: хоть предполагаю что он это знает
Все эти кодерские собесы уже архаизм с приходом ИИ, на новый план встанут собесы архитекторского уровня так как кодеры в новой парадигме не нужны будут от слова совсем.
рестапи это человекопонятные урлы для вызова удаленных методов и обмена данными в джейсоне придуман, чтобы не изобретать свои велосипеды в виде протоколов, поэтому идет поверх хттп и даже хттпс без дополнительных костылей если взять контроллеры, то там используется модбас, правда он не обрабатывает строки и десятичные дроби, но для этого костыли есть когда надо контроллер связать с компутером, то приходится придумывать протокол, т.к. ресурсов у контроллеров мало и они очень не любят работать со строками поэтому придумали protobuf, хотя если взять еср8266 или есп32 - там достаточно ресурсов для работы вебсервера и у кого мозгов побольше, тот юзает джейсона, а всю вебморду хранит в пзу и загружает 1 раз в браузер и уже потом гоняет джейсона или вебсокеты а весь бекенд как раз на ресапи сделан у кого мозгов маловато, тот херачит хтмл в озу на лету, потом удивляется, что его уродливая страница так медленно грузится или контроллер виснет
замыкания это те же функции обратного вызова, только без имени используются как прямой аргумент другой функции, если замыкание вызвается только 1 раз в коде т.к. яваскрипт это язык асинхронных вызовов, то там 95% кода это замыкания чтобы понять, что такое асинхронность - надо столкнуться с этим при программировании контроллеров на примере мигания двумя и более светодиодами с разной частотой и периодом я знал, что такое асинхронность в контроллерах и софтовые таймеры, но не знал этого названия и когда я читал про асинхронность явасрипта и замыкания. то я не понимал ничего одни и те же вещи называются по разному еще я смотрел устройство фреймворка реакт пхп, там как раз внутри него софтовые таймеры в контроллере же есть аппаратный таймер, который настроен так, что каждую миллисекунду вызывается прерывание по переполнению и в 32 битную переменную записывается +1, а в любом месте кода можно вызвать функцию, которая вернет время в миллисекундах с начала запуска контроллера на базе этого аппаратного таймера можно построить свои софтовые таймеры и эти таймеры могут уже вызывать функции при срабатывании таймера дальше на базе этого строиться операционная система реального времени, там работают уже не с таймерами, а с задачами, на выполнение которых задают уже время это еще упрощает код и читаемость его, правда накладывает свой оверхед по пзу и озу
Я хз, возможно ли вообще работать разработчиком, если это не нравится. Обычно 90% таких людей уходят в течении месяца-двух, поняв, что "это не моё", остальные 10% чуть позже. 😑
Немного таймкодов )
0:00 - Введение, про компанию, вилку ЗП
2:01 - три принципа ООП
2:12 - Инкапсуляция
2:37 - Наследование
2:49 - Полиморфизм
3:33 - Инкапсуляция от техдира
4:38 - В своей работе используешь наследование и полиморфизм?
6:21 - про четвертый принцип ООП(Абстракция)
7:12 - Какой любимый язык программирования?
7:58 - Почему пхп любимый?
8:39 - Что такое в целом типизация? Какая бывает?
9:40 - Какая типизация лучше?
11:10 - Понравился C# ?
12:03 - Списочные типы в пхп есть?
13:27 - По умолчанию в пхп как передаются аргументы?
13:56 - Что такое стрелочные и анонимные функции?
15:04 - Расскажи про замыкания
16:28 - Определение замыкания от техдира
17:00 - Про паттерны проектирование, какие знаешь и т д ?
18:13 - Зачем нужна абстрактная фабрика ?
19:54 - Паттерн Singleton
20:31 - Часто Singleton называют анти-паттерном?
21:00 - Про MVC,MVP,MVVM - сталкивался?
23:30 - Зачем отделять бизнес-логику от представления?
25:59 - Приходилось работать с SOAP API?
26:10 - Расскажи что такое REST API?
28:45 - Какие бывают REQUEST методы?
29:43 - Чем PUT отличается от PATCH?
31:11 - Swagger использовал?
31:45 - C какими БД приходилось работать?
32:27 - С транзакциями дело имел?
33:23 - Что такое ключи в БД?
33:48 - Чем первичный ключ от вторичного отличается?
34:07 - Что такое индекс?
36:58 - Про нормалиазцию БД
38:26 - В каких случаях нормализация не нужна?
40:52 - Про Git. Какой командой можно отменить коммит?
41:07 - Откатить изменений в файле можно?
41:33 - Чем отличается merge от rebase?
42:57 - Тегами пользуетесь?
44:08 - Про Докер, используешь?
44:20 - С Kubernetes работал?
44:50 - с CI/CD опыт имеется?
46:19 - Про документирование проектов
47:16 - Про тестирование
47:29 - В качестве дебагга чем пользуешься?
48:22 - Конец
Какой замечательный ТехДир, как он классно спрашивает, невероятно прекрасно что он после этого говорит, что именно он хотел услышать.
Обычно такое происходит только на открытых фейковых собеседованиях :)
Автор ролика еще и вставки делает соасем непаливно
Собрались как то два практика на собесе. Один гуглит вопросы другой пытается вспомнить определения. 😂😂
В точку. 😄 Еще забыл спросить как посчитать факториал и вероятность коллизий хеш функций, ну и про DDD тоже можно пофилософствовать изрядно! 🤣
Ответы автора максимально слабые я бы ему мидл позицию не предложил.
И даже на Джуна бы я его не взял потому что я вижу что человек пишет код пишет кодом много но он совершенно не понимает что он делает зачем он делает как он делает и основное - ему это совершенно неинтересно. Его где-то научили ему где-то сказали и он это просто тупо копирует и делает без понимания того что,как и почему он делает именно так.
К такому собеседованию даже готовиться не надо здесь все базовые вопросы которые должны отлетать наизусть.
Невозможно не знать о нормализации и де нормализации базы.
Невозможно не знать об mvc, невозможно не знать о четырёх основных принципах ооп.
Невозможно не знать о рест-е которым ты каждый день пользуешься...
У человека нет понимания что такое бизнес логика для него это что-то "абстрактное"
У человека нет понимания модели - пихает это понятие куда ни попадя.
Вообще ничего не знает о паттернах даже синглтон толком не объяснил.
У меня максимально негативное ощущение от собеседования.
Очень слабое собеседование да и собеседователь тоже очень слабый если он говорит да-да всё нормально на откровенную хрень.
По сути за всё собеседование автор не рассказал с уверенностью ни о чём. По всем заданным вопросам он или вообще ничего не знал или пытался как-то выкручиваться или знал поверхностно и очень плавал а-ля Я где-то что-то слышал но что я слышал где я слышал и нахрена оно надо я без понятия.
@@onlybestmusic4185 слишком уж строго вы....
@@onlybestmusic4185человек умеет решать задачи и чётко объяснять что он делал и зачем. Пишет свои кастомные инструменты. Это уровень миддл разработки.
А для теории и другой инфы, которой всё больше и больше, есть гугл, книги и документация. Ну и душные всезнайки, которые распекают других из-за незнания какого-то всеми забытого термина.
@onlybestmusic4185 Ты просто душный чел, все что ты написал это супер высер, в чем разница от твоего коммента ?
А какие паттерны проектирования вам задавали на собеседовании? я сам недавно выбирал курсы по IT, рассматривал разные компании, но в итоге остановился на Skypro. Лично мне понравилось, что обучение было структурированным и понятным, и уже через несколько месяцев я смог начать работать))
Прослушал с удовольствием(php программист с 2004 года). Прокомментирую.
Вот прям непонятно: то ли плакать, то ли смеяться надо было, когда собеседующий сказал про второй этап собеседования. С ведущим разработчиком, понимаете ли, нужно будет повторить. Это что, вообще, такое? Техническое собеседование должно быть одно, а если их больше, то это либо на фиг идите, либо зарплату предлагайте космическую, что в данном случае действительности совсем не отвечает.
По технической части на что обратил внимание:
1) Индексы это не просто "сущность" которая позволяет "ускорить фетчинг данных". Индекс это то, что и звучит -- индексация. Т.е. сохранение данных для их последующего использования. По факту, это отдельные файлы, служащие для этой цели. Т.е. сохранение этих файлов для последующего использования это и есть индекс.
2) Индекс для внешнего ключа. Дело не в том что там обязательно или нет, будет там первичный ключ в связи или нет. Смысл кроется в понимании что такое "индексация". Если ты связываешь таблицу внешним ключом с другой таблицей, то скорость поиска будет зависеть ровно от того, от чего и раньше, т.е. есть индекс таргетной таблицы или нет(при простом запросе). Упрощу -- для внешнего ключа нет разницы есть там primary или нет. Есть разница лишь в скорости поиска(наличии этого primary).
3) Нормализация. Собеседующий наговорил каши из своей головы. Нормализация это принцип "не тупи" при струкрурировании базы. Если ты не джун, то ты поймешь, а если джун то после тебя будут нормализировать :) Принципы нормализации гуглятся, но всё это любой мид понимает просто по опыту. Проще говоря, цель нормализации это устранение избыточности данных в базе и их ресурсов при их обработке. А денормализация это отход от этих, очевидных, принципов, в ситуациях того требующих.
Спасибо за контент, продолжай в том же духе!
Не тупи это наоборот денормализация
Не знал что Андрей Бебурешвили проводит технические собеседования.
Мне хочется дойти по знаниям до твоего уровня, огромнейший спасибо много чего написал для изучения: Замыкание в php, Всё что было обсуждено о API, Индексация полей в БД и влияние вообще на скорости индексированного поля, Транзакции и т.д
Я думал будет вопрос про степени изолированности транзакций, но нет
Я php + фронтенд разработчик с 10-летним стажем. Но я не смогу ответить на вопрос, что такое полиморфизм, потому что я все эти определения забыл еще лет 6 назад, я не учу определения - я выполняю задачи! Сталкивался ли я с задачей бизнеса, которую я не смог решить в своей сфере и на платформе, на которой я специализируюсь за всё время работы - нет. 😑
меня кстати вообще поражают подобные собесы. и встаёт вопрос, вы ищите кто теорию вызубрил? или умеет решать бизнес задачи... в общем такое =\
аналогично, как выше про бд, я вообще sql начал забывать, нет нужды, а задачи закрываю стабильно и без проблем все что дают
тоже раньше задавался подобными вопросами, потом увидел как работают в компаниях где задают такие вопросы и понял, что они там находят клиентов лохов которые платят по сотням тысяч в месяц за проекты, которые им делают 2-3 года, в то время как команда поменьше сможет сделать тот же проект за полгода с тем же результатом...
Все зависит от уровня решаемых тобой задач. Вот смотри рандомный абстрактный пример. Ты работаешь инженером в компании, которая разрабатывает двигатели внутреннего сгорания, у вас есть несколько конкурентов, которые выкатывают на рынок более совершенные двигатели, скажем с более низкими расходом топлива. Двигатель сложная штука, с нуля разработать его вряд ли под силу, ты так или иначе пользуешься трудами людей, в том числе теоретическими, которые были вложены в его разработку ранее. Как не имея этих знаний ты сможешь улучшить продукт? Как ты сможешь общаться с коллегами на одном языке? Другое дело ты рабочий на конвейере, которому нужно по инструкции прикрутить этот двигатель к раме, тут тебе знание работы двигателя не к чему. И такой уровень компетенции не требуется для работы. Переводя в айти сферу: ты можешь 10 лет успешно работать джуном в своем уютном мирке, но вот прыгнуть за него уже нет.
Двигаясь по накатанному пути можно прийти лишь к тому же, к чему пришли те, кто этот путь прокладывал@@sergeygnatyuk5217
@@sergeygnatyuk5217 Вполне возможно, но лично я таких людей не знаю, кто после 2-3х лет работы не был способен самостоятельно справиться с разработкой проекта или руководством его разработкой. Возможно, потому что большинство моих коллег и знакомых-программистов, начинали с не самых паршивых веб-студий и, как правило, бо'льшую часть своей карьеры проводили за оценкой и решением различных задач, разной сложности и трудоемкости на разных проектах.
Более амбициозные из них уходили уже на более сложные проекты c DDD, блэкджеком и большой ЗП, некоторые уходят в ПМ и т.п., а те, кто не любит много геморроя, уходили на поддержку не самых сложных проектов заказчиков или в самозанятость, но никого из них назвать дужном я не могу, минимум - это уверенный мидл.
Спасибо, братишка, что выкладываешь такую ценную информацию.Помогает взбодриться и не ссать перед собесами
Огромное спасибо за данное видео, очень отрезвляет, сразу видишь , где пробелы, на что обратить внимание. Вопросы не сложные, в принципе. Но как говорит мой товарищ мидл PHP-разработчик стаж 3 года, что в настоящий момент паттерны проектирования особенно важно знать даже при собеседовании на джуна)
Имхо, показуха для галочки, как и знание всех алгоритмов с их асимптотикой...
Довольно лайковый, если честно собес(по теории норм, даже можно было чутка душнее =) ), но мне понравилось что периодически собеседующий пытался добиться ответа на вопрос "что бы что". Я бы оценит наверно по результату собеседуемого как mid-/mid. У нас используется матрица компетенций и в ней заполняется тепловая карта в разрезе грейды / блоки (тут было были бы видны перековы). Мне не хватило блока про гит, докер и линукс. По базам, как понял часть подвырезана, но понимание нормализации и деморализации + ключи/индексы, прям очень важный блок и он к слову не сложно закрывается. По опыту сейчас во многих языках у разрабов огромная просадка в SQL.
тут ещё момент. что на многих проектах знаний sql и не нужно (и самой БД), у меня легаси. задачки спокойно закрываю, но работа с базой это отдельный сервис. и туда оч редко когда нужно лезть и писать новые запросы. про таблички я и вообще молчу, за год + на проекте, я один раз писал простенький запрос выборки....
у нас девпосы за эту часть больше ответственны, вот так вот...
надо будет, подтянуть не проблема, но я вот и правда начал просто забывать многие моменты по работе с бд)
В PHP массивы, строки не копируются они используют технологию copy-on-write т.е. копируются только когда происходит изменение массива.
В данном случае автор имел ввиду, что массив не передается по ссылке. Интервьювер не сильно знаком с PHP, я бы на месте автора так-же бы сказал, чтобы не грузить техдира подробностями, а то можно до ZVAL дойти ))
У меня складывается впечатление, что комментаторы никогда не работали разработчиками. Каждый решил вставить свои пять копеек из Википедии и навешать ярлыки на автора, который решает практические задачи, не всегда углубляясь в теорию. Было бы лучше, если бы вы, вместо самоутверждения своего эго, занялись чем-то полезным
тут половина вопросов странных и бесполезных. Про уровни изоляции транзакции не спросили, не понимаю чем спрашивать столько теории. Особенно про ООП
@@PanicWassano , на собеседованиях почти всегда странные и бесполезные вопросы. Потешить чсв собеседующего. )
Нормализация - это не только про избыточность. Нормализация обеспечивает целостность данных и помогает избавиться от аномалий бд. Денормализация нужна в основном для высоконагруженных систем, когда ради скорости и стабильности ты пладишь избыточность некоторых данных.
ты хоть сам понял что написал
@@user-lk2lt4ym2s понял, в отличии от тебя
@@user-lk2lt4ym2sта вроде все правильно написал, что не так?
Избыточность - не всегда плата за что-то другое полезное. Она сама по себе обладает ценностью, которая вытекает из названия. А целостность бывает разная - текущая (актуальная) и историческая. Это когда все ваши справочники поменяли содержимое на 99%, но вы имеете возможность достать исторические данные на любой срез времени. Я что-то не припомню, чтобы кто-то писал об этом в учебниках.
@@vdbxxx повеселил. это версионность. обычно реализуется на уровне движка бд и вроде как мало какие бд так могут. но в современном мире где как заметил один школьник есть sql и no-sql бд это совершенно не важно :)
Спасибо огромное за видео. Ждём больше собеседований!
Собеседование превратилось в сдачу экзамена)) Главное сдать, а там работа вообще другая будет. Дадут проект или сам будешь писать проект со своими паттернами и идеями. Я бы смотрел опыт разработчика и стаж работы, чтобы понять насколько творческий человек и какой технический опыт он имеет для создания приложений
Спасибо, познавательно. Очень заходят твои видео с собесами! 🔥
Вот послушал я это всё и вообще не догоняю - накой хер вообще нужны эти собесы? Я бы сразу садил чела за комп и сразу в бой. Напиши мне это-это. С первых уже строк прояснится кто он есть и что он может.
А как же потешить чсв собеседующего? Вы лишаете человека возможности почувствовать себя богом, решателем судеб. ))))
В прочем, я так и делал. Давал задачу, шел курить, кофе пить. )
Проходил на php собес , сказал 3 принципа ооп , но сказали что нужно было назвать 4
ну абстракция ещё
а их 5, прикол, да?))
гнать таких собеседующих
Их 6
@@user-yd5sn2fj2t их 7
Спасибо за видео. Хотелось бы узнать: было ли в итоге 2-е собеседование, был ли получен оффер, если да, то сколько предложили?
у меня на джуна были сложнее вопросы, вам повезло, вопросы элементарные
ну да...я зае*ался проверять свою телегу во время просмотра)))
спасибо за шаринг стресса)
json декод, енкод работает стабильно, чтобы не было описанного случая как в видео, есть нужный флаг, и тогда будет пустой объект прилетать
Спасибо за видео с собеседованием. Пожелание автору: ~ поменьше дерганья в редакторе (очень мешает сосредоточиться на главном), лучше сделать, ну скажем, приятную заставку и т.п., а не "написание" всякого бреда, не связанного с темой видео! ~
Подушню) "пустой ответ со статусом 200" - это код состояния 204) Про MVC - это была подводка к SRP(SOLID) failed.
крепкий разработчик 150-250к. Я бы спросил еще про очереди и кейсы с ними :) Тут как с конторой повезет
если этот чел на 150-200к то вот почему то я милиардер походу
Этот чел на 2 вопроса из 10 отвечает
@@basarada Он нормально отвечал)
@@user-gd5mt2cr7p он отвечал на отъебись, другие собесы на др. каналах глянь
@@aukenman Я работаю 5+ лет в it и знаю что такое плохие собесы! Если ты не имеешь опыта в собесах это твои проблемы. Мое мнение частное так что тебе никто не заставляет думать как ты думаешь сейчас
Спасибо? Видео очень познавательное❤
По умолчанию в PHP передача аргументов происходит по значению. Но это чисто условно. На самом же деле используется copy-on-write.
Маладэц. Но с какой то версии скалярные типы копируются сразу.
150к 1.5к баксов, вопросы на уровень сеньора в 40 минут, что делает конкуренция с рынком
вы шутите? это базовые вопросы без углубления
@@alishapudi4868 дотошно, плюс за паттерны лишнее, дебаг и тд. Да, если собирать проект или пакет на той же ларке многое уже придумано до нас. ну такое, 40 минут. Интересно почему не спрашивают как решать реальные задачи.
@@artemfastar8743Потому что легче понять, знает ли человек все инструменты которые ему понадобиться для решения реальных задач. Он может банально не знать предметную область.
Спасибо ребят за время, но это вопросы не для синьйор позиции
Чтобы также как я не тупить на вопросах про паттерны проектирования рекомендую - refactoring.guru/ru/design-patterns (работает только из под VPN)
Сам выделю вечерок, чтобы освежить знания🤓
PUT не может использоваться для создания, так как операция создания - не идемпотентна, а PUT по определению считается идемпотентным.
Уведомления от телеграмма проста ТОП! 😁
Без негатива, не понимаю как Вы можете писать такой неплохой код и не отвечать на такие простые вопросы
Это просто,эффект экзамена,вроде все выучил,но на экзамене тут же все куда улетает,забывается и т.д.Так что не чего удивительного =)
наверно больше практик чем теоретик
@@Tornado-ln7fq не спорю, но вопрос про mvc тоже максимально вроде примитивный, учитывая что он на laravel пишет
Отсутствие собесов сказывается, я почти на всех вопросах тупил)
@@areaweb Я сколько собесов не смотрел все тупят.Мне кажется,если человек на собесе не тупит,это бот)
Про merge и rebase - простой ответ - История
Красава👍 спасибо
Про логику и представление - у тебя может несколько представлений же: веб, телефон, задача в крон
10 лет гребу на симфе, начиная с 2.3 версии. Посмотрел на видео как парень пишет код, думаю, ну ебашит так ебашит я за неделю пишу меньше строк, чем автор написал за 50 минут в этом видео. Послушал собес - понимаю что автор не понимает что он пишет... Миддлом бы не взял, только джуном и первый год писать исключительно тесты.
13:37 -- Есть нюанс, массивы в php передаются по ссылке под капотом всегда, но:
если ты указал, что передаешь массив не как ссылку, то при работе с ним (внесение/удаление данных) -- движок скопирует твой массив, а ссылку оставит нетронутой.
если ты указал, что передаешь как ссылку -- ничего не изменится.
Таким хаком в php экономят память.
Вот всё знаю, что говорит собеседуемый. Но меня на следующий этап не приглашают.
а есть смысл DataGrip отдельно использовать? Чёт я думал что та штука, которая встроена в шторм повторяет функционал грипа?
Как автоматически сгенерировать Swagger для существующий API в Ларавел проекте?? Не охота руками написать документация в Swagger
есть бандл, который считывает аннотации и генерит доку. причем там не тонны аннотаций, а если через модельки делать, очень даже все легко и симпатично делается.
на мида сейчас собесы начинаются с zval и рефлексии...
зачетный собес, как двух друзей разговор
Все используют замыкания в php каждый день (нет). Нафиг он тебя вообще собеседовал, если нужно пройти еще старшего разраба?? пустая трата времени твоя и их собственно. Можно смело слать их лесом, скорее всего у них душная бюрократия
да автора тоже можно слать, ему дали вопрос про замыкания, а он его не изучил))
@@PanicWassano , оно ему зачем, если он его не пользует?
Вы прям смотрю на любой вопрос можете ответить? )))
В языке много всякого, но многое люди просто не используют, потому, что можно не использовать и обходится без каких либо проблем.
мвц применяют для разделения логики от представления и контроллеров для облегчения тестирования логики
а не только для отделения от вида
Проще было бы сказать для удобства разработки.
Однако, если посмотреть на логику известных приложений, то болт там клали на это все. )
Пока все спрашивают на собесах про mvc, известные проекты гребут миллиарды и плевать на это хотели.
Такое чувство, что пытаются сломать систему, а система не ломается. )
Абстракция - это принцип ООП? Это же тупо общий принцип программирования. Даже не принцип, а скорее аспект, с которым приходится работать. Нельзя делать много непонятных слоёв абстракции, но мало слоёв могут привести к проблемам с гибкостью и расширяемостью.
скажи это программистам из 60х
@@dmitriykonopinskiy3793 , современная расширяемость тоже оставляет желать лучшего, когда хостер присылает письмо, у вас более 12000 файлов и по этому бэкапа не будет. )
Или когда вы ставите библиотеку для решения тривиальной задачи на пару килобайт, а она условно подтягивает за собой зависимости на 50-100 мегабайт. )
О да, современная оптимизация, мать ее... )))
Когда то windows и офис занимали 50 мб, сегодня 70 гб. )
Я вот не уверен, что все идет в нужное русло.
Просто сразу сходу первым ответом человек путает инкапсуляцию с сокрытием. 😂
Это меньшее из всей кринжовости собеса
анонимные функции в 7.4? Серьезно? Вот оно новое поколение))
есть тут такие кто недавно начал работать разработчиком?
45:42 упоминается никий "энвоер аййо" - погугли и не нашёл. Подскажите как это правильно пишется и где найти?
Хоспадя, хороший программист пишет хороший код и точка. Если он двух слов связать не может, это ещё ничего не говорит о его способностях. Также и болтологи могут и двух строчек не связать нормально.
С такой логикой ты сломаешься на простом вопросе: что такое «хороший код»? Т.е. вообще как ты определяешь что твой код хороший?
А вообще есть универсальный открытый вопрос, который можно задавать от джуна до сеньера: Как работает интернет? Для прогрева самое то, плюс сразу видно границы компетенции.
@@sergeygnatyuk5217 С чего это мне сыпаться на вопросе про хороший код? Это как если бы гончар не мог отличить хорошей глины. Только это вопрос не определений, а опыта: часто достаточно одного взгляда. А ты со своими вопросами сможешь набрать свежих выпускников вуза, не более.
@@sergeygnatyuk5217 , хороший программист, это всегда интроверт. Интроверт не может связать двух слов. Так было, есть и будет всегда. Балабол всегда проскочит. А вот, что он тебе напишет... )
Вспоминаем павлика дурова. Язык подвешен хорошо, и его брата, который в тени его славы. Все занют, что павлик создал vk, но мало кто знает, что это детище его молчаливого брата.
@@soversus5374 я интроверт, и могу связать и более 3 слов) интроверт - это вообще не об этом. Встречал в свое сфере людей, с которыми очень сложно разговаривать, ну это больше застенчивость, забитость, отсутствие софт скиллов. Это надо исправлять в себе, а не принимать как данность. Ну и старший Дуров, просто не публичный человек, поэтому так думаешь.
@@sergeygnatyuk5217 , не обманывайте себя.
а как вы "подглядывали" или без камеры был собес?
MVC это концепция для построения интерфейса пользователя. Она для бека не очень то и подходит) Про чистую архитектуру и деление на слои никто ничего не слышал похоже))
Как раз для него она и придумана. Что бы понять почему, найдите старую версию phpshop для php 3, 4, посмотрите код и ужаснитесь. )
Я буду делать свои проекты
Собес классный, за исключением того, что тех дир отвлекался частенько.
Интервьюир перепутал нормализацию с денормализацией.
Ля, вот скажите мне, вот чем сейчас собес джуна от миддла отличается. Вот почти все это сейчас требуют от джунов.
А есть такие, кто сейчас использует Wordpress в качестве каркаса?
Да полно. Этот движек в топе. )
Но мне не нравится.
@@andya4418 , статистику посмотрите и не пишите так много бессмысленных буков.
На мелких проектах завязанных на контент - почему бы нет. Можно прикрутить PSR-4, свою API и писать довольно чистый код, отдавая всё на SPA
Я PHP больше 7+ лет уже работаю , и столько проекто уже сделал уже и не помню, большинство вопросов я бы не ответил ) тупо не знаю "красивых" названий .... душнилы, дайте задачу пусть делает и смотрим пример как пишит все.
что это вообще такое.... "Собеседование на php разработчика" при этом интервьюер говорит "я просто сам php не особо..."
Если начинаете плыть, как тут на вопросе про паттерны, то лучше скажите что не знаете, вместо того чтобы что-то пытаться придумывать. Обычно для собеседующего это уже плохой сигнал и значительный минус по кандидату.
Синглтон нарушает С СОЛИД потому что он помимо своего функционала еще и следит чтобы был один экземпляр, но строго соблюдать солид не получится и можно на это забить.
Все паттерны и всё что есть в ООП придумано для решения одной проблемы - поддерживаемость кодовой базы.
Нет, паттерны не про поддерживаемость, а про достижение целей оптимальным путём. Из чего может (но не обязана) улучшаться поддерживаемость при условии понимания этих паттернов поддержкой после ухода автора кода.
@@vdbxxxа в чем оптимальность? Это субъективно. Некоторые вещи можно сделать вообще без паттернов чисто процедурно и всё будет работать ок, а клиенту (заказчику) ПО вообще фиолетово что там под капотом.
@@you-are-not-allowed мамкины программисты любят пихать паттерны куда не надо, занимаются прежде временной оптимизацией кода, который не будет меняться))
@@PanicWassanoтак и есть
Хрень все эта с паттернами. Одни придумали ерунду, другие подхватили...
Годная вещь для галеры, но не для настоящей работы.
Помню как когда то читал про них, учил их... годы шли, а никому это оказалось не надо. )
Возможно где то и использовал без понимания, но это вряд ли. Вот так что бы принципиально использовал, то точно нет.
Все же я люблю 😎😇класический подход на php и создаю свой фреимворк😳😈🫠прям круто получаеться делаю единым цельным с js😎😇
неужели так тяжело отключить телеграмм?????:?
Автору телегу тяжело было выключить...
12:29 - это называется коллекция
Странный техдиректор...
Вспомнил базовое определение инкапсуляции но принял такое тупейшее объяснение про полиморфизм... По сути про полиморфизм совершенно всё неправильно а то что автор рассказал называется оверрайдинг.
3:20 звучит супер на рассказ о том что используется простейшие наследование... оххх
По шаблонам проектирования полный завал.
По mvc полный завал.
После слов "бизнес логика абстрактная"... Я себе реально ладошкой по лбу ударил и сказал да что ж ты несёшь... Бизнес логика - это самое что ни на есть конкретное в проекте... Какая она абстрактная?
По рест API Я бы это назвал провалом... Я так понимаю что интервьюер сам плавает в этом вопросе и поэтому его ответ без какого-либо ответа по принципу ну там что-то это как бы где-то вроде как типа того - полностью устроил....
"Рест апи - это архитектурный стиль" да ладно ? С каких пор...
Почему я options ни разу в жизни не использовал но чётко знаю что он делает и для чего используется?
Ну как можно сказать я могу перепутать пост пут и патч один используется для одного другой для другого ты же каждый день это используешь как это можно перепутать.
Как можно сказать что метод патч "используется для частичного изменения модели в базе" то есть "модель в базе" Это как? И с чего вдруг он для этого используется? Сразу видно что человек вообще не понимает что такое модель что такое эти методы какая взаимосвязь между всем этим...
И интервьюер говорит "хорошо всё правильно"... Что правильно? модель в базе меняется ? ресурс в базе меняется?
Не знать на собеседовании что такое нормализация?
когда Интервьюер рассказал что такое нормализация - Я в осадок выпал...
В какой модели хранить посты какие нормализации... Здесь мне точно стало понятно что человек не понимает что такое модель.
"При минимизации избыточности мы создаём новые таблички, новые модели" вот это поворот...
У тебя вопросы по мускл какие модели зачем ты модели туда пихаешь, какое они имеют отношение к mysql.
О'КЕЙ по гиту на поставленные вопросы ответил.
Вопросы по девопсу мне на самом деле непонятно зачем их задавать ну видимо просто для общего понимания увлекается человек этим или не увлекается потому что devops - это уже отдельная профессия.
по дизайну же вопросы бэкэндеру не задают, непонятно зачем задают по девопсу.
А вот у меня впечатление сложилось негативное...
Скажу честно на middle позицию не тянешь с такими ответами...
К такому собеседованию в принципе готовится не к чему здесь максимально базовые вопросы которые должны отлетать...
Если уж совсем быть честным то я бы даже джуниором не назвал, ну потому что junior должен чётко понимать базовые принципы ооп, чётко понимать базы, чётко знать что такое mvc. у автора же вообще ни одного вопроса конкретно чётко не было отвечено он всё время плавал и пытался выкручиваться...
Ну видимо из-за использования Eloquent у собеседуемого модель неразделима с таблицей)
На фоне парня с UlibiTV знания конечно слабоватые, классно но нету wow эффетка ) Прохождение собесов все же это навык, как бы это странно не звучало =/
притом что сам Ульбик собеседование завалил ))
С телегой конечно провал
Про инкапсуляцию интервьювер сказал, мне больше показалось что похоже на композицию
про гит не знаю, я им пару раз пользовался для курсов, чтобы на гитхаб выкладыать код из иде
нихера не понял
ци\цд смотрел ролик, тоже мало что понял
про докер знаю, но не пользовался за ненадобностью
работал с линупс контейнерами в proxmox для запуска отдельных приложений типа впн серверов, чтобы не юзать целую ось ради мелкой проги
короче я могу идти в мидлы без опыта работы в пхп 🤣😎
докер ныне это такой же мастхев как и гит. без него тебя мидлом разве что на галеру возьмут сайтики клепать на вордпрессе или любой другой обосраной цмс за зп 60-80к
Про вопросы REST API, я бы ответил, что это протокол обмена данными между потребителем и поставщиком(сервером) основанным на HTTP.
Метод OPTIONS часто его назначение это CORS (между доменные запросы), на него обращается браузер когда видит, что есть обращение к ресурсам другого домена.
Если по честному, то разницы между методами GET, POST, PUT, PATCH,DELETE нет с точки зрения протокола REST, всем этим методам, мы сами даем содержания из здравого смысла и значения слов(дай, отправь, помести, измени, удали). Вообще никто не запрещает сделать даже свои методы со своими называниями, но тут есть ограничения самого HTTP.
Если уж совсем глубже копать, то HTTP это просто текстовой протокол обмена данными основанный на сетевого протоколе TCP.
Так, что REST API можно построить и без HTTP, но тут, как говорить зачем изобретать велосипед.
RESTapi это не протокол, а архитектурный стиль поправил бы я тебя сразу)
REST это не протокол. Вот SOAP - да.
11:11 - а че тебе c# понравился или не понравился наоборот. -c# понравился да, неплохой язык, он мощный похож на javascript и соответственно и на php, значит связь typescript с php перемешены, нормальный. Но я к сожалению просто у меня не было времени нормально заняться там, я тратил время на английский, на php, на c# я не учил его нормально так. но успел поработать знаешь там, открыть пару файликов разобраться в коде, это не сложно... Гениально) сделайте кто нибудь мем.
А может это js похож на c# ? )
Технического мало в собеседовании. Не знаю зачем єтот єтап. вовсе. Мидл уже должен понимать.1 очереди, 2 уверенее говорить о индексах (интервьюрер почему то. не поднял вопрос размера индекса и. зависимости. целесообразности его назначения) 3. блокировки а) задач б) бд. При написании того же апи программист должен. учесть. конкурентность. По запросам, можно спросить о идемпотентности
1 очереди не везде нужны. 2. Тут надо давать практическую задачу на какое поле повесить индекс, смысл спрашивать теорию. 3. Перед блокировками лучше спросить про транзакции и уровни изоляции. 4. Concurrency учесть или все таки race condition?
@@PanicWassano если писать лендинг то да, если писать что-то сложнее без очередей ни куда
@@PanicWassano конкурентность и есть состоянием гонки
Паттерны подтянуть, явно:) вообще не про то говоришь часто:)
потому что он не понимает, зачем их использует. А понимать будет когда будет больше опыта и поменьше этой херни)
@@PanicWassano , вы их используете? )
А кто-нибудь может подсказать , какие ежедневные рутинные задачи делает мидл пхп-разработчик ?
От конторы зависит
@@user-un5ri4qk5jа можно несколько примеров , плиз ?
работает. как и сеньор, как и джуниор.
Ну тот кто вопросы задавал, собеседование у меня бы не прошел. По этому я хз. Хотя я сеньор-помидор. Может уже забыл просто че там на мидл уровне. Я в целом не гонялся никогда за бейджами.
Полиморфизм объяснил через наследование, ну такое... Вообще полиморфизм только про интерфейсы, использование наследников - частный случай
на мидла не тянет, но джуном я бы его взял - опыт есть, но осознание еще не пришло. Вопрос про передачу параметров в функцию несколько сложнее и что бы правильно ответить на него надо знать про работу с zval.
Скоро ии вас не возьмет даже джуном. )
Опыт важен, а не теория и определения. Пошел бы он к вам джуном? Делать работу мудла за зп джуна? ))) А оно ему зачем?
Вам не нужен, другие возьмут. Свет не сошелся на вашей конторе.
Вон битрикс говнокодит, а ваша организация имеет такой же вес? ) Выходит со всеми вашими запросами не тянете вы даже на такое.
Херня это всё. К этим вопросам можно тупо насобачиться и пройти сразу на сеньора.
@@fenderbender2096 важен не только ответ но и то как отвечают, или даже рассуждают о тех вещах о которых не знают, сразу видно, кто готовился, а кто понимает. И если вы сможете "насобачиться" на вопросах на сеньера до такой степени что будите не только знать как ответить но и понимать о чем говорите, то поздравляю, вы и так уже сеньер.
@@user-fe6pi9vb6h таких, которые внимательно следят за рассуждениями, немного. Обычно есть конкретный ожидаемый ответ. И это не говоря про всякие литкоды.
в виндовсе есть такой сервис поиска данных и файлов
когда компутер свободен, то этот сервис индексирует файлы
точно так же поисковый робой индексирует сцайт
все это нужно для быстрого поиска в базе, чтобы не искать в реальном времени
что-то вроде оглавнения в книгах с указанием на страницы
про REST API: да откуды вы эту инфу берете - нет ничего про HTTP в принципах REST
REST начался с HTTP
как из php storm такую красоту сделать?
это бета-версия нового UI. в правом верхнем углу есть переключалка.
Еали честно, то больше похоже на стронг джуна, но точно не мидл
это собеседование теоретиков, не вижу тут написания кода и практических заданий.
Я теорию вообще не помню. Вопрос. Я теперь джун? )
Что делать то? ) Болт положить на опыт и идти букварь листать? А оно мне зачем? )
В пхп не создастся копия массива при передаче его в функцию, если в этой функции массив не будет модифицироваться. Техдир, бля))))
мож чел выучился на 4ой пыхе) если б выучился на пятой, сказал бы что объекты передаются по ссылке) "не создается копия" с 7ой появилось
@@drozdoves это не оправдывает техдиров в "рогах и копытах", которые не каждый собес на джуна пройдут с таким уровнем
@@alekseyalekseev1700 это было с ноткой сарказма) идя на мидла грех не знать базовых вещей
@@drozdoves ну, моя претензия не к собеседуемому, а к собеседующему)
@@alekseyalekseev1700 собеседуемый не упомянул что объекты передаются по ссылке) это важней чем оптимизация пыхи в вопросе передачи переменных
пысы: хоть предполагаю что он это знает
Собеседование на мидла:
. Какая бывает типизация?
lmao
Как тема в шторме называется?
Мб Drakula?))
В последний штормах єто newUI в настройках
на мидла не тянет)
Мидл, это зарплата, а не уровень. Нет строгих критериев.
Все эти кодерские собесы уже архаизм с приходом ИИ, на новый план встанут собесы архитекторского уровня так как кодеры в новой парадигме не нужны будут от слова совсем.
Ну ну.
рестапи это человекопонятные урлы для вызова удаленных методов и обмена данными в джейсоне
придуман, чтобы не изобретать свои велосипеды в виде протоколов, поэтому идет поверх хттп и даже хттпс без дополнительных костылей
если взять контроллеры, то там используется модбас, правда он не обрабатывает строки и десятичные дроби, но для этого костыли есть
когда надо контроллер связать с компутером, то приходится придумывать протокол, т.к. ресурсов у контроллеров мало и они очень не любят работать со строками
поэтому придумали protobuf, хотя если взять еср8266 или есп32 - там достаточно ресурсов для работы вебсервера и у кого мозгов побольше, тот юзает джейсона, а всю вебморду хранит в пзу и загружает 1 раз в браузер и уже потом гоняет джейсона или вебсокеты
а весь бекенд как раз на ресапи сделан
у кого мозгов маловато, тот херачит хтмл в озу на лету, потом удивляется, что его уродливая страница так медленно грузится или контроллер виснет
замыкания это те же функции обратного вызова, только без имени
используются как прямой аргумент другой функции, если замыкание вызвается только 1 раз в коде
т.к. яваскрипт это язык асинхронных вызовов, то там 95% кода это замыкания
чтобы понять, что такое асинхронность - надо столкнуться с этим при программировании контроллеров на примере мигания двумя и более светодиодами с разной частотой и периодом
я знал, что такое асинхронность в контроллерах и софтовые таймеры, но не знал этого названия и когда я читал про асинхронность явасрипта и замыкания. то я не понимал ничего
одни и те же вещи называются по разному
еще я смотрел устройство фреймворка реакт пхп, там как раз внутри него софтовые таймеры
в контроллере же есть аппаратный таймер, который настроен так, что каждую миллисекунду вызывается прерывание по переполнению и в 32 битную переменную записывается +1, а в любом месте кода можно вызвать функцию, которая вернет время в миллисекундах с начала запуска контроллера
на базе этого аппаратного таймера можно построить свои софтовые таймеры и эти таймеры могут уже вызывать функции при срабатывании таймера
дальше на базе этого строиться операционная система реального времени, там работают уже не с таймерами, а с задачами, на выполнение которых задают уже время
это еще упрощает код и читаемость его, правда накладывает свой оверхед по пзу и озу
у меня произошла незапланированная лекция в 2 ночи
@@user-vt7ux2xu9b
Ты реально калобит. Каловый бит
@@AlexandroLavichez я тебя где-то опустил? не на радиоте?
@@kalobyte ты просто позоришь программирование
Как установил ларавел в шторм? Мучаюсь уже неделю никак не могу =ddd
плагины есть же под шторм
@@kalobyte может быть он про ide helper?
@@myddl2643
это что такое?
@@kalobyte пакет для composer, что бы были подсказки в ide
@@myddl2643
да там вроде бы команды не сложные
В пхп по ссылке переменные передаются.
Нет, по значению
Доброй утро, можете подсказать, вывод команд в консоли у вас красивый, это особенность laravel9 или это какой-то пакет для phpstorm?
А как понять я работаю ради денег или мне нравится? Я давно где-то посередине, хотя деньги не в приоритете
Я хз, возможно ли вообще работать разработчиком, если это не нравится. Обычно 90% таких людей уходят в течении месяца-двух, поняв, что "это не моё", остальные 10% чуть позже. 😑
10 лет в сфере - тестов нет, документации нет, для дебага print_r(), логика прямо в контроллере, в гите 1 ветка мастера...как-то так))
сочувствую
это собес (если вопросы брать) максимум на стронг джуна. любой мидл должен отвечать на такие вопросы
зачем вообще спрашивать кучу теории? мидл тот, кто больше всех пишет кода.