Forwarded from Software Engineer Updates
YouTube
Senior Engineer Breaks Down Systems Design Interview
In this video, Alex Golec, a Software Engineering Manager at Reddit and previously a Software Engineer at Google, uses his extensive experience to break down a mock Systems Design Interview.
This is the first of many videos in Inspect Element, an interviewing.io…
This is the first of many videos in Inspect Element, an interviewing.io…
Forwarded from Bohdan Shtepan 🇺🇦
Что быстро пришло в голову:
The Making of a Manager: What to Do When Everyone Looks to You.
Легкое чтиво и, по сути, автобиография одного из первых сотрудников Фейсбука, которая выросла с рядового дизайнера-интерна в топ-менеджеры. Эту книжку часто рекомендуют для подготовки к бихейву. Но здесь нет никаких рецептов или откровений. Даже конфликтные ситуации покрыты весьма поверхностно. Но, тем не менее, книжка хорошая.
Software Engineering at Google: Lessons Learned from Programming Over Time.
Прочел эту книжку по рекомендации одного из участников этого сообщества. Книжка очень хорошо описывает множество разных процессов в Гугле, но актуально и для любой большой технологической компании. После более 5 лет работы в аутсорсе/аутстафе и прочтения этой книжки я решил для себя, что назад в аутсорс - ни ногой.
Own Your Tech Career: Soft Skills for Technologists.
Легкая книжка с простыми истинами о том, как рости как специалист в своей сфере. Наверное, для многих эта книжка не будет глубоким откровением, но поможет систематизировать определенные навыки и упростит отношение ко многим вещам.
The Making of a Manager: What to Do When Everyone Looks to You.
Легкое чтиво и, по сути, автобиография одного из первых сотрудников Фейсбука, которая выросла с рядового дизайнера-интерна в топ-менеджеры. Эту книжку часто рекомендуют для подготовки к бихейву. Но здесь нет никаких рецептов или откровений. Даже конфликтные ситуации покрыты весьма поверхностно. Но, тем не менее, книжка хорошая.
Software Engineering at Google: Lessons Learned from Programming Over Time.
Прочел эту книжку по рекомендации одного из участников этого сообщества. Книжка очень хорошо описывает множество разных процессов в Гугле, но актуально и для любой большой технологической компании. После более 5 лет работы в аутсорсе/аутстафе и прочтения этой книжки я решил для себя, что назад в аутсорс - ни ногой.
Own Your Tech Career: Soft Skills for Technologists.
Легкая книжка с простыми истинами о том, как рости как специалист в своей сфере. Наверное, для многих эта книжка не будет глубоким откровением, но поможет систематизировать определенные навыки и упростит отношение ко многим вещам.
❤3
Forwarded from Nurbek Ismagulov
Теоретическая часть:
Подборки:
Awesome Competitive Programming: https://codeforces.com/blog/entry/23054
Coding Interview University: https://github.com/jwasham/coding-interview-university
Ресурс с большим кол-вом инфы по Computer Science на английском: https://teachyourselfcs.com
Книги:
Общая теория:
1) Algorithms (4th Edition) от Robert Sedgewick
2) The Algorithm Design Manual от Steven S. Skiena
3) Guide to Competitive Programming от Antti Laaksonen
С фокусом на подготовке к собеседованиям:
1) Cracking the Coding Interview от Gayle Laakmann McDowell
2) Elements of programming interviews in Java от Andan Aziz
Очень удобный сайт для подбора книг https://anvaka.github.io/greview/
Ресурсы для практики решения задачек:
https://leetcode.com (Большой набор задач с собеседований)
https://firecode.io (Очень заходит для начинающих, но особо не развивается)
https://hackerrank.com (Описание задач больше похоже на олимпиадное программирование)
https://codeforces.com (Олимпиадное программирование как оно есть)
https://codingcompetitions.withgoogle.com (Соревнования проводимые Google)
Подборка задач от hackerrank для подготовки к собеседованиям: https://www.hackerrank.com/interview/interview-preparation-kit
Курсы по алгоритмам на русском:
Очень короткий курс по структурам данных: https://stepik.org/course/1547
Курс по алгоритмам покрывающий основные темы: https://stepik.org/course/217
Курс по динамическому программирования для начинающих: https://www.youtube.com/watch?v=AawQnuYSY4Y&list=PLUfHxBkkFMScK6mOOWp5s6LgbzmtfwmYQ
Алгоритмическое программирование Очно-заочный курс Петра Калинина: https://algoprog.ru
Математика для олимпиад по программированию: https://stepik.org/course/4603
Курсы по алгоритмам на английском:
Курс от ИТМО: https://courses.edx.org/courses/course-v1:ITMOx+I2CPx+1T2018/course/
Курс от СПБГУ: https://www.coursera.org/learn/competitive-programming-core-skills
Статья на русском о подготовке и прохождении собеседования в гугл и фейсбук: https://tproger.ru/articles/work-in-google/
Leetcode Patterns: https://medium.com/leetcode-patterns
LeetCode course: https://github.com/sarthfrey/leetcode-course
Dynamic Programming Patterns: https://leetcode.com/discuss/general-discussion/458695/dynamic-programming-patterns
Must do Dynamic programming Problems: https://leetcode.com/discuss/general-discussion/1050391/must-do-dynamic-programming-problems-category-wise
Большая подборка материалов на все темы связанные с интервью https://docs.google.com/document/d/1VNoEUzBtyCw0fDw0X_bvuhmCwz1qhNjETPJc5VRZqm8/
System Design:
1) The System Design Primer https://github.com/donnemartin/system-design-primer
2) Grokking the System Design Interview https://www.educative.io/collection/5668639101419520/5649050225344512
3) Видео по подготовке к System Design Interview https://www.youtube.com/channel/UC9vLsnF6QPYuH51njmIooCQ/featured
Machine Learning Systems Design:
https://github.com/chiphuyen/machine-learning-systems-design
Статьи по алгоритмам:
На русском:
DSU: https://habr.com/ru/post/104772/
Topological sort: https://habr.com/ru/post/100953/
Rabin Karp: https://e-maxx.ru/algo/rabin_karp
На английском:
DP:
Презентация от Stanford: http://web.stanford.edu/class/cs97si/04-dynamic-programming.pdf
Подборки:
Awesome Competitive Programming: https://codeforces.com/blog/entry/23054
Coding Interview University: https://github.com/jwasham/coding-interview-university
Ресурс с большим кол-вом инфы по Computer Science на английском: https://teachyourselfcs.com
Книги:
Общая теория:
1) Algorithms (4th Edition) от Robert Sedgewick
2) The Algorithm Design Manual от Steven S. Skiena
3) Guide to Competitive Programming от Antti Laaksonen
С фокусом на подготовке к собеседованиям:
1) Cracking the Coding Interview от Gayle Laakmann McDowell
2) Elements of programming interviews in Java от Andan Aziz
Очень удобный сайт для подбора книг https://anvaka.github.io/greview/
Ресурсы для практики решения задачек:
https://leetcode.com (Большой набор задач с собеседований)
https://firecode.io (Очень заходит для начинающих, но особо не развивается)
https://hackerrank.com (Описание задач больше похоже на олимпиадное программирование)
https://codeforces.com (Олимпиадное программирование как оно есть)
https://codingcompetitions.withgoogle.com (Соревнования проводимые Google)
Подборка задач от hackerrank для подготовки к собеседованиям: https://www.hackerrank.com/interview/interview-preparation-kit
Курсы по алгоритмам на русском:
Очень короткий курс по структурам данных: https://stepik.org/course/1547
Курс по алгоритмам покрывающий основные темы: https://stepik.org/course/217
Курс по динамическому программирования для начинающих: https://www.youtube.com/watch?v=AawQnuYSY4Y&list=PLUfHxBkkFMScK6mOOWp5s6LgbzmtfwmYQ
Алгоритмическое программирование Очно-заочный курс Петра Калинина: https://algoprog.ru
Математика для олимпиад по программированию: https://stepik.org/course/4603
Курсы по алгоритмам на английском:
Курс от ИТМО: https://courses.edx.org/courses/course-v1:ITMOx+I2CPx+1T2018/course/
Курс от СПБГУ: https://www.coursera.org/learn/competitive-programming-core-skills
Статья на русском о подготовке и прохождении собеседования в гугл и фейсбук: https://tproger.ru/articles/work-in-google/
Leetcode Patterns: https://medium.com/leetcode-patterns
LeetCode course: https://github.com/sarthfrey/leetcode-course
Dynamic Programming Patterns: https://leetcode.com/discuss/general-discussion/458695/dynamic-programming-patterns
Must do Dynamic programming Problems: https://leetcode.com/discuss/general-discussion/1050391/must-do-dynamic-programming-problems-category-wise
Большая подборка материалов на все темы связанные с интервью https://docs.google.com/document/d/1VNoEUzBtyCw0fDw0X_bvuhmCwz1qhNjETPJc5VRZqm8/
System Design:
1) The System Design Primer https://github.com/donnemartin/system-design-primer
2) Grokking the System Design Interview https://www.educative.io/collection/5668639101419520/5649050225344512
3) Видео по подготовке к System Design Interview https://www.youtube.com/channel/UC9vLsnF6QPYuH51njmIooCQ/featured
Machine Learning Systems Design:
https://github.com/chiphuyen/machine-learning-systems-design
Статьи по алгоритмам:
На русском:
DSU: https://habr.com/ru/post/104772/
Topological sort: https://habr.com/ru/post/100953/
Rabin Karp: https://e-maxx.ru/algo/rabin_karp
На английском:
DP:
Презентация от Stanford: http://web.stanford.edu/class/cs97si/04-dynamic-programming.pdf
Codeforces
An awesome list for competitive programming!
This is a project I started from late January 2016.
🔥6
Forwarded from Software Engineer Updates
Hiring Site Reliability Engineers
https://www.usenix.org/system/files/login/articles/login_june_07_jones.pdf
https://www.usenix.org/system/files/login/articles/login_june_07_jones.pdf
#systems #design #patterns
https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/
https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/
Docs
Architecture styles - Azure Architecture Center
Learn about architecture styles for cloud applications, including descriptions, recommendations, best practices, and recommended deployment with Azure services.
👍5
Forwarded from Software Engineer Updates
YouTube
TDD for those who don't need it - GopherCon SG 2017
Speaker: Chew Choon Keat
For the longest time, I didn’t write tests. Writing tests is a chore, a waste of time, and doesn’t GTD. The snobbery of the test community only turned me off even more; discouraging good developers from trying TDD. Now, I write tests…
For the longest time, I didn’t write tests. Writing tests is a chore, a waste of time, and doesn’t GTD. The snobbery of the test community only turned me off even more; discouraging good developers from trying TDD. Now, I write tests…
Очень крутое и компактное видео от Principal Engineer at Amazon. Интересно, что я в таком режиме живу уже какое то время. Иногда даже кажется, что работать стал меньше, но продуктивности, или как говорят в Амазоне, импакта больше.
Хотя, и нарисовалась одна проблема, с меня теперь менеджер мой никак не слезет: даёт все больше и больше крупных задачек. Интересно че хочет? Может быть думает где мой предел :))
https://youtu.be/c3pzcV9yi24
Хотя, и нарисовалась одна проблема, с меня теперь менеджер мой никак не слезет: даёт все больше и больше крупных задачек. Интересно че хочет? Может быть думает где мой предел :))
https://youtu.be/c3pzcV9yi24
YouTube
How I Have Time For Everything (From A Principal At Amazon)
Here's exactly how I am able to juggle all the things that are going on in my life. The ideas are relatively simple and practical, but you have to implement them in your life for them to work.
NEWSLETTER - Sign up to my free newsletter: https://alifeeng…
NEWSLETTER - Sign up to my free newsletter: https://alifeeng…
👍2🔥1
#interview #coding
В различных пабликах вижу вопросы типа: «когда мне дали задачку Х, я сразу решил задачку оптимальным способом. Что я мог сделать иначе/лучше?»
Во время интервью вы должны показать, что вы не просто умеете решать задачки, знаете алгоритмы и структуры данных, а что вы умеете применять правильные решения в нужных ситуациях, и без over-engineering.
Поэтому, прежде чем писать решение задачки, даже если оно простое, очень важно собрать информацию о задаче.
Часто задачку дают, не дав всю информацию до конца, и кандидат либо уточнит заранее, либо сделает собственные допущения - то есть, сделает то что надумал у себя а голове, а не то, что просит его собеседник. Для Миддлов и выше это красный флаг, если человек рвётся в бой.
Поэтому прежде чем предлагать решение, удостоверься, что понимаешь что нужно сделать. В идеале если сперва проговариваешь решение, прежде чем бросаешься писать код, и только потом пишешь код. Прежде чем писать код, так же желательно поговорить тест кейсы, чтобы удостовериться что решение покрывают крайние случаи, и уточнить что предлагаемая сложность допустима. После всех этапов выше, написание кода - дело техники. Может занять минут 5-10.
На интервью важно показать, что ты не просто решаешь задачки, а показать как ты решаешь технические проблемы: как собираешь требования, как проясняешь неясности, как дизайнишь решение, и как удостоверяешься, что решение точно работает. И только потом пишешь код.
Все это можно перевести на язык Лидерских принципов в Амазоне: Are right a lot, Deep Dive, Think Big, Earn trust, Customer Obsession, and etc.
Фреймворк по которому я работаю:
1. Сбор информации: уточняющиеся вопросы о задаче, о том где и как ее применяют, об ограничениях, размерах, и типах данных (int, star, negative positive, uppercase lowercase, punctuation, etc)
2. Поняв задачу в деталях, я предлагаю несколько тест кейсов, чтобы удостовериться наверняка, что я понял задачу точно. Я покрываю такие вопросы как какие данные приходят на вход и какие на выход, то есть как устроен API. В этом есть несколько плюсов: ты даешь возможность собеседнику подсказать тебе если ты что то недопонял и что ты ты точно понимаешь и осознаешь крайние случаи
3. Поняв задачу, включая тест кейсы, предлагаешь решения и их сложности, и проверяешь у собеседника, что это вписывается в его ожидания. Тем самым, показав свою зрелость, ты даёшь собеседнику возможность повысить тебе сложность раньше, и тем самым повысить свои шансы на то, что он тебя уже будет планировать на Bar Rasing level
4. Только после того как ты поймёшь, что ты понял задачу, написал тест кейсы, проговорил это все с интервьюером, и он дал тебе зелёный свет писать код, то только тогда можно писать код.
5. Следующий пункт очень важен: написав решение задачки, ты используешь выше-приведённые тест кейсы, чтобы прогнать их через своё решение, где шаг за шагом ты объясняешь значение каждой переменной и как они меняются. Это даёт сигнал собеседнику, что ты умеешь проверять свои решения и исправлять ошибки если таковы имеются.
Рекомендую решать литкод задачки, используя этапы выше, чтобы натренировать этот навык, и на самом интервью у вас все будет куда более естественно и гладко.
Удачи на интервью!
Вопросы пишите в комментариях.
В различных пабликах вижу вопросы типа: «когда мне дали задачку Х, я сразу решил задачку оптимальным способом. Что я мог сделать иначе/лучше?»
Во время интервью вы должны показать, что вы не просто умеете решать задачки, знаете алгоритмы и структуры данных, а что вы умеете применять правильные решения в нужных ситуациях, и без over-engineering.
Поэтому, прежде чем писать решение задачки, даже если оно простое, очень важно собрать информацию о задаче.
Часто задачку дают, не дав всю информацию до конца, и кандидат либо уточнит заранее, либо сделает собственные допущения - то есть, сделает то что надумал у себя а голове, а не то, что просит его собеседник. Для Миддлов и выше это красный флаг, если человек рвётся в бой.
Поэтому прежде чем предлагать решение, удостоверься, что понимаешь что нужно сделать. В идеале если сперва проговариваешь решение, прежде чем бросаешься писать код, и только потом пишешь код. Прежде чем писать код, так же желательно поговорить тест кейсы, чтобы удостовериться что решение покрывают крайние случаи, и уточнить что предлагаемая сложность допустима. После всех этапов выше, написание кода - дело техники. Может занять минут 5-10.
На интервью важно показать, что ты не просто решаешь задачки, а показать как ты решаешь технические проблемы: как собираешь требования, как проясняешь неясности, как дизайнишь решение, и как удостоверяешься, что решение точно работает. И только потом пишешь код.
Все это можно перевести на язык Лидерских принципов в Амазоне: Are right a lot, Deep Dive, Think Big, Earn trust, Customer Obsession, and etc.
Фреймворк по которому я работаю:
1. Сбор информации: уточняющиеся вопросы о задаче, о том где и как ее применяют, об ограничениях, размерах, и типах данных (int, star, negative positive, uppercase lowercase, punctuation, etc)
2. Поняв задачу в деталях, я предлагаю несколько тест кейсов, чтобы удостовериться наверняка, что я понял задачу точно. Я покрываю такие вопросы как какие данные приходят на вход и какие на выход, то есть как устроен API. В этом есть несколько плюсов: ты даешь возможность собеседнику подсказать тебе если ты что то недопонял и что ты ты точно понимаешь и осознаешь крайние случаи
3. Поняв задачу, включая тест кейсы, предлагаешь решения и их сложности, и проверяешь у собеседника, что это вписывается в его ожидания. Тем самым, показав свою зрелость, ты даёшь собеседнику возможность повысить тебе сложность раньше, и тем самым повысить свои шансы на то, что он тебя уже будет планировать на Bar Rasing level
4. Только после того как ты поймёшь, что ты понял задачу, написал тест кейсы, проговорил это все с интервьюером, и он дал тебе зелёный свет писать код, то только тогда можно писать код.
5. Следующий пункт очень важен: написав решение задачки, ты используешь выше-приведённые тест кейсы, чтобы прогнать их через своё решение, где шаг за шагом ты объясняешь значение каждой переменной и как они меняются. Это даёт сигнал собеседнику, что ты умеешь проверять свои решения и исправлять ошибки если таковы имеются.
Рекомендую решать литкод задачки, используя этапы выше, чтобы натренировать этот навык, и на самом интервью у вас все будет куда более естественно и гладко.
Удачи на интервью!
Вопросы пишите в комментариях.
👍17❤2
👍8
#amazon #leadership #principles #interview #behavioural
В этой статье очень неплохо описывают про поведенческую часть (aka Leadership Principles) в Амазон
Единственное дополнение наверное это в ответах нужно показать размер/сложность/scope задачи, которая будет соответствовать уровню на который вы подаетесь. Если ВКРАТЦЕ:
L4 - делаю сам маленькие компоненты очень хорошо, учусь влиять на команду
L5 - делаю сам средние компоненты, влияю на Команду, учусь влиять на другие команды, учусь создавать видение для своей
L6 - лидирую крупные/сложные задачи (по меркам сложности для одной команды), требующие нескольких человек для реализации и взаимодействия с другими командами. Создаю техническое видение продукта и работаю на bottlenecks в достижении намеченных целей
https://www.levels.fyi/blog/amazon-leadership-principles.html
В этой статье очень неплохо описывают про поведенческую часть (aka Leadership Principles) в Амазон
Единственное дополнение наверное это в ответах нужно показать размер/сложность/scope задачи, которая будет соответствовать уровню на который вы подаетесь. Если ВКРАТЦЕ:
L4 - делаю сам маленькие компоненты очень хорошо, учусь влиять на команду
L5 - делаю сам средние компоненты, влияю на Команду, учусь влиять на другие команды, учусь создавать видение для своей
L6 - лидирую крупные/сложные задачи (по меркам сложности для одной команды), требующие нескольких человек для реализации и взаимодействия с другими командами. Создаю техническое видение продукта и работаю на bottlenecks в достижении намеченных целей
https://www.levels.fyi/blog/amazon-leadership-principles.html
Levels.fyi Blog
Amazon Leadership Principles: Questions and Interview Tips
Get prepared for your Amazon interview by studying their 14 Leadership Principles
👍6