В этой серии постов буду делиться о своей жизни в Лондоне как будто это мой дневник.
Хэштег будет как всегда такой #zufar_uk_life.
Фоточки и видосы можете смотреть в моей блоге о жизни - @zufar_life_blog.
Я переехал из Москвы в Лондон и начал считайте все с начала (с чистого листа). Я могу сказать что я до сих пор не знаю правильный ли я сделал выбор или нет. Вот подумайте что я лучшие года моей жизни с 25 до 33 лет я инвестирую в те вещи которые может быть даже не выстрелят. И это мне не дает покоя.
Ведь уровень моей жизни при переезде упал почти в 2 раза. А те перспективы, амбиции что я ожидал реализовать в Англии я до сих пор толком не реализовал за почти 3 года жизни.
Без денег (нормальные деньги от 120к фунтов в год или от 7к фунтов в месяц) жить в Англии нет смысла. Ни мне ни моей жене тут не оч комфортно. Мы даже оба друзей, хобби то толком не нашли. Об это поподробнее сделаю отдельный пост.
И естественно я задаюсь вопросами:
- "стоит ли мне еще жить в Англии?"
- "может вернуться в Москву?"
- "может поехать вообще в другую страну?"
и тд и тп.
Желание получить гражданство (паспорт) Великобритании как моя несгораемая до конца моих дней
В Англии находятся оч много мировых компаний (бигтехи) тот же FAANG. Множество стартапов единорогов. Во всех этих компаниях можно сделать прекрасную карьеру. Заработать куча денег. Научиться крутым технологиям и подходам. Вообще реализоваться как айтишник!
В Англии почти каждый айтишник хочет или уже делает свой стартап. Это прям обязательная тема для разговора в компании Русскоговорящих айтишников. Такое общество прям подталкивает делать что то свое. И я естественно делаю шаги в этом направлении. Это считайте моя мечта - "создать своей стартап который будет приносить мне от 10 тыс фунтов пассивного дохода который я смогу тратить на свою жизнь".
Тут даже комментировать не буду. Я дитя капитализма. И мне хочется все больше, круче и не просто чтобы у меня, а чтобы больше чем у других. А Англия лучшее место чтобы реализовать свои амбиции. Ну это на текущий момент моего развития. Надеюсь я стану более зрелым и этот пункт уйдет.
Круто что в Лондоне есть доступ ко всем концертам, развлек и науч мероприятиям. Вообще если в Мире что то интересное случается. Скорее всего оно будет в Лондоне. Участвовал ли я в чем то?
Ну вот в City, Univercity of London преподавал. А так особо ничего не посещал кроме путешествий по стране и Европе в целом.
-------
Что скажете?
Поделитесь своим мнением в чате.
#zufar_uk_life
Please open Telegram to view this post
VIEW IN TELEGRAM
Хочу продемонстрировать вам неочевидный прием решения алгоритмических задач на основе этой довольно простой задачки - нахождения середины списка.
В качестве входных данных вашей функции у вас есть голова односвязного списка Head. Вам нужно найти середину списка. То есть функция должна вернуть обьект узла, который является серединой списка.
Узел имеет значение value типа int (целое число). А также ссылку на след узел списка next. Ну и конечно конструктор для создания нового обьекта узла.
public static class LinkedList {
public int value;
public LinkedList next;
public LinkedList(int value) {
this.value = value;
this.next = null;
}
}
Как в жизни, например, вы бы искали вагон, который является серединой поезда?
Ну, вы бы скорее всего посчитали сколько в поезде всего вагонов.
Как понять какой номер вагона является серединой поезда из 10 вагонов?
Правильно. 10 разделить на 2. Получится 5. То есть нам нужен 5 по счету вагон.
Как мы его найдем?
Будем ввести счет с 1 вагона до 5. То есть мы глазами смотрим вначале на один, потом другой вагон, а в голове увеличиваем счетчик вагонов, пока счетчик станет равен 5. Так мы найдем середину поезда.
Что вы видите? Я создал счетчик "переменную listLength", который считает длину всего списка.
Затем я нашел номер узла, который является серединой списка
int middleNodeIdx = listLength / 2;
. И затем я прошелся еще раз по списку, увеличивая счетчик currentNodeIdx до тех пор, пока он не будет равен middleNodeIdx. После чего я возвращаю currentNode, который как раз и является серединой списка.
public LinkedList middleNode(LinkedList head) {
int listLength = 0;
LinkedList currentNode = head;
while (currentNode != null) {
currentNode = currentNode.next;
listLength++;
}
int middleNodeIdx = listLength / 2;
int currentNodeIdx = 0;
currentNode = head;
while (currentNode != null &&
currentNodeIdx != middleNodeIdx) {
currentNode = currentNode.next;
currentNodeIdx++;
}
return currentNode;
}
Я хочу обратить ваше внимание, что каков бы не был размер списка длиной "N", в алгоритме всегда будет 2 цикла for. То есть мы всегда обойдем список 2 раза. Ни больше ни меньше.
А что это значит?
Да то, что ни смотря на 2 цикла, сложность алгоритма по времени будет линейной O(n) time, а по памяти вообще O(1) space, где n - длина списка.
Мы можем не усложняя себе жизнь, просто 1 раз обойти список/массив/строку и сделать какую-либо операцию, которая нам нужна. Выяснить что то и что то посчитать. Сохранить результаты этого 1го обхода в какой-то переменной, а потом можем сделать уже 2ой обход и сложность все также будет линейной!
Не пренебрегайте таким приемом. Я его недооценивал. А он из за своей очевидности может заставить вас думать, что сложность алгоритма квадратичная.
Есть у этой задачки и другой более интересный алгоритм решения «slow and fast pointers». Но о нем я расскажу в другом посте.
-------
Что скажете?
Поделитесь своим мнением в чате.
#ZufarExplainedApproaches
Please open Telegram to view this post
VIEW IN TELEGRAM
Книжки часть 6
❗️ ❗️ ❗️ ❗️
Если вы не понимаете о чем этот пост, то смотрите сюда -> https://www.tg-me.com/zufarexplained/267
‼️ ‼️ ‼️ ‼️
На этот раз книжки по алгоритмам и систем дизайну.
❗️ ❗️ ❗️
Все книжки должны быть доступны на сайте Oreilly.
-------
Читали эти книжки?
Как вообще относитесь к книжкам по айти в целом?
💟 💟
🚩 Сохраняйте пост в сохраненки и репостите друзьям!📎
#ZufarBooks
Если вы не понимаете о чем этот пост, то смотрите сюда -> https://www.tg-me.com/zufarexplained/267
На этот раз книжки по алгоритмам и систем дизайну.
Все книжки должны быть доступны на сайте Oreilly.
-------
Читали эти книжки?
Как вообще относитесь к книжкам по айти в целом?
#ZufarBooks
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Конечно же через видосы на YouTube.
Забирайте набор совершенно бесплатных ресурсов, где вы можете познакомиться с разбором 45 самых популярных задач, которые встречаются на собеседованиях по System Design в компании уровня Google!
Встречайте этот волшебный список:
1) Design URL Shortener like TinyURL:
https://www.youtube.com/watch?v=fMZMm_0ZhK4
2) Design Text Storage Service like Pastebin:
https://www.youtube.com/watch?v=josjRSBqEBI
3) Design Netflix:
https://www.youtube.com/watch?v=psQzyFfsUGU
4) Design Youtube:
https://www.youtube.com/watch?v=jPKTo1iGQiE
5) Design Instagram:
https://www.youtube.com/watch?v=VJpfO6KdyWE
6) Design Twitter:
https://www.youtube.com/watch?v=wYk0xPP_P_8
7) Design E-commerce Store like Amazon:
https://www.youtube.com/watch?v=EpASu_1dUdE
8) Design WhatsApp:
https://www.youtube.com/watch?v=vvhC64hQZMk
9) Design Facebook:
https://www.youtube.com/watch?v=9-hjBGxuiEs
10) Design File Sharing System like Dropbox:
https://www.youtube.com/watch?v=U0xTu6E2CT8
11) Design Autocomplete for Search Engines:
https://www.youtube.com/watch?v=us0qySiUsGU
12) Design Google Search:
https://www.youtube.com/watch?v=CeGtqouT8eA
13) Design Airbnb:
https://www.youtube.com/watch?v=YyOXt2MEkv4
14) Design Tinder:
https://www.youtube.com/watch?v=tndzLznxq40
15) Design Stock Exchange system:
https://www.youtube.com/watch?v=dUMWMZmMsVE
16) Design Google Maps:
https://www.youtube.com/watch?v=jk3yvVfNvds
17) Design Distributed Web Crawler:
https://www.youtube.com/watch?v=BKZxZwUgL3Y
18) Design Location Based Service like Yelp:
https://www.youtube.com/watch?v=M4lR_Va97cQ&t=831s
19) Design Uber:
https://www.youtube.com/watch?v=umWABit-wbk
20) Design Ticket Booking System like BookMyShow:
https://www.youtube.com/watch?v=lBAwJgoO3Ek
21) Design Spotify:
https://www.youtube.com/watch?v=_K-eupuDVEc
22) Design Food Delivery App like Doordash:
https://www.youtube.com/watch?v=iRhSAR3ldTw
23) Design Zoom:
https://www.youtube.com/watch?v=G32ThJakeHk
24) Design Shopify:
https://www.youtube.com/watch?v=lEL4F_0J3l8
25) Design Google Docs:
https://www.youtube.com/watch?v=2auwirNBvGg
26) Design TikTok:
https://www.youtube.com/watch?v=Z-0g_aJL5Fw
27) Design Reddit:
https://www.youtube.com/watch?v=KYExYE_9nIY
28) Design Code Deployment System:
https://www.youtube.com/watch?v=q0KGYwNbf-0
29) Design Distributed Message Queue like Kafka:
https://www.youtube.com/watch?v=iJLL-KPqBpM
30) Design Distributed Cloud Storage like S3:
https://www.youtube.com/watch?v=UmWtcgC96X8
31) Design Distributed Job Scheduler:
https://towardsdatascience.com/ace-the-system-design-interview-job-scheduling-system-b25693817950
32) Design Rate Limiter:
https://www.youtube.com/watch?v=mhUQe4BKZXs
33) Design Distributed Locking Service:
https://www.youtube.com/watch?v=v7x75aN9liM
34) Design Distributed key-value store:
https://www.youtube.com/watch?v=rnZmdmlR-2M
35) Design Distributed Cache:
https://www.youtube.com/watch?v=iuqZvajTOyA
36) Design Notification Service:
https://www.youtube.com/watch?v=CUwt9_l0DOg
37) Design Metrics & Logging Service:
https://www.youtube.com/watch?v=kIcq1_pBQSY
38) Design Content Delivery Network (CDN):
https://www.youtube.com/watch?v=8zX0rue2Hic
39) Design Parking Garage:
https://www.youtube.com/watch?v=NtMvNh0WFVM
40) Design Flight Booking System:
https://www.youtube.com/watch?v=qsGcfVGvFSs
41) Design Online Code Editor:
https://www.youtube.com/watch?v=07jkn4jUtso
42) Design Vending Machine:
https://www.youtube.com/watch?v=D0kDMUgo27c
43) Design Authentication System:
https://www.youtube.com/watch?v=uj_4vxm9u90
44) Design Payment System:
https://www.youtube.com/watch?v=olfaBgJrUBI
45) Design UPI:
https://www.youtube.com/watch?v=QpLy0_c_RXk
Если начнете разбираться со всем этим, то просто офигеете от того, как много всего узнаете за очень короткий срок!
@zufarexplained
#ZufarSharedUsefulLinks
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашел очень прикольный вебсайт. Туда вставляешь название тг канала и AI бот читает посты и генерит очень смешную рецензию в виде прожарки как в программе на ТНТ. Я попробовал со своим каналом @zufarexplained. И вот что получилось внизу.
О, ребята, давайте поговорим о канале @zufarexplained. Это как если бы ваш друг, который застрял в 2012 году, вдруг решил стать гуру программирования. Он собрал все ссылки на YouTube, как будто это его личная коллекция, и теперь думает, что он открыл Америку.
Пост о System Design собеседованиях — тут наш друг делится ссылками на видео о дизайне, которые, похоже, он сам не смотрел. Зачем тратить время на изучение, когда можно просто скинуть ссылки и сказать: “Вот, учитесь, лузеры!”? Это как если бы я сказал: “Вот вам меню в ресторане, теперь готовьте сами!” 🤦♂️
Книжки по алгоритмам — тут он пытается показать свою интеллектуальность, но на самом деле выглядит как человек, который купил все книги на O’Reilly и теперь думает, что это делает его умнее. “Как вы относитесь к книжкам по айти?” — как будто кто-то в 2024 году будет сидеть с бумажной книгой, когда все уже давно на YouTube. Да, чувак, книги — это круто, но это не 1999 год. 📚😂
Пост о жизни в Лондоне — о, это просто шедевр! Он рассказывает о том, как переехал в Лондон и теперь бедствует, как будто это какая-то драма на Оскар. “Я не знаю, правильно ли я поступил.” Слушай, если ты не можешь решить, где тебе лучше, может, просто вернись к маме? 🤷♂️
Алгоритмическая задача о середине списка — это просто улет! Он пытается объяснить алгоритм, используя пример с поездами, но в итоге выглядит так, будто сам запутался в своих объяснениях. “Как найти середину поезда? Просто посчитай!” Серьезно? Если бы все было так просто, программисты не нужны были бы, а все сидели бы на диване и считали поезда. 🚂💨
В общем, @zufarexplained — это как если бы ваш дядя, который не знает, что такое TikTok, решил поделиться своими “глубокими” мыслями о технологиях. Если вы хотите смеяться, читайте его канал, но не ждите, что там найдете хоть что-то полезное. 😂💔
Попробуйте прожарить свои или чужие каналы.
https://platform.intellbot.ai/forms/66cd8c486d90a0d4aa11d169
Ржачно же вышло? 🤣🤣🤣
Поделитесь своим мнением в чате.
#ZufarMems
Please open Telegram to view this post
VIEW IN TELEGRAM
ZufarExplained IT pinned «🔥 Как готовиться к System Design собесу бесплатно?🔥 Конечно же через видосы на YouTube. ❗️ ❗️ ❗️ ❗️ Забирайте набор совершенно бесплатных ресурсов, где вы можете познакомиться с разбором 45 самых популярных задач, которые встречаются на собеседованиях по System…»