Итак, приступим.
Собеседование в топ компании обычно состоит из многих этапов, начиная с созвона с HR, и заканчивая многочасовым собеседованием, где матерые разработчики по очереди будут приходить ипоказывать вам, какое вы ничтожество, нет, на самом деле все дружелюбны, максимально вежливы, и всегда готовы помочь.
Каждый отдельный этап - это полноценное интервью, где вы должны показать не только умение кодить, но и умения думать, общаться, ошибаться и находить свои ошибки. Также топовые компании добавляют в каждое такое интервью поведенческие вопросы вида «расскажите свою самую большую ошибку в работе, как вы ее исправили, и чему научились в процессе».
Обычно основные этапы делятся на два типа - алгоритмы и архитектура.
Я начну не по порядку, и поделюсь с вами, на мой взгляд, одной из самых точных статей по этому поводу.
Но прежде чем начать читать, я хочу еще раз подчеркнуть, что System Design - это НЕ проверка ваших знаний!! Вам нужно показать не свои знания и опыт, а как вы думаете, ошибаетесь, предполагаете, и что будете делать в той или иной ситуации. Главный совет - забудь весь свой опыт и начни думать «с нуля»!
https://habr.com/ru/amp/post/516718/
Вот тут еще подборка неплохих видео с задачами и решениями, однако я хочу вас предостеречь, что некоторые интервьюируемые больше сыпали опытом, чем реально показывали свой мыслительный процесс:
https://youtube.com/playlist?list=PLBRXq5LaddfzDBjg6soIwJJA2klXXs6ni
Собеседование в топ компании обычно состоит из многих этапов, начиная с созвона с HR, и заканчивая многочасовым собеседованием, где матерые разработчики по очереди будут приходить и
Каждый отдельный этап - это полноценное интервью, где вы должны показать не только умение кодить, но и умения думать, общаться, ошибаться и находить свои ошибки. Также топовые компании добавляют в каждое такое интервью поведенческие вопросы вида «расскажите свою самую большую ошибку в работе, как вы ее исправили, и чему научились в процессе».
Обычно основные этапы делятся на два типа - алгоритмы и архитектура.
Я начну не по порядку, и поделюсь с вами, на мой взгляд, одной из самых точных статей по этому поводу.
Но прежде чем начать читать, я хочу еще раз подчеркнуть, что System Design - это НЕ проверка ваших знаний!! Вам нужно показать не свои знания и опыт, а как вы думаете, ошибаетесь, предполагаете, и что будете делать в той или иной ситуации. Главный совет - забудь весь свой опыт и начни думать «с нуля»!
https://habr.com/ru/amp/post/516718/
Вот тут еще подборка неплохих видео с задачами и решениями, однако я хочу вас предостеречь, что некоторые интервьюируемые больше сыпали опытом, чем реально показывали свой мыслительный процесс:
https://youtube.com/playlist?list=PLBRXq5LaddfzDBjg6soIwJJA2klXXs6ni
Хабр
Netflix за 45 минут: Краткий рассказ о system design-интервью, чего ожидать + подборка полезных ссылок
В нашем блоге мы много пишем о построении карьеры в ИТ в разных странах, поиске работы, отличиях в процессе собеседований крупных компаний. В сегодняшней статье мы пойдем дальше и раскроем тему...
Алгоритмы.
Тут все максимально просто. Интервьюер смотрит на то, как вы умеете решать те или иные алгоритмические проблемы за конечный промежуток времени.
Для подготовки требуется понять что такое сложность алгоритма по времени и по памяти
https://tproger.ru/articles/computational-complexity-explained/
ну и потратить от 100 часов на leetcode.com на решение разнообразных задач. А так как все мы любим решать сложные, никому не нужные проблемы методами, которые никому не известны (отсылка к анекдоту, если кто не понял), то такая подготовка - одно удовольствие.
Правда обидно за эти интервью - вроде бы созданы они были с благой целью - узнать как человек решает, как мыслит и где оптимизирует, а в итоге - превратились в простой фарс. В итоге инженеры меряются не логическим мышлением, а всего лишь часами, проведенными на литкоде.
Скорее всего именно поэтому многие стартапы отказываются от такого подхода, и вместо решения задач гоняют по языкам.
Тут все максимально просто. Интервьюер смотрит на то, как вы умеете решать те или иные алгоритмические проблемы за конечный промежуток времени.
Для подготовки требуется понять что такое сложность алгоритма по времени и по памяти
https://tproger.ru/articles/computational-complexity-explained/
ну и потратить от 100 часов на leetcode.com на решение разнообразных задач. А так как все мы любим решать сложные, никому не нужные проблемы методами, которые никому не известны (отсылка к анекдоту, если кто не понял), то такая подготовка - одно удовольствие.
Правда обидно за эти интервью - вроде бы созданы они были с благой целью - узнать как человек решает, как мыслит и где оптимизирует, а в итоге - превратились в простой фарс. В итоге инженеры меряются не логическим мышлением, а всего лишь часами, проведенными на литкоде.
Скорее всего именно поэтому многие стартапы отказываются от такого подхода, и вместо решения задач гоняют по языкам.
Tproger
Оценка сложности алгоритмов, или Что такое О(log n)
Если вы всё ещё не понимаете, что такое вычислительная сложность алгоритмов, и ждете простое и понятное объяснение, — эта статья для вас.
Еще одна, не менее важная часть - это так называемое «поведенческое» интервью. Обычно вопросы по этому поводу задают те же интервьюеры сразу после решения задач, но иногда выделают отдельное собеседование по этому поводу.
Простым языком - самый основной вопрос я уже писал в одном из прошлых постов: «какую встретили проблему, как решили, где ошиблись, и какие сделали выводы».
К примеру - я делал систему записи к врачу, и из-за большой ограниченности во времени архитектор команды решил взять готовое решение, подпереть костылями и обработать напильником. Но это самое готовое решение имело кучу своих проблем и было плохо расширяемым. В общем я плюнул на все это и сел писать свой велосипед. Однако через неделю оказалось, что готовое решение не зря разрабатывалось многие годы, и содержало много скрытых фич и багфиксов. В общем, потратив в общей сложности полторы недели я все же вернулся к предложенному решению. Ну а вывод простой -не ругаться с архитектором принимать во внимание все аспекты предлагаемого решения и проводить глубокий анализ требований прежде чем нырять с головой в разработку.
Еще хочу добавить, что некоторые компании не только хотят послушать про ваше поведение в прошлом, но и заставляют наложить ваш опыт на свои идеи/принципы.
Например - Амазон имеет 17+ (они все еще пополняются) так называемых принципов лидерства, к каждому из которых необходимо подготовить историю из личного опыта.
Вот тут можно почитать про них подробнее:
https://habr.com/ru/amp/post/645045/
Простым языком - самый основной вопрос я уже писал в одном из прошлых постов: «какую встретили проблему, как решили, где ошиблись, и какие сделали выводы».
К примеру - я делал систему записи к врачу, и из-за большой ограниченности во времени архитектор команды решил взять готовое решение, подпереть костылями и обработать напильником. Но это самое готовое решение имело кучу своих проблем и было плохо расширяемым. В общем я плюнул на все это и сел писать свой велосипед. Однако через неделю оказалось, что готовое решение не зря разрабатывалось многие годы, и содержало много скрытых фич и багфиксов. В общем, потратив в общей сложности полторы недели я все же вернулся к предложенному решению. Ну а вывод простой -
Еще хочу добавить, что некоторые компании не только хотят послушать про ваше поведение в прошлом, но и заставляют наложить ваш опыт на свои идеи/принципы.
Например - Амазон имеет 17+ (они все еще пополняются) так называемых принципов лидерства, к каждому из которых необходимо подготовить историю из личного опыта.
Вот тут можно почитать про них подробнее:
https://habr.com/ru/amp/post/645045/
Хабр
Как разработчику применять принципы лидерства Amazon
Добрый день, меня зовут Павел Поляков, я Principal Engineer в каршеринг компании SHARE NOW, в Гамбурге в 🇩🇪 Германии. А еще я автор телеграм канала Хороший разработчик знает , где рассказываю обо...
Меня тут недавно попросили рассказать про гит для ребят, только начинающих свой путь в разработке ПО, и я понял, что мне очень нравится рассказывать что-то, что я знаю. А потом посыпались вопросы по каким-то нюансам, и вдруг оказалось, что рассказывать то, что я не знаю - еще более увлекательно 🤣
И тут я подумал - а не заняться ли мне инфоциганством в мире IT?
Было ли бы интересно кому-то из вас узнать что-то новое/старое но более подробно на паре-тройке небольших видеомитингов в формате «первый бесплатно, а потом, как пойдет»? Ставь лайк, если да, и какаху, если инфоцигане задолбали.
Навскидку приходят разные темы, от инструментов вроде git, ngrok, сервисов типа elasticsearch, nginx, varnish и до каких-то вещей внутри языка вроде алгоритмов, ООП. А может даже что-то про серверы, bash scripting etc. Ну и конечно - можно поговорить о Magento, ведь разрабов там постоянно не хватает, зарплаты х2 от обычного ларавельщика, ООП не хуже чем в симфони, интересных задач хватает (вроде каталога на 2 млн продуктов, которые нужно синхронизировать каждые два часа) а сама мажента таки в ближайшие лет 5 точно не умрет (а потом можно будет свалить куда-то в смежную область)
Заодно прикрепляю опрос, чтоб узнать, какого уровня кунг-фу у большинства из подписчиков.
И тут я подумал - а не заняться ли мне инфоциганством в мире IT?
Было ли бы интересно кому-то из вас узнать что-то новое/старое но более подробно на паре-тройке небольших видеомитингов в формате «первый бесплатно, а потом, как пойдет»? Ставь лайк, если да, и какаху, если инфоцигане задолбали.
Навскидку приходят разные темы, от инструментов вроде git, ngrok, сервисов типа elasticsearch, nginx, varnish и до каких-то вещей внутри языка вроде алгоритмов, ООП. А может даже что-то про серверы, bash scripting etc. Ну и конечно - можно поговорить о Magento, ведь разрабов там постоянно не хватает, зарплаты х2 от обычного ларавельщика, ООП не хуже чем в симфони, интересных задач хватает (вроде каталога на 2 млн продуктов, которые нужно синхронизировать каждые два часа) а сама мажента таки в ближайшие лет 5 точно не умрет (а потом можно будет свалить куда-то в смежную область)
Заодно прикрепляю опрос, чтоб узнать, какого уровня кунг-фу у большинства из подписчиков.
Какого уровня твое кунг-фу?
Anonymous Poll
16%
Junior
36%
Middle
25%
Senior
11%
Lead
11%
Смотрю ответ/не разработчик
Я на всякий случай напомню, что у нас есть еще и чатик, где можно позадавать вопросики
Ссылка:
https://tttttt.me/all_it_ru
Ссылка:
https://tttttt.me/all_it_ru
Telegram
PHP Today Чат
Говорим про PHP. Канал тут: @phptoday.
С 9 июня потихоньку релизят альфа-версии PHP 8.2.
Недавно вышла уже третья альфа.
О том, какие RFC включили в 8.2, что же такого новенького мы получим - можно почитать вот тут https://sergeymukhin.com/blog/chto-novogo-v-php-82 (спойлер - ничего сверхъестественного я там не нашел, конечно же, но кое какие вещи типа readonly классов, или устаревание некоторых синтаксических вещей будет полезным)
Недавно вышла уже третья альфа.
О том, какие RFC включили в 8.2, что же такого новенького мы получим - можно почитать вот тут https://sergeymukhin.com/blog/chto-novogo-v-php-82 (спойлер - ничего сверхъестественного я там не нашел, конечно же, но кое какие вещи типа readonly классов, или устаревание некоторых синтаксических вещей будет полезным)
Sergeymukhin
Что нового в PHP 8.2
PHP 8.2 выпущен 8 декабря 2022 года. В этом посте мы рассмотрим все функции, улучшения производительности, изменения и устаревший функционал
Довольно любопытная статья о том, что и как MySQL пишет на диск, и немного тонких настроек, с которыми можно поиграться, чтоб ускорить базу.
https://habr.com/ru/post/684474/
https://habr.com/ru/post/684474/
Хабр
Разбираемся что MySQL пишет на диск и зачем [часть 1]
Оглавление Double Write buffer и Binlogs [эта статья] Redo logs и общая картина [ https://habr.com/ru/post/699342/ ] Disclaimer: автор не является разработчиком MySQL, все нижеописанное может не...
Yii. Лет 10 назад был моим любимым фреймворком. Шутка ли, в пару строк кода/ в пару кликов с Gii можно получить грид, который будет не только выводить все что нужно, но и работать по ajax с jQuery под капотом, собственным готовым дизайном, и все это за пару минут!
Пока вы спите, команда разработчиков и энтузиастов неустанно пилит пакеты для нового Yii3. И многие уже в продакшене!
Я все как-то хотел написать про третью версию фреймворка Yii, но руки не доходили. И вдруг на Хабре наткнулся на статью, которая обещает стать циклом. Похоже Yii3 собирается подвинуть популярные в последние лет 5 Symfony и Laravel.
Все тут https://habr.com/ru/post/695664/
Пока вы спите, команда разработчиков и энтузиастов неустанно пилит пакеты для нового Yii3. И многие уже в продакшене!
Я все как-то хотел написать про третью версию фреймворка Yii, но руки не доходили. И вдруг на Хабре наткнулся на статью, которая обещает стать циклом. Похоже Yii3 собирается подвинуть популярные в последние лет 5 Symfony и Laravel.
Все тут https://habr.com/ru/post/695664/
Хабр
Yii3 Overview 1. Вступление
Список всех статей: Вступление Вспомогательные инструменты разработки Обзор app-* шаблонов и demo Доброго времени суток, дорогой читатель. За свою профессиональную карьеру я успел поработать с...
Отличная шпаргалка по возможностям mysqldump, уверен, многие из вас (нас) не знали и половины опций этой команды
#database #mysql #mysqldump
https://habr.com/ru/company/cloud4y/blog/715172/
#database #mysql #mysqldump
https://habr.com/ru/company/cloud4y/blog/715172/
Хабр
Mysqldump в MySQL
Mysqldump имеет множество опций (я насчитал 111 штук ). Большинство из нас, скорее всего, придерживаются простого подхода. Вот как я обычно экспортирую одну базу данных: mysqldump some_database >...
Привет, на связи Podlodka PHP Crew! Большинство русскоязычных конференций и митапов по PHP приостановлены. Но мы продолжаем собирать комьюнити! Во 2-м сезоне поговорим, как внедрять в работу новые инструменты разработки с пользой для бизнеса.
Вместе с Александром Макаровым, Валентином Удальцовым, Александром Кирсановым и другими спикерами разберёмся с основными и продвинутыми сценариями отладки кода, научимся эффективно комбинировать PHP и Docker.
Стартуем уже 27 февраля! В программе:
✴️ Лайвкодинги по поиску ошибок с помощью статического анализа;
✴️ Практика применения Docker;
✴️ Доклады по отладчикам кода и анализу code style;
✴️ Воркшопы по работе с Composer.
Это не всё 😉 В новом сезоне вас ждёт много интересного. За подробностями — на сайт.
Онлайн-конференции Podlodka Crew родились из одноимённого IT подкаста. Каждый сезон длится пять дней — рассматриваем одну тему с разных сторон, чтобы узнать её как можно глубже.
🤑 Успейте забрать свой билет по сниженной цене — ранним пташкам скидки.
Вместе с Александром Макаровым, Валентином Удальцовым, Александром Кирсановым и другими спикерами разберёмся с основными и продвинутыми сценариями отладки кода, научимся эффективно комбинировать PHP и Docker.
Стартуем уже 27 февраля! В программе:
✴️ Лайвкодинги по поиску ошибок с помощью статического анализа;
✴️ Практика применения Docker;
✴️ Доклады по отладчикам кода и анализу code style;
✴️ Воркшопы по работе с Composer.
Это не всё 😉 В новом сезоне вас ждёт много интересного. За подробностями — на сайт.
Онлайн-конференции Podlodka Crew родились из одноимённого IT подкаста. Каждый сезон длится пять дней — рассматриваем одну тему с разных сторон, чтобы узнать её как можно глубже.
🤑 Успейте забрать свой билет по сниженной цене — ранним пташкам скидки.
Ну о-о-очень познавательная статья про пароли, их проверку и безопасность.
https://habr.com/ru/post/714478/
https://habr.com/ru/post/714478/
Хабр
Как правильно проверять сложность пароля пользователя при регистрации
За десятилетия айтишки сложилась практика ограничивать пользователей в сложности их паролей. Сейчас пароль пользователя должен: быть не меньше N символов; && быть не больше M символов (чуть...
Написал для вас "Шпаргалку по JavaScript для всех бэкэндеров". Она для тех, кому иногда приходится сталкиваться с JS, но настолько редко, что основные тонкости языка очень быстро выветриваются из головы.
#js #frontend #шпаргалка
https://vc.ru/dev/612832-shpargalka-po-javascript-dlya-vseh-bekenderov
#js #frontend #шпаргалка
https://vc.ru/dev/612832-shpargalka-po-javascript-dlya-vseh-bekenderov
vc.ru
Шпаргалка по JavaScript для всех бэкэндеров — Разработка на vc.ru
Часто встречаю странное пренебрежение, а иногда даже и отвращение со стороны backend разработчиков к JavaScript.
Вы еще не пользуетесь rector? Тогда мы идем к вам!
Способ уменьшения боли при рефакторинге для обновления (да и не только, там тысячи сценариев для анализа и исправления кода).
Подробности тут https://habr.com/ru/companies/oleg-bunin/articles/720216/
Способ уменьшения боли при рефакторинге для обновления (да и не только, там тысячи сценариев для анализа и исправления кода).
Подробности тут https://habr.com/ru/companies/oleg-bunin/articles/720216/
Хабр
Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector
Привет! Меня зовут Александр Володин. Я PHP backend developer из компании Skyeng. Опыт разработки более 8 лет. С выходом PHP 8 мне захотелось скорее использовать все новые фичи релиза, поэтому я взял...
Я помню, как работал с большим массивом данных, и очень удивился когда обнаружил, насколько отличается потребление памяти ассоциативного и классического массивов. Даже пришлось нагородить свой велосипед, чтоб работать с 10 миллионами строк из базы не втыкая еще пару планок оперативы (разница была в районе - ассоциативный 8 гигов, классический - 300 мегабайт).
А тут очень наглядно показано, какие нюансы работы с памятью возникают при работе с массивами
https://habr.com/ru/articles/746868/
А тут очень наглядно показано, какие нюансы работы с памятью возникают при работе с массивами
https://habr.com/ru/articles/746868/
Хабр
PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами
Содержание Общие сведения. Увеличиваем потребление памяти вдвое. Увеличиваем потребление памяти втрое. Ещё раз увеличиваем потребление памяти на ровном месте. Заключение. Общие сведения Известно, что...
Залез почитать что новенького на Плюке, и обнаружил отличного автора!
Парень (скорее всего, но может и девушка) ворвался на Хабр в ноябре этого года, и уже настрочил целых две оччень полезных статьи!
То, что точно подойдет для всех - кастомизация шторма (с новым дизайном) для большего удобства - https://habr.com/ru/articles/784256/
Парень (скорее всего, но может и девушка) ворвался на Хабр в ноябре этого года, и уже настрочил целых две оччень полезных статьи!
То, что точно подойдет для всех - кастомизация шторма (с новым дизайном) для большего удобства - https://habr.com/ru/articles/784256/
Хабр
Разборка в Шторме
PhpStorm — лучшая IDE. Но не все дефолтные настройки могут подходить. Особенно в новом UI. Что и почему можно поменять? Сейчас расскажу. TL;DR Чтобы не было завышенных...
А для тех кто пишет API на Symfony - как можно суперудобно прикрутить сваггер, без добавления дублирующих всё и вся аннотаций к каждому методу (да еще и не сломав старую реализацию, если она у вас уже есть)
https://habr.com/ru/articles/775056/
https://habr.com/ru/articles/775056/
Хабр
Типичный Swagger без гмо
Кто из нас не был одурманен сказками про свагер? Мол, добавь эту волшебную штуку — да заживешь! Но плата за магию — зеленое болото нотаций. А нельзя ли обойтись только типизацией самого php? (Спойлер:...
Новая статья на хабре о перезапуске устаревшего портала на PHP
Много технических подробностей, схемы архитектуры и общие рассуждения о том, что делать с устаревшими проектами, чтобы они продолжали жить и развиваться.
https://habr.com/ru/articles/787958/
Много технических подробностей, схемы архитектуры и общие рассуждения о том, что делать с устаревшими проектами, чтобы они продолжали жить и развиваться.
https://habr.com/ru/articles/787958/
Хабр
По локоть в легаси: пошагово перезапускаем устаревший портал на PHP
PHP — один из самых популярных языков веб-разработки уже около 20 лет, а самому языку скоро стукнет 30. За это время на нем написали огромное количество больших и маленьких проектов. Некоторые сайты,...
Привет! На связи Podlodka Crew, организатор IT-мероприятий по разным технологиям и языкам. Уже 22 апреля мы запускаем четвертый сезон конференции по PHP. Тема — практика работы с базами данных. И практики будет реально много. Ведь никакая теория не сравнится с возможностью увидеть применение инструментов и технологий в реальности при решении рабочих задач.
Продолжаем знакомить вас со спикерами! Ребята поделятся кейсами и научат внедрять услышанное в собственные проекты:
⭐Олег Мифле из VK расскажет, какие бывают уровни изоляции транзакций, зачем они нужны и как устроены. Разберёт аномалии, влияющие на консистентность базы, и способы с ними справиться.
⭐Ильяс Салихов из RetailCRM раскроет тонкости работы с PostgreSQL, в том числе поговорим про индексы и типы данных. Объяснит нюансы миграции схемы в масштабе, рассмотрит батчинг-операции.
⭐Дмитрий Вагин из Wildberries тоже затронет тему миграций. Но не остановится на этом: научит строить грамотный flow работы с СУБД на проектах. Опишет, как устроены фикстуры и слепки в тестировании и разработке. Покажет проблемы изолированных сред, научит строить prod-like окружение. Отдельно остановиться на работе с чувствительными данными.
⭐Николай Губин из Авито раскроет преимущества Redis перед Memcached. Примеры из опыта проиллюстрируют, как применять богатство структур данных в Redis. Попробуем организовать конвейер по обработке и кэшированию. По-новому взглянем на возможности транзакций. Прокачаемся в оптимизации сетевых подходов с помощью пайплайнов.
Ознакомиться с полным списком спикеров и докладов можно на сайте. Билеты уже в продаже, поспеши забрать свой💥
Продолжаем знакомить вас со спикерами! Ребята поделятся кейсами и научат внедрять услышанное в собственные проекты:
⭐Олег Мифле из VK расскажет, какие бывают уровни изоляции транзакций, зачем они нужны и как устроены. Разберёт аномалии, влияющие на консистентность базы, и способы с ними справиться.
⭐Ильяс Салихов из RetailCRM раскроет тонкости работы с PostgreSQL, в том числе поговорим про индексы и типы данных. Объяснит нюансы миграции схемы в масштабе, рассмотрит батчинг-операции.
⭐Дмитрий Вагин из Wildberries тоже затронет тему миграций. Но не остановится на этом: научит строить грамотный flow работы с СУБД на проектах. Опишет, как устроены фикстуры и слепки в тестировании и разработке. Покажет проблемы изолированных сред, научит строить prod-like окружение. Отдельно остановиться на работе с чувствительными данными.
⭐Николай Губин из Авито раскроет преимущества Redis перед Memcached. Примеры из опыта проиллюстрируют, как применять богатство структур данных в Redis. Попробуем организовать конвейер по обработке и кэшированию. По-новому взглянем на возможности транзакций. Прокачаемся в оптимизации сетевых подходов с помощью пайплайнов.
Ознакомиться с полным списком спикеров и докладов можно на сайте. Билеты уже в продаже, поспеши забрать свой💥