📹 Все о массивах и слайсах в Go в одном видео
Таймкоды:
00:00 - Введение
00:47 - Устройство массивов в Go
01:40 - Работа с массивами в Go
10:00 - Перемещение массива в стеке
11:29 - Итерация по массивам в Go
15:11 - Где аллоцируются массивы в Go
17:22 - Педедача массива в функцию
18:16 - Слайсы в Go
21:34 - Реаллокация слайса в Go
24:45 - Резервирование памяти под слайс
25:44 - Создание слайса без инициализации
27:38 - Модификация строк в Go
28:35 - Приведение слайсов в строки и обратно без копирования
30:13 - Передача слайса в функцию
31:12 - Итерация по слайсам в Go
33:55 - Оптимизация итерации по слайсам в Go
35:42 - Получение слайсов в Go
42:40 - Получение слайса из массива в Go
43:15 - Конвертация слайса в массив в Go
44:15 - Конвертация слайса в указатель на массив в Go
45:02 - Указатель на нулевой массив в Go
46:18 - Удаление из конца слайса в Go
... (еще почти час различных тем по массивам и слайсам)
◾️Смотреть в YouTube
◾️Смотреть в VK Видео
◾️Смотреть в Дзен
◾️Смотреть в Rutube
Таймкоды:
00:00 - Введение
00:47 - Устройство массивов в Go
01:40 - Работа с массивами в Go
10:00 - Перемещение массива в стеке
11:29 - Итерация по массивам в Go
15:11 - Где аллоцируются массивы в Go
17:22 - Педедача массива в функцию
18:16 - Слайсы в Go
21:34 - Реаллокация слайса в Go
24:45 - Резервирование памяти под слайс
25:44 - Создание слайса без инициализации
27:38 - Модификация строк в Go
28:35 - Приведение слайсов в строки и обратно без копирования
30:13 - Передача слайса в функцию
31:12 - Итерация по слайсам в Go
33:55 - Оптимизация итерации по слайсам в Go
35:42 - Получение слайсов в Go
42:40 - Получение слайса из массива в Go
43:15 - Конвертация слайса в массив в Go
44:15 - Конвертация слайса в указатель на массив в Go
45:02 - Указатель на нулевой массив в Go
46:18 - Удаление из конца слайса в Go
... (еще почти час различных тем по массивам и слайсам)
◾️Смотреть в YouTube
◾️Смотреть в VK Видео
◾️Смотреть в Дзен
◾️Смотреть в Rutube
🔥43👍18❤5🤩2💯2⚡1🎉1
💭 Продуктивность != эффективность
Я периодически провожу консультации и сегодня общался с разработчиком, который хотел развиваться дальше в программировании. Он очень много всего делал, был крайне продуктивным, но не эффективным... Потому что то, что он делал - не приносило толком никакого результата! Он делал много всего, но не то, что нужно было ему для текущего развития в программировании.
После встречи я решил порефлексировать над собой - эффективен ли я или просто продуктивен. Мне пришлось взять лист бумаги, выписать то, чем я обычно занимаюсь ежедневно, затем рядом написать свои планы и цели. В итоге, несколько вещей, которыми я занимаюсь регулярно, никак не были связаны с этими планами и целями! Оказалось, что я кое-где я был продуктивен, но не эффективен. Действительно, выполнял некоторые действия регулярно, но наверное зря...
Решил просто поделиться этой ситуацией. Кажется, что иногда очень важно возвращаться через какое-то время к нашим планам, чтобы понять - делаем ли мы то, что нас приближает к ним или просто много учимся/работаем.
Я периодически провожу консультации и сегодня общался с разработчиком, который хотел развиваться дальше в программировании. Он очень много всего делал, был крайне продуктивным, но не эффективным... Потому что то, что он делал - не приносило толком никакого результата! Он делал много всего, но не то, что нужно было ему для текущего развития в программировании.
После встречи я решил порефлексировать над собой - эффективен ли я или просто продуктивен. Мне пришлось взять лист бумаги, выписать то, чем я обычно занимаюсь ежедневно, затем рядом написать свои планы и цели. В итоге, несколько вещей, которыми я занимаюсь регулярно, никак не были связаны с этими планами и целями! Оказалось, что я кое-где я был продуктивен, но не эффективен. Действительно, выполнял некоторые действия регулярно, но наверное зря...
Решил просто поделиться этой ситуацией. Кажется, что иногда очень важно возвращаться через какое-то время к нашим планам, чтобы понять - делаем ли мы то, что нас приближает к ним или просто много учимся/работаем.
👍54🔥10❤3💯2✍1⚡1😱1😍1
🚀 ПАТТЕРНЫ ОТКАЗОУСТОЙЧИВОСТИ МИКРОСЕРВИСОВ НА GO
📆 14 сентября 18:00 по МСК пройдет бесплатный открытый урок по Микросервисам, как в BigTech от Team Lead из Ozon (ex-декан Route 256)!
На открытом уроке:
- научишься разрабатывать политики повторных попыток (retry) и влиять с их помощью на стабильность микросервисов;
- разберешься в рисках, связанных с жесткими таймаутами, и поймешь, как они влияют на выполнение целевых показателей SLO;
- научишься снижать время отклика с помощью hedge-запросов;
- научишься ограничивать число запросов (ratelimit) и предотвращать с помощью этого нагрузки;
- научишься писать circuit breaker, предотвращать с его помощью каскадные отказы и защищать систему от частичных сбоев;
- задашь интересующие вопросы TeamLead'у из Ozon.
Регистрация по ссылке
📆 14 сентября 18:00 по МСК пройдет бесплатный открытый урок по Микросервисам, как в BigTech от Team Lead из Ozon (ex-декан Route 256)!
На открытом уроке:
- научишься разрабатывать политики повторных попыток (retry) и влиять с их помощью на стабильность микросервисов;
- разберешься в рисках, связанных с жесткими таймаутами, и поймешь, как они влияют на выполнение целевых показателей SLO;
- научишься снижать время отклика с помощью hedge-запросов;
- научишься ограничивать число запросов (ratelimit) и предотвращать с помощью этого нагрузки;
- научишься писать circuit breaker, предотвращать с его помощью каскадные отказы и защищать систему от частичных сбоев;
- задашь интересующие вопросы TeamLead'у из Ozon.
Регистрация по ссылке
🔥14👍6❤4⚡1🥰1💯1💘1
📹 Недавно ходил на подкаст к Денису Евтееву, за несколько часов удалось много чего обсудить! Говорили про работу в больших компаниях, карьеру в IT, обучение и личное развитие...
📌 Посмотреть можно по ссылке:
https://youtu.be/UQZ5_iy8v1c
📌 Посмотреть можно по ссылке:
https://youtu.be/UQZ5_iy8v1c
🔥18👍9❤3⚡2🤩1🤡1
📝 Делюсь планами по контенту на моем YouTube канале
◾️в октябре планирую сделать большое видео об аллокаторе Go, как обычно, начиная с основ (алгоритмы распределения памяти, свои аллокаторы, malloc, tcmalloc и вот это вот все) и закачивая тем, как Go аллоцирует память и какие там есть особенности и нюансы.
◾️в декабре-феврале планирую сделать большое видео о сборщике мусора Go, начиная с базы (виды сборщиков мусора, parallel vs concurrent GC, поколения участков памяти и многое другое) и закачивая тем, как устроен GC в Go.
Это, что касается больших видео - потому что для них потребуется много времени для подготовки... Плюс еще будет несколько "небольших" видео о различных темах в программировании!
📌 В комментария можно писать предложения на счет будущих видео, возможно, какие-то из них я запланирую на следующий год!
◾️в октябре планирую сделать большое видео об аллокаторе Go, как обычно, начиная с основ (алгоритмы распределения памяти, свои аллокаторы, malloc, tcmalloc и вот это вот все) и закачивая тем, как Go аллоцирует память и какие там есть особенности и нюансы.
◾️в декабре-феврале планирую сделать большое видео о сборщике мусора Go, начиная с базы (виды сборщиков мусора, parallel vs concurrent GC, поколения участков памяти и многое другое) и закачивая тем, как устроен GC в Go.
Это, что касается больших видео - потому что для них потребуется много времени для подготовки... Плюс еще будет несколько "небольших" видео о различных темах в программировании!
📌 В комментария можно писать предложения на счет будущих видео, возможно, какие-то из них я запланирую на следующий год!
👍52🔥28❤5💯2⚡1🤩1🙏1
📰 Несколько недель назад прокачивал Soft Skills на тренинге у Радислава Гандапаса
Тренинг назывался "Заяви о себе". На нем было много материалов про коммуникации и нетворкинг, а также очень много практики - в общем, для меня было очень полезно!
Кстати, у Радислава в декабре еще будет тренинг "Лидерские стратегии", на который тоже собираюсь сходить (не реклама, а личная рекомендация).
Тренинг назывался "Заяви о себе". На нем было много материалов про коммуникации и нетворкинг, а также очень много практики - в общем, для меня было очень полезно!
Кстати, у Радислава в декабре еще будет тренинг "Лидерские стратегии", на который тоже собираюсь сходить (не реклама, а личная рекомендация).
🤡26🔥24👎15👍9😭9🤔2🤣2😁1💯1
👨💻 Вроде бы дженерики и есть в Go, а вроде бы их и нет...
Когда мне приходится что-то пометапрограммировать на Go (происходит это не часто), я обычно спотыкаюсь об один из этих сценариев... И обычно после этого мне хочется брать в руки С++
Кажется, что дженерики какие-то неполные или недоработанные, но наверное, смысл в этом есть! Иначе можно было писать действительно сложные и трудные штуки на Go, как на С++ (что противоречит концепции Go)
Когда мне приходится что-то пометапрограммировать на Go (происходит это не часто), я обычно спотыкаюсь об один из этих сценариев... И обычно после этого мне хочется брать в руки С++
Кажется, что дженерики какие-то неполные или недоработанные, но наверное, смысл в этом есть! Иначе можно было писать действительно сложные и трудные штуки на Go, как на С++ (что противоречит концепции Go)
😁15👍9🔥5❤2👎1
📰 Прошел study plan по графам на LeetCode
План изучения хорошо построен, постепенно тебя знакомит с графами. Важно сказать, что изучение графов происходит не на примере реализации алгоритмов, а на примере реализации практических задач с использованием этих самых алгоритмов (что интересно, как по мне).
Например, такие практические задачи, как:
- Поиск критических соединений в сети
- Планирование расписания курсов
- Поиск самого дешевого маршрута с пересадками
- Соединение городов дорогами с минимальной стоимостью
- Поиск ближайшего выхода из лабиринта
В общем, рекомендую, сейчас на очереди study plan по динамическому программированию!
План изучения хорошо построен, постепенно тебя знакомит с графами. Важно сказать, что изучение графов происходит не на примере реализации алгоритмов, а на примере реализации практических задач с использованием этих самых алгоритмов (что интересно, как по мне).
Например, такие практические задачи, как:
- Поиск критических соединений в сети
- Планирование расписания курсов
- Поиск самого дешевого маршрута с пересадками
- Соединение городов дорогами с минимальной стоимостью
- Поиск ближайшего выхода из лабиринта
В общем, рекомендую, сейчас на очереди study plan по динамическому программированию!
🔥34👍12👏3🎉2❤1
👨💻 В продолжение к предыдущему посту о дженериках в Go - решил углубиться в них и попробовать повоспроизводить плюсовые паттерны в Go
Не все получается, но например CRTP (Curiously Recurring Template Pattern) в кавычках наколдовать в Go можно, поэтому миксинами в Go можно пользоваться вполне успешно!
Не все получается, но например CRTP (Curiously Recurring Template Pattern) в кавычках наколдовать в Go можно, поэтому миксинами в Go можно пользоваться вполне успешно!
🔥15👍8🤯2🤔1🤝1
Forwarded from KOTELOV
Media is too big
VIEW IN TELEGRAM
Почти год назад к нам на подкаст заглянул Вова Балун. За год он успел стать тимлидом в Яндексе и продолжал развивать собственную школу для айтишников 🔥
Кстати, Вова получил оффер в Яндекс сразу после нашего первого подкаста. Это была одна из его целей, но вскоре понял, что это не то, чего он хотел. Вот и выясним на подкасте, что пошло не так
Обсудили все, что случилось за этот год:
✨ Что случилось в Яндексе и какой вывод сделал после тимлидства
✨ Почему он решил уехать из России и почему вернулся
✨ Как теперь он зарабатывает и почему это не совсем айти
Лампово поговорили об амбициях, ситуации с наймом и жизни айтишника в 2024 году
👀 смотреть https://go.kotelov.com/youtube_balun
👀 смотреть https://go.kotelov.com/vk_balun
📹 смотреть https://go.kotelov.com/rutube_balun
🎙 или слушай на Mave https://go.kotelov.com/mave_balun
Кстати, Вова получил оффер в Яндекс сразу после нашего первого подкаста. Это была одна из его целей, но вскоре понял, что это не то, чего он хотел. Вот и выясним на подкасте, что пошло не так
Обсудили все, что случилось за этот год:
Лампово поговорили об амбициях, ситуации с наймом и жизни айтишника в 2024 году
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍7❤4🤡3❤🔥1🤩1💩1🏆1
📰 GetCourse очень хорош с точки зрения функциональности, но крайне плох с точки зрения дизайна...
Не так давно, мы решили кастомизировать GetCourse под себя, чтобы он был в едином стиле школы - дизайн основных страниц уже утвержден (на картинках GetCourse до и после), сейчас уже идет верстка...
У GetCourse очень много разных ограничений на кастомизации, не все получится сделать так, как хочется. Тем не менее, будет намного лучше, чем стандартный дизайн GetCourse!
Не так давно, мы решили кастомизировать GetCourse под себя, чтобы он был в едином стиле школы - дизайн основных страниц уже утвержден (на картинках GetCourse до и после), сейчас уже идет верстка...
У GetCourse очень много разных ограничений на кастомизации, не все получится сделать так, как хочется. Тем не менее, будет намного лучше, чем стандартный дизайн GetCourse!
🔥23👍7🤩4❤1👏1
💭 Мне бывает иногда очень трудно креативить, например когда пишешь какой-то текст, создаешь презентацию или программируешь решение для нетривиальной задачи. В такие моменты иногда себя сравниваю с писателями или художниками, которым так часто необходима муза…
Чтобы быть в креативном состоянии или поддерживать у себя ту самую музу, я обычно включаю определенную музыку и часто меняю локации. Например, час что-то делаю в одной комнате, затем перехожу в кухню на час, затем обратно, а иногда еще и в соседние кофейни выхожу специально для смены обстановки.
❓Но так или иначе не всегда получается достигать крутого состояния для креативной деятельности, может быть у вас есть какие-нибудь лайфхаки / практики / привычки, которые вы используете для этого?
Чтобы быть в креативном состоянии или поддерживать у себя ту самую музу, я обычно включаю определенную музыку и часто меняю локации. Например, час что-то делаю в одной комнате, затем перехожу в кухню на час, затем обратно, а иногда еще и в соседние кофейни выхожу специально для смены обстановки.
❓Но так или иначе не всегда получается достигать крутого состояния для креативной деятельности, может быть у вас есть какие-нибудь лайфхаки / практики / привычки, которые вы используете для этого?
👍16🔥4👨💻3
⚙️ Жизненный цикл памяти в программах на Go состоит из нескольких этапов - необходимый объем память сначала выделяется, затем используется и после этого освобождается, когда больше не нужен. Многие достаточно хорошо знакомы с тем, как и когда происходит освобождение памяти в Go, но не все понимают, как происходит процесс выделения памяти в Go…
📆 12 октября 18:00 по МСК пройдет бесплатный открытый урок, посвящённый внутреннему устройству аллокатора Go.
На открытом уроке:
- изучишь различные алгоритмы распределения памяти
- поймешь, где и почему аллокатор Go аллоцирует объекта
- узнаешь, почему аллокация объектов в стеке работает быстрее, чем в куче
- разберешься с внутренним устройством аллокатора Go
- познакомишься с пулами объектов и аренами
- разберешься с устройством malloc и tcmalloc
Регистрация по ссылке
📆 12 октября 18:00 по МСК пройдет бесплатный открытый урок, посвящённый внутреннему устройству аллокатора Go.
На открытом уроке:
- изучишь различные алгоритмы распределения памяти
- поймешь, где и почему аллокатор Go аллоцирует объекта
- узнаешь, почему аллокация объектов в стеке работает быстрее, чем в куче
- разберешься с внутренним устройством аллокатора Go
- познакомишься с пулами объектов и аренами
- разберешься с устройством malloc и tcmalloc
Регистрация по ссылке
👍25🔥7❤5⚡1
📹 Секреты внутреннего устройства аллокатора Go
Таймкоды:
00:00 - Введение
01:49 - Концепция аллокатора
06:09 - Линейный аллокатор
11:22 - Блочный аллокатор
16:21 - Стековый аллокатор
20:18 - Устройство malloc
25:01 - Недостатки malloc
26:55 - Устройство tcmalloc
28:28 - Устройство аллокатора Go
32:55 - Предсказуемая фрагментация памяти
40:33 - Где аллоцируются объекты в Go
51:11 - Почему аллокация на стеке работает быстрее, чем в куче
52:35 - Расширение и уменьшение стека в Go
58:12 - Зачем это все нужно знать (практические примеры)
01:03:37 - Пулы объектов (sync.Pool)
01:06:57 - Арены (memory arenas)
01:14:30 - Аллокатор ОС
01:18:28 - Курс по глубокому Go
https://youtu.be/7K0HweCBJwI
Таймкоды:
00:00 - Введение
01:49 - Концепция аллокатора
06:09 - Линейный аллокатор
11:22 - Блочный аллокатор
16:21 - Стековый аллокатор
20:18 - Устройство malloc
25:01 - Недостатки malloc
26:55 - Устройство tcmalloc
28:28 - Устройство аллокатора Go
32:55 - Предсказуемая фрагментация памяти
40:33 - Где аллоцируются объекты в Go
51:11 - Почему аллокация на стеке работает быстрее, чем в куче
52:35 - Расширение и уменьшение стека в Go
58:12 - Зачем это все нужно знать (практические примеры)
01:03:37 - Пулы объектов (sync.Pool)
01:06:57 - Арены (memory arenas)
01:14:30 - Аллокатор ОС
01:18:28 - Курс по глубокому Go
https://youtu.be/7K0HweCBJwI
🔥47👍13❤6🤩1🏆1
📝 Решил провести анализ собеседований по System Design, чтобы узнать особенности их проведения и проанализировать, какие системы приходится чаще всего проектировать на собеседованиях! Пройдите, пожалуйста, анонимный опрос по ссылке: https://forms.gle/JfZ9vs65rWXF6oLSA (только, если у вас был опыт прохождения собеседования по System Design).
Опрос займет не более одной минуты и в ближайшем будущем я опубликую результаты анализа, чтобы с ними можно было вам ознакомиться!
Опрос займет не более одной минуты и в ближайшем будущем я опубликую результаты анализа, чтобы с ними можно было вам ознакомиться!
👍17🔥8❤4⚡1