Front-End Engineer Blog
4.99K subscribers
36 photos
101 links
Hi, my name is Evgenii Ray. I'm SWE at Meta. Here is my place for posting notes about UI, career and personal development

Welcome on board 🚀
Contact: @evgeniiray
Languages: English, Russian
Download Telegram
Channel created
Channel photo updated
Сегодня начал первую неделю курса принстона по алгоритмам. Единственный пока минус курса - язык программирования. К сожалению, курс привязан только к Java. Выполнить ассайменты на своем любимом языке не получится. Я не писал на джаве почти 2 года, но в целом полезно прослезится и тряхнуть старяной, особенно после JS и TS 🙂

План на неделю:
1. Изучить теорию по Union Find
2. Заимлементить DS c описанными подходами на Java
3. Просмотреть видосы по данной теме от гугл инжинера
4. Выполнить финальный ассаймент
5. Выжить и дальше вставать в 6 утра

Полезные ссылки стараюсь добавлять в цель на smartprogress.

Stay Tuned 🙏
2
2 день подготовки - 6.30 am 🙊

7.00 am - 10.00 am - Закончил еще одну секцию курсеры по Union-Find. Немного пришлось подумать про Weightening и Path Compression. В голове не сразу улегся подход.

Понял, чтобы лучше осваивать топики 🙄:

1) Имлементим каждый подход самостоятельно, не смотрим на решение, пока совсем не застряли до полного отчаяния 👨‍💻
2) Полезно просматривать уже прочитанный материал. Легче дается изученное. Даже если что-то сразу не получается, на следующий день идет на много проще.
3) Делать заметки - полезно. Особенно, когда их смотришь на следующий день

Завтра:
1) Повторю весь материал
2) Посмотрю видосики от гугл инжинера по Union-FInd
3) Попробую начать недельный ассаймент на курсере

Stay Tuned 🙏
Иллюстрация, я и ассаймент курсеры с первого подхода:
День 4 - Первый ассаймент 👨‍💻

Начал привыкать вставать в 6.30. Хотя еще тяжело 🙄. Сегодня добрался до ассаймента первой недели на курсере. За 2 часа получилось сделать первую версию, которая конечно же не прошла все грейдер чеки 🤔.

Следующий шаг:
1) Таки исправить задание, чтобы пройти минимум 95% проверок
2) Повторить материал и чекнуть видео гугл инжинера на тему Union-Find
День 5 - Конец первого ассаймента 🤔

Закончил править тесты для первого ассаймента на курсере. Поэтому позволю себе немного рефлексии на тему топика. Чтобы успешно выполнить задание первой недели - Percolation Problem, надо:

1) Максимально разобраться в такой структуре как Union Find. Разобрать каждый подход и обязательно заимплементить (кэп 🙂). Особенно взвешивание (weightening) и компрессию путей (Path Compression)👨‍💻
Поможет:
-> Видяшки от гугл инжинера. Отлично дополняют теорию первой недели. Плюс визуально приятно воспринимаются
https://www.youtube.com/watch?v=ibjEGG7ylHk&list=PLDV1Zeh2NRsBI1C-mR6ZhHTyfoEJWlxvq

2) Пробежать конспект, который записали по первой неделе

3) Заиимплементить первую версию API. Затем глянуть тесты, игнорируя кейсы с backwash problem. Пофиксить все и далее начинать разбираться с backwash. (о ней ниже) 👇

4) Есть проблема , с которой обязательно столкнетесь решаю задачу по Percolation. Называется “backwash”. Суть в том, что когда система перколирует - (нижняя граница связывается с верхней), элементы, даже закрытые и не соединные с открытыми компнентами, становятся заполненными (full site), из-за того, что присоединены к нижней вирутальной границе. Картиночка ниже.

Есть несколько решений данной проблемы:
1) 2ой инстанс UF (простое) 👍
2) Битовое состояние клетки (сложное, но более эффективное)💪

Оба способа дадут 100 баллов. Удачи в нелегком пути !)

А мы двигаемся дальше.

Напоминаю, что я еще веду цель вот тут, там только инфа по собесу:
https://smartprogress.do/goal/374957/

Там я пытаюсь структуризировать весь материал в ходе подготовки. Надеюсь , в итоге потом можно будет собрать “план”, по которому можно готовиться.

Stay Tuned 🙏
Ну вот и закончилась первая неделя курса алгоритмов на курсере 🎉. Сегодня разобрал тему Analysis of algorithms: Time and Space complexity.

На самом деле, это очень важный топик и хорошо, что он разбирается на первой неделе курса. Но, к сожалению, мне кажется информация , которая представлена в курсе, немного суховатая и очень теоритическая 🤔. Не хватает практических примеров, чтобы закрепить материал. Хорошо, что нашел прекрасного чувака, который на пальцах объясняет топик, как правильно пользоваться натацией Big O. Что такое lower and upper boundary, и почему Big Theta и Bit Omega нельзя применять к оценке worst and best case

Videos 1-16 - https://www.youtube.com/channel/UCZCFT11CWBi3MHNlGf019nw/playlists

Следующие шаги:
1) Повторить пройденный материал, решить 2 медиум задачки с литкода по union-find
2) Подготовиться ко второй неделе курса, отдохнуть и в бой 💪

Stay Tuned 🙏
Сегодня, решил сделать небольшой перерыв и выбраться с друзьями покататься на борде. Погода в Питере и снег, не позволяют сидеть дома 🏂

Очень помогает перезагрузить мозг и восстановить силы.

План на завтра 🙃 :
1) Повторить материал по Algorithm Analysis
2) Закрыть первую неделю плана
3) Подготовить часть материала к фронтендовой конфе в СПб
4) Решить одну задачку по Union Find с плана следующей недели, если останется время