Всем привет!
Вчера дочитала "Гроккаем алгоритмы", появилось понимание некоторых алгоритмов и появилось понимание, что нужно ещё много много тренировок))
Поэтому на днях было несколько решений, во-первых, заменить прохождение задачника на решение задач на leetcode. Потому что 3х звездные задачи оказались скорее муторные на выведение ответа в определенном формате, чем сложные и хитрые на логику. В общем, проще говоря пока стало скучно их решать, где-то на 60 с небольшим процентах решила пока остановиться. Возможно потом вернусь, чтобы добить.
Во-вторых, записалась на очередной поток тренировок по алгоритмам в Яндексе. Набор всё ещё открыт, начало 24 октября.
Следующую книжку выбрала "Java Concurrency and Parallelism" (Jay Wang), издание тоже 24 года. Буду углубляться в тему многопоточности. В первой же главе написано, что есть разница между выполнением задач параллельно и в режиме многопоточности. Буду узнавать какая🤓
Пока идея с чтением книг последовательно для меня работает, а то перескакивание с книги на книгу часто отбивало желание читать вообще)) Ещё достаточно весело читать одновременно с аудиокнигой, но книги, где много кода, конечно, не очень подходят для аудиокниг, даже удивительно, что была версия аудиокниги для алгоритмов, в конце концов стало неудобно ее слушать и постоянно ставить на паузу, чтобы разобраться в коде и схемах, в итоге перестала)
Вчера дочитала "Гроккаем алгоритмы", появилось понимание некоторых алгоритмов и появилось понимание, что нужно ещё много много тренировок))
Поэтому на днях было несколько решений, во-первых, заменить прохождение задачника на решение задач на leetcode. Потому что 3х звездные задачи оказались скорее муторные на выведение ответа в определенном формате, чем сложные и хитрые на логику. В общем, проще говоря пока стало скучно их решать, где-то на 60 с небольшим процентах решила пока остановиться. Возможно потом вернусь, чтобы добить.
Во-вторых, записалась на очередной поток тренировок по алгоритмам в Яндексе. Набор всё ещё открыт, начало 24 октября.
Следующую книжку выбрала "Java Concurrency and Parallelism" (Jay Wang), издание тоже 24 года. Буду углубляться в тему многопоточности. В первой же главе написано, что есть разница между выполнением задач параллельно и в режиме многопоточности. Буду узнавать какая🤓
Пока идея с чтением книг последовательно для меня работает, а то перескакивание с книги на книгу часто отбивало желание читать вообще)) Ещё достаточно весело читать одновременно с аудиокнигой, но книги, где много кода, конечно, не очень подходят для аудиокниг, даже удивительно, что была версия аудиокниги для алгоритмов, в конце концов стало неудобно ее слушать и постоянно ставить на паузу, чтобы разобраться в коде и схемах, в итоге перестала)
Тренировки по алгоритмам от Яндекса
Новый сезон — новые задачи и форматы
👍8🔥4
Всем привет!
Решила написать небольшой отзыв на книжку про многопоточность из предыдущего поста.
Ощущение как будто читаешь какую-то рекламную брошюру по джаве😅 К концу первой главы, фразы в стиле, "но ничего, джава и об этом позаботилась" начали вызывать отторжение))) Это всё ещё совмещается с примерами танцев и получается, что "потоки движутся в ритме танго/вальса на переполненном облачном танцполе".
В итоге глаза стали стараться пропустить такие сравнения и "рекламу" джавы и осталось не так много и читать, только примеры кода. Так что, наверное, лучше посмотрю примеры кода в приложенном к книге проекте на гитхабе и переключусь на что-то другое. Может дальше стиль написания и меняется, но пока не зашёл совсем)
Решила написать небольшой отзыв на книжку про многопоточность из предыдущего поста.
Ощущение как будто читаешь какую-то рекламную брошюру по джаве😅 К концу первой главы, фразы в стиле, "но ничего, джава и об этом позаботилась" начали вызывать отторжение))) Это всё ещё совмещается с примерами танцев и получается, что "потоки движутся в ритме танго/вальса на переполненном облачном танцполе".
В итоге глаза стали стараться пропустить такие сравнения и "рекламу" джавы и осталось не так много и читать, только примеры кода. Так что, наверное, лучше посмотрю примеры кода в приложенном к книге проекте на гитхабе и переключусь на что-то другое. Может дальше стиль написания и меняется, но пока не зашёл совсем)
GitHub
GitHub - PacktPublishing/Java-Concurrency-and-Parallelism: Parallel Programming and Concurrency in Java, published by Packt
Parallel Programming and Concurrency in Java, published by Packt - PacktPublishing/Java-Concurrency-and-Parallelism
😁8🔥1
Всем привет!
С прошлой недели меня поставили помогать разгрузить техлида и одного сеньора и теперь я gateway по багам. Приходится разбираться, где проблема на бэке или фронте (иногда это не очевидно для меня) и переназначать, или брать в работу.
С каждым днем после того, как поставили, ко мне все больше и чаще стали приходить тестировщики и фронтендеры с вопросами. Поэтому мои задачки, что были в бэклоге, теперь похоже отложены в долгий ящик до тех пор, пока видимо всё не устаканится))
А из таких задач у меня были задачи на добавление второго профиля в микросервисы, как подготовка к миграции на другую базу данных. Один микросервис только успела перевести) Но надо сказать, что это достаточно монотонное дело. В этом плане поиск и исправление багов поинтереснее, но есть какое-то напряжение с ними)
С прошлой недели меня поставили помогать разгрузить техлида и одного сеньора и теперь я gateway по багам. Приходится разбираться, где проблема на бэке или фронте (иногда это не очевидно для меня) и переназначать, или брать в работу.
С каждым днем после того, как поставили, ко мне все больше и чаще стали приходить тестировщики и фронтендеры с вопросами. Поэтому мои задачки, что были в бэклоге, теперь похоже отложены в долгий ящик до тех пор, пока видимо всё не устаканится))
А из таких задач у меня были задачи на добавление второго профиля в микросервисы, как подготовка к миграции на другую базу данных. Один микросервис только успела перевести) Но надо сказать, что это достаточно монотонное дело. В этом плане поиск и исправление багов поинтереснее, но есть какое-то напряжение с ними)
🔥16👍3
Всем привет!
Сегодня занималась интересной проблемой / багом.
У нас на обучении об этом не говорили, например, но есть ограничения в запросах в базу данных, которые содержат конструкцию where что-то in (варианты).
У нас на проекте с самого начала подход разбивать такие запросы на партиции (дробить большой запрос в базу данных на несколько мелких).
Первый раз, когда столкнулась с этой идеей, показалось странным, мы же обычно избегаем лишних запросов в бд, а тут наоборот увеличиваем количество. В некоторых случаях, у нас такой подход не был прописан и, наконец, выявилось зачем это нужно.
Пришёл запрос, который попадал под это ограничение и выдавал сервис 500. Сегодня разделила его на партиции и покажу, как это может выглядеть в коде.
Фишка в том, что в партициях, чтобы избежать полного сканирования бд, можно задать рамки от какой до какой границы бд нужно смотреть, поэтому большой список вариантов нужно отсортировать.
Например, мы ищем игрушки, id фирм которых находятся в условии in, тогда запрос в базу данных выглядит так:
А в коде, под синтаксис 21 джавы:
Переменная maxSize это задаваемое значение максимального размера партиции, оно не должно быть слишком большим, но и слишком маленький размер будет слишком долго обрабатываться, если список брендов будет доходить под несколько десятков тысяч.
Сегодня занималась интересной проблемой / багом.
У нас на обучении об этом не говорили, например, но есть ограничения в запросах в базу данных, которые содержат конструкцию where что-то in (варианты).
У нас на проекте с самого начала подход разбивать такие запросы на партиции (дробить большой запрос в базу данных на несколько мелких).
Первый раз, когда столкнулась с этой идеей, показалось странным, мы же обычно избегаем лишних запросов в бд, а тут наоборот увеличиваем количество. В некоторых случаях, у нас такой подход не был прописан и, наконец, выявилось зачем это нужно.
Пришёл запрос, который попадал под это ограничение и выдавал сервис 500. Сегодня разделила его на партиции и покажу, как это может выглядеть в коде.
Фишка в том, что в партициях, чтобы избежать полного сканирования бд, можно задать рамки от какой до какой границы бд нужно смотреть, поэтому большой список вариантов нужно отсортировать.
Например, мы ищем игрушки, id фирм которых находятся в условии in, тогда запрос в базу данных выглядит так:
Select t.* from toys t
where t.brand_id >= :minId
and t.brand_id <= :maxId
and t.brand_id in (:ids)
А в коде, под синтаксис 21 джавы:
Collections.sort(brandIds);
ListUtils.partition(brandIds, maxSize).stream()
.map(partition -> repository.findByBrandIds(partition, partition.getFirst(), partition.getLast()))
.toList();
Переменная maxSize это задаваемое значение максимального размера партиции, оно не должно быть слишком большим, но и слишком маленький размер будет слишком долго обрабатываться, если список брендов будет доходить под несколько десятков тысяч.
👍10🔥5
Всем привет!
Сегодня попался пост про оценку личной производительности и о ее волнообразности. Немного навеяло о личной мотивации и захотелось поделиться одной классной статьёй и идеей в ней.
Лучше всего эту статью прочитать полностью, но в нескольких словах перескажу основную мысль и поделюсь наблюдениями применения этой идеи.
В статье противопоставляется поставление и достижение цели, - а зачастую расстройство от не достижения ее - и субъективная оценка по своим критериям.
Приведу детский пример, у меня перед глазами недавно происходил. Сын играл в игру, где нужно было достигать стадий, чем больше стадия, тем ты круче в игре. С каждой стадией время радости сокращалось и начиналось грустное осознание, что есть цель выше и до нее снова нужно идти. Со временем, игрой он "перегорел".
Цитата из статьи - "смартировать свою жизнь — самый эффективный способ, чтобы перестать улыбаться".
В чем идея, можно составить свои критерии, что для меня конкретно важно и раз в месяц ставить оценку, субъективную, например, по 10-бальной шкале, насколько получилось выполнить, ориентируясь на свои ощущения.
Я пробую такую стратегию с августа и надо сказать меня действительно радует, когда что-то, что для меня важно с высокими оценками и если вижу, что какой-то критерий пошел вниз, я могу что-то сделать, чтобы улучшить и потом в конце следующего месяца оценить свою удовлетворенность по этому критерию.
Получается что нет стресса, что нужно что-то достичь, но есть критерий "узнала что-то новое в программировании", который постоянно поддерживает и подталкивает изучать новое и развиваться.
Сегодня попался пост про оценку личной производительности и о ее волнообразности. Немного навеяло о личной мотивации и захотелось поделиться одной классной статьёй и идеей в ней.
Лучше всего эту статью прочитать полностью, но в нескольких словах перескажу основную мысль и поделюсь наблюдениями применения этой идеи.
В статье противопоставляется поставление и достижение цели, - а зачастую расстройство от не достижения ее - и субъективная оценка по своим критериям.
Приведу детский пример, у меня перед глазами недавно происходил. Сын играл в игру, где нужно было достигать стадий, чем больше стадия, тем ты круче в игре. С каждой стадией время радости сокращалось и начиналось грустное осознание, что есть цель выше и до нее снова нужно идти. Со временем, игрой он "перегорел".
Цитата из статьи - "смартировать свою жизнь — самый эффективный способ, чтобы перестать улыбаться".
В чем идея, можно составить свои критерии, что для меня конкретно важно и раз в месяц ставить оценку, субъективную, например, по 10-бальной шкале, насколько получилось выполнить, ориентируясь на свои ощущения.
Я пробую такую стратегию с августа и надо сказать меня действительно радует, когда что-то, что для меня важно с высокими оценками и если вижу, что какой-то критерий пошел вниз, я могу что-то сделать, чтобы улучшить и потом в конце следующего месяца оценить свою удовлетворенность по этому критерию.
Получается что нет стресса, что нужно что-то достичь, но есть критерий "узнала что-то новое в программировании", который постоянно поддерживает и подталкивает изучать новое и развиваться.
vc.ru
Личная стратегия без боли и выгорания
Моей компании в этом году исполнилось 12 лет. Мы создаём ключевые бизнес-сервисы для крупнейших фирм в России. Являемся уникальной компанией, которая создала свой набор методов для анализа сложных продуктов. Кроме этого, я написал две книги: Антихрупкость…
🔥12👍6
Всем привет!
В понедельник у меня начался отпуск. Сегодня утром мне уже стало скучновато без работы 😁
До отпуска у меня было несколько параллельных активностей. Примерно в одно время (2 месяца назад) я записалась на тренировку по алгоритмам и интенсив по джаве.
Рассчитывала, что интенсив закончится до тренировок, но оказалось, что они начались практически день в день и вебинары стали проходить в одно время и там и там с домашними заданиями.
В итоге, обе активности вместе с работой не потянула и остановилась на интенсиве. Совпало с периодом, когда на работе были не самые интересные задачи и хотелось дополнительной разработки.
Поэтому первые несколько заданий понравилось выполнять. Но преподаватель был очень занятой и долго домашки не проверял, а на первые даже не дал обратной связи и появилось чувство зря потраченного времени.
Зато проверила в работе ИИ в качестве писателя юнит тестов (правда локальную слабоватую модель) и он с задачей не справился. Пришлось за ним искать и исправлять ошибки. 🤷♂
Сейчас в планах дочитать книжку Head First по паттернам (осталось меньше половины) и заново начать "кабанчика", потому что до этого половину прослушала чисто в аудио и не очень усвоилось и отложилось, может быть устрою челлендж себе прочитать ее до нового года, чтобы закрыть долги за этот год💪
В понедельник у меня начался отпуск. Сегодня утром мне уже стало скучновато без работы 😁
До отпуска у меня было несколько параллельных активностей. Примерно в одно время (2 месяца назад) я записалась на тренировку по алгоритмам и интенсив по джаве.
Рассчитывала, что интенсив закончится до тренировок, но оказалось, что они начались практически день в день и вебинары стали проходить в одно время и там и там с домашними заданиями.
В итоге, обе активности вместе с работой не потянула и остановилась на интенсиве. Совпало с периодом, когда на работе были не самые интересные задачи и хотелось дополнительной разработки.
Поэтому первые несколько заданий понравилось выполнять. Но преподаватель был очень занятой и долго домашки не проверял, а на первые даже не дал обратной связи и появилось чувство зря потраченного времени.
Зато проверила в работе ИИ в качестве писателя юнит тестов (правда локальную слабоватую модель) и он с задачей не справился. Пришлось за ним искать и исправлять ошибки. 🤷♂
Сейчас в планах дочитать книжку Head First по паттернам (осталось меньше половины) и заново начать "кабанчика", потому что до этого половину прослушала чисто в аудио и не очень усвоилось и отложилось, может быть устрою челлендж себе прочитать ее до нового года, чтобы закрыть долги за этот год💪
🔥9
Всем привет!
Сегодня практически дочитала "Head First. Паттерны проектирования" (остался Appendix с кратким описанием нескольких паттернов).
Мне очень тяжело давалась она в начале, после одного паттерна (Команда) даже отложила книгу в очень далекий ящик.
Недавно вспомнила про нее и решила, что буду читать хотя бы по паре страниц в день. Не каждый день я про это вспоминала, но потом мне неожиданно понравилось 🤓
Чем дальше, тем интереснее было читать, а сегодня даже стало немного грустно от того, что книжка почти закончилась.
Особенно понравилось читать про Шаблонный метод, паттерн Состояния, Прокси и MVC (Model View Controller).
На работе как-то в одной из задач применяла шаблонный метод (сеньор подсказал идею как сделать, но не сказал, что это паттерн, об этом напишу отдельно с примерами).
Прокси в спринге генерируются сами и не задумывалась, а как можно сделать прокси самой, но тут были примеры и было очень интересно. А паттерн состояния хочу применить в пет-проекте чуть позже.
В общем, рекомендую! 🔥
Сегодня практически дочитала "Head First. Паттерны проектирования" (остался Appendix с кратким описанием нескольких паттернов).
Мне очень тяжело давалась она в начале, после одного паттерна (Команда) даже отложила книгу в очень далекий ящик.
Недавно вспомнила про нее и решила, что буду читать хотя бы по паре страниц в день. Не каждый день я про это вспоминала, но потом мне неожиданно понравилось 🤓
Чем дальше, тем интереснее было читать, а сегодня даже стало немного грустно от того, что книжка почти закончилась.
Особенно понравилось читать про Шаблонный метод, паттерн Состояния, Прокси и MVC (Model View Controller).
На работе как-то в одной из задач применяла шаблонный метод (сеньор подсказал идею как сделать, но не сказал, что это паттерн, об этом напишу отдельно с примерами).
Прокси в спринге генерируются сами и не задумывалась, а как можно сделать прокси самой, но тут были примеры и было очень интересно. А паттерн состояния хочу применить в пет-проекте чуть позже.
В общем, рекомендую! 🔥
🔥10👍1
Всем привет!
Сегодня расскажу про забавный случай кривых рук 👍
Связан он с классом ZipInputStream, который используется для чтения и дальнейшей работы с архивами с расширением ".zip".
Код из примера по приложенной ссылке:
Тестировала я его работу и всё-то у меня не попадало в цикл с получением nextEntry у класса, всё null да null у меня было.
Думаю, архив-то у меня валидный, открывается, называется красиво "test.zip".
Уже и погуглила и ИИ поспрашивала, какие могут быть причины, что архив с файлом есть, а ZipInputStream его читать не хочет.
Направил в нужную сторону меня ответ ИИ, что валидный zip всегда имеет признак - первые 2 буквы PK - и в байтах, это значение 50 и 4В, а у меня был 55 и дальше другие значения (это я проверяла дебаггером, что у меня возвращает file.getBytes()).
Решила я получить свой файл через эндпоинт и случайно забыла в постмане выбрать отправить и сохранить, и мне пришел ответ в разных не особо читаемых символах в теле ответа. Первые символы были "7z".
Тут я вспомнила как я создавала свой тестовый архив - я добавила файл к архиву, сохранила не глядя в 7z и подумала, что я расширение что-ли не сменю? И вручную поменяла 7z на zip. 🤦♀
Он, конечно, у меня отлично открывался и сохранялся в разных системах, только внутри он себя ассоцировал с 7z архивом, а не zip.
Мораль - не надо лениться😅
Сегодня расскажу про забавный случай кривых рук 👍
Связан он с классом ZipInputStream, который используется для чтения и дальнейшей работы с архивами с расширением ".zip".
Код из примера по приложенной ссылке:
try(ZipInputStream zin = new ZipInputStream(new FileInputStream("output.zip"))) {
ZipEntry entry;
String name;
while((entry=zin.getNextEntry())!=null){
// работа с архивомТестировала я его работу и всё-то у меня не попадало в цикл с получением nextEntry у класса, всё null да null у меня было.
Думаю, архив-то у меня валидный, открывается, называется красиво "test.zip".
Уже и погуглила и ИИ поспрашивала, какие могут быть причины, что архив с файлом есть, а ZipInputStream его читать не хочет.
Направил в нужную сторону меня ответ ИИ, что валидный zip всегда имеет признак - первые 2 буквы PK - и в байтах, это значение 50 и 4В, а у меня был 55 и дальше другие значения (это я проверяла дебаггером, что у меня возвращает file.getBytes()).
Решила я получить свой файл через эндпоинт и случайно забыла в постмане выбрать отправить и сохранить, и мне пришел ответ в разных не особо читаемых символах в теле ответа. Первые символы были "7z".
Тут я вспомнила как я создавала свой тестовый архив - я добавила файл к архиву, сохранила не глядя в 7z и подумала, что я расширение что-ли не сменю? И вручную поменяла 7z на zip. 🤦♀
Он, конечно, у меня отлично открывался и сохранялся в разных системах, только внутри он себя ассоцировал с 7z архивом, а не zip.
Мораль - не надо лениться😅
Metanit
Java | Работа с ZIP архивами
Создание, упаковка и распаковка zip архивов в языке программирования Java
😁11
Всем привет!
Давно хотела попрактиковаться с реактивным стеком, на этих выходных, наконец, совпало и настроение и возможность. Начала реализовывать задуманное.
Первым делом, написала небольшой сервис (product-service), который использует реактивную NoSQL базу данных (MongoDb).
Пока в нем обычный CRUD стандартных операций. Кому интересно, сделала открытый репозиторий на гитхабе.
Следующим шагом будет добавить второй модуль, это будет order-service, который будет работать с реактивной PostgreSQL.
На эти два шага у меня есть примеры с одного индусского курса. Но мне кажется в этой серии статей на хабре тоже будет много хороших примеров.
Планирую тоже теоретическую часть почитать побольше, потому что индусы объясняют примерно так: "Это не будет работать, потому что нужно подписаться, и если я напишу вот так, то компилятор теперь счастлив, понятно? Двигаемся дальше" 😁
Третим шагом, я запланировала сделать gateway-service, который будет использовать Redis для кэширования сессии и не пропускать неавторизованных пользователей.
Давно хотела попрактиковаться с реактивным стеком, на этих выходных, наконец, совпало и настроение и возможность. Начала реализовывать задуманное.
Первым делом, написала небольшой сервис (product-service), который использует реактивную NoSQL базу данных (MongoDb).
Пока в нем обычный CRUD стандартных операций. Кому интересно, сделала открытый репозиторий на гитхабе.
Следующим шагом будет добавить второй модуль, это будет order-service, который будет работать с реактивной PostgreSQL.
На эти два шага у меня есть примеры с одного индусского курса. Но мне кажется в этой серии статей на хабре тоже будет много хороших примеров.
Планирую тоже теоретическую часть почитать побольше, потому что индусы объясняют примерно так: "Это не будет работать, потому что нужно подписаться, и если я напишу вот так, то компилятор теперь счастлив, понятно? Двигаемся дальше" 😁
Третим шагом, я запланировала сделать gateway-service, который будет использовать Redis для кэширования сессии и не пропускать неавторизованных пользователей.
GitHub
GitHub - MsHitai/webflux-practice: practice with reactive NoSQL and reactive SQL
practice with reactive NoSQL and reactive SQL. Contribute to MsHitai/webflux-practice development by creating an account on GitHub.
🔥11👍3👏1
Всем привет!
Подходит к концу год, хочется возможно выделить какие-то события или цели на следующий год.
Где-то осенью со мной поделились ссылкой на бесплатный курс по алгоритмам от Яндекса, я до сих пор его не прошла.
Разговаривали недавно с коллегой и оказалось, что он тоже хочет подкачать алгоритмы, но все не хватает чего-то, чтобы начать. Решили помочь друг другу и пройти этот курс вместе, чтобы можно было возможно обсудить какие-то задачки.
Присоединяйтесь, кому тоже интересно, будем вместе потом обсуждать. 🤗
В тему, одной из самых запомнившихся задач, была задача написать рекурсивный алгоритм для проверки не является ли метод модифицирующим, если он помечен @Transactional(readOnly = true) (archunit тест).
Также, понравилось применять паттерны проектирования - стратегия для импорта и экспорта объектов через файлы и шаблонный метод (про него будет потом пост).
На следующий год, хочу "прочувствовать" алгоритмы, наконец, чтобы увидев один я могла сказать: "А, нужно использовать два указателя", или, "Хм, здесь отлично подойдет "разделяй и властвуй!" и суметь правильно применить и решить задачи легкого и среднего уровня с leetcode.
Также, нужно, наконец, дочитать Designing Data-intensive applications (кабанчик).
А у вас какие планы на следующий год?
Всех с Наступающим!
Подходит к концу год, хочется возможно выделить какие-то события или цели на следующий год.
Где-то осенью со мной поделились ссылкой на бесплатный курс по алгоритмам от Яндекса, я до сих пор его не прошла.
Разговаривали недавно с коллегой и оказалось, что он тоже хочет подкачать алгоритмы, но все не хватает чего-то, чтобы начать. Решили помочь друг другу и пройти этот курс вместе, чтобы можно было возможно обсудить какие-то задачки.
Присоединяйтесь, кому тоже интересно, будем вместе потом обсуждать. 🤗
В тему, одной из самых запомнившихся задач, была задача написать рекурсивный алгоритм для проверки не является ли метод модифицирующим, если он помечен @Transactional(readOnly = true) (archunit тест).
Также, понравилось применять паттерны проектирования - стратегия для импорта и экспорта объектов через файлы и шаблонный метод (про него будет потом пост).
На следующий год, хочу "прочувствовать" алгоритмы, наконец, чтобы увидев один я могла сказать: "А, нужно использовать два указателя", или, "Хм, здесь отлично подойдет "разделяй и властвуй!" и суметь правильно применить и решить задачи легкого и среднего уровня с leetcode.
Также, нужно, наконец, дочитать Designing Data-intensive applications (кабанчик).
А у вас какие планы на следующий год?
Всех с Наступающим!
education.yandex.ru
Основы алгоритмов — Хендбук от Яндекс Образования
С точки зрения проектирования и реализации алгоритмов есть много хороших, ставших классическими, учебных пособий, в нашем хендбуке мы пробуем подходить к выявлению общих принципов через решение задач.
👍6🔥3
Всем привет!
Всех с наступившим Новым годом! 🎄
Пусть все мечты сбываются!🎁
Я в этом году, думаю, буду писать здесь пореже, только когда будет появляться что-то действительно интересное или буду узнавать что-то новое.
Я пока начала тот курс с яндекса по алгоритмам, он от одного из плохо объясняющих преподавателей. Одно время проходила курс на степике, в написании которого он принимал участие. Тогда остались пробелы, а здесь ещё хуже объяснения и задачи.
Поэтому курс не особо рекомендую, но сама постараюсь допройти и перейти потом к книжке Грокаем алгоритмическое собеседование.
Ещё в планах, скорее мечтах, написать что-нибудь по Spring Security с актуализацией на все изменения синтаксиса, на все возможные варианты - базовая, с токеном jwt и AOuth2. И оформить это в какой-то бесплатный курс на степике.
Эта идея у меня давно, я даже пыталась сделать здесь регулярную серию по Spring Security, но здесь не очень формат для этого подходит, легко по темам не перескочить, а хэштеги я никогда не добавляла) Поэтому думаю платформа Stepik для этого идеально подойдёт)
Всех с наступившим Новым годом! 🎄
Пусть все мечты сбываются!🎁
Я в этом году, думаю, буду писать здесь пореже, только когда будет появляться что-то действительно интересное или буду узнавать что-то новое.
Я пока начала тот курс с яндекса по алгоритмам, он от одного из плохо объясняющих преподавателей. Одно время проходила курс на степике, в написании которого он принимал участие. Тогда остались пробелы, а здесь ещё хуже объяснения и задачи.
Поэтому курс не особо рекомендую, но сама постараюсь допройти и перейти потом к книжке Грокаем алгоритмическое собеседование.
Ещё в планах, скорее мечтах, написать что-нибудь по Spring Security с актуализацией на все изменения синтаксиса, на все возможные варианты - базовая, с токеном jwt и AOuth2. И оформить это в какой-то бесплатный курс на степике.
Эта идея у меня давно, я даже пыталась сделать здесь регулярную серию по Spring Security, но здесь не очень формат для этого подходит, легко по темам не перескочить, а хэштеги я никогда не добавляла) Поэтому думаю платформа Stepik для этого идеально подойдёт)
🔥10
Всем привет!)
Будущее потихоньку наступает? 🙃
В последнее время, много новостей по новым ИИ моделям или прогрессу старых. Что вольно-невольно появляется некоторое беспокойство к чему это всё приведёт.
Недавно проводила небольшое демо и пока ждали всех, немного обсудили новость, что Марк Цукерберг заявил, что они собираются заменить мидл-разработчиков на ИИ. Тогда пошутила, успею ли я вырасти до сеньора при таком ИИ😅
Тимлид и техлид, которые застали разные перемены в айти-сфере, сказали, что ИИ останется инструментом, но не заменой. А работающий в той компании человек заметил, что у них в целом не так много мидл-специалистов работает. (Кстати, вот его интересный пост про то, заменит ли программистов ИИ.)
У нас на работе тоже появляется интерес к использованию локального ИИ, рассматривали разные интересные возможности, по типу таких.
Не очень давно у меня была задачка, в которой подразумевалось использование локального ИИ в качестве помощника.
А сегодня попалась статья об обратной стороне медали. Вкратце, она о том, что многие начинают лениться думать сами и сразу идут по любому поводу к ИИ для решения проблем / багов и разных "затупов". Интересная статья, мне кажется полезный совет там дается, сначала попробовать решить самому.
А вы что про всё про это думаете? 🤗
Будущее потихоньку наступает? 🙃
В последнее время, много новостей по новым ИИ моделям или прогрессу старых. Что вольно-невольно появляется некоторое беспокойство к чему это всё приведёт.
Недавно проводила небольшое демо и пока ждали всех, немного обсудили новость, что Марк Цукерберг заявил, что они собираются заменить мидл-разработчиков на ИИ. Тогда пошутила, успею ли я вырасти до сеньора при таком ИИ😅
Тимлид и техлид, которые застали разные перемены в айти-сфере, сказали, что ИИ останется инструментом, но не заменой. А работающий в той компании человек заметил, что у них в целом не так много мидл-специалистов работает. (Кстати, вот его интересный пост про то, заменит ли программистов ИИ.)
У нас на работе тоже появляется интерес к использованию локального ИИ, рассматривали разные интересные возможности, по типу таких.
Не очень давно у меня была задачка, в которой подразумевалось использование локального ИИ в качестве помощника.
А сегодня попалась статья об обратной стороне медали. Вкратце, она о том, что многие начинают лениться думать сами и сразу идут по любому поводу к ИИ для решения проблем / багов и разных "затупов". Интересная статья, мне кажется полезный совет там дается, сначала попробовать решить самому.
А вы что про всё про это думаете? 🤗
Telegram
FAANG Master
Че там по замене программистов AI?
Прошло больше 2 лет с момента релиза ChatGPT. Появились тулы для програмистов, такие как GitHub Copilot, Cursor, Devin. Сэм Альтман последние два года кормит всех завтраками, что вот вот зарелизятAGI.
За последние несколько…
Прошло больше 2 лет с момента релиза ChatGPT. Появились тулы для програмистов, такие как GitHub Copilot, Cursor, Devin. Сэм Альтман последние два года кормит всех завтраками, что вот вот зарелизятAGI.
За последние несколько…
🔥6👏1
Всем привет!
Продолжаю тренировать алгоритмы. Недавно нашла хороший плейлист с лекциями для 8 (!) классников-олимпиадников, там очень хорошо объясняются алгоритмы с самых азов, с примерами и задачами, которые я на паузе тоже решаю)
После "Гроккаем алгоритмы" объяснения хорошо ложаться, а сортировки я оказывается многие знаю (на джаве смогу написать 3 вида, а на питоне плюс ещё один вид), но на алгоритмическое собеседование в какой-нибудь Яндекс это даже не спросят😁 Возможно мне это для чего-то пригодится, конечно))
А ещё на днях был небольшой моральный подъем, случайно с другого аккаунта на литкоде вышла на задачу, которую решила в прошлом году. Там нужно было использовать метод поиска наибольшего общего делителя.
В прошлом году решила длинно, не сильно читаемо и по времени в статистике литкод среди меньшего количества за 3 ms, вместо более популярного решения за 2 ms.
Попробовала решить с полученными знаниями с курса по ссылке и попала в статистику большинства 🥳
Буду продолжать дальше, ещё бы кто-нибудь подпинывал делать регулярно, как делают курсы.)) Но бесплатный курс с Я.Практикума для этого не годится, возможно все-таки возьму их платную версию..
Продолжаю тренировать алгоритмы. Недавно нашла хороший плейлист с лекциями для 8 (!) классников-олимпиадников, там очень хорошо объясняются алгоритмы с самых азов, с примерами и задачами, которые я на паузе тоже решаю)
После "Гроккаем алгоритмы" объяснения хорошо ложаться, а сортировки я оказывается многие знаю (на джаве смогу написать 3 вида, а на питоне плюс ещё один вид), но на алгоритмическое собеседование в какой-нибудь Яндекс это даже не спросят😁 Возможно мне это для чего-то пригодится, конечно))
А ещё на днях был небольшой моральный подъем, случайно с другого аккаунта на литкоде вышла на задачу, которую решила в прошлом году. Там нужно было использовать метод поиска наибольшего общего делителя.
В прошлом году решила длинно, не сильно читаемо и по времени в статистике литкод среди меньшего количества за 3 ms, вместо более популярного решения за 2 ms.
Попробовала решить с полученными знаниями с курса по ссылке и попала в статистику большинства 🥳
Буду продолжать дальше, ещё бы кто-нибудь подпинывал делать регулярно, как делают курсы.)) Но бесплатный курс с Я.Практикума для этого не годится, возможно все-таки возьму их платную версию..
YouTube
Computer Science 8-9
Share your videos with friends, family, and the world
🔥13👍2
Всем привет!)
Всех причастных с праздником! 🥳
А я сегодня сдалась и записалась на платный курс по алгоритмам в Я. Практикум 🤓
Вчера проходила вводную часть и что-то очень понравилось и задачки решать и теория, как подана. Я ещё в прошлом году хотела пойти на него в августе, но решила попробовать самостоятельно поучиться и хоть прогресс однозначно есть, но он еле-еле ощутимый.
В последнее время что-то зачастила с постами про алгоритмы, но почему-то сейчас ничего другого сильно не увлекает. 🤔
Вчера, когда отдавала задачи на проверку, некоторые мои решения выпадали на 10-80 мс за лимит по времени выполнения. И было очень интересно думать, как можно ускорить решение.
Там ещё были открытые тестовые данные, очень понравилось, не знаю, конечно, будет ли так дальше.
Учеба у меня начнется с 6 марта, потом поделюсь впечатлениями)
Всех причастных с праздником! 🥳
А я сегодня сдалась и записалась на платный курс по алгоритмам в Я. Практикум 🤓
Вчера проходила вводную часть и что-то очень понравилось и задачки решать и теория, как подана. Я ещё в прошлом году хотела пойти на него в августе, но решила попробовать самостоятельно поучиться и хоть прогресс однозначно есть, но он еле-еле ощутимый.
В последнее время что-то зачастила с постами про алгоритмы, но почему-то сейчас ничего другого сильно не увлекает. 🤔
Вчера, когда отдавала задачи на проверку, некоторые мои решения выпадали на 10-80 мс за лимит по времени выполнения. И было очень интересно думать, как можно ускорить решение.
Там ещё были открытые тестовые данные, очень понравилось, не знаю, конечно, будет ли так дальше.
Учеба у меня начнется с 6 марта, потом поделюсь впечатлениями)
🔥13
Всем привет!
Сегодня я снова студент) У меня официально начался курс по алгоритмам) Правда первый спринт откроется в понедельник и пока задания закрыты. Но уже началось движение в учебных чатах.
Несколько людей там имеют опыт работы в разработке более 15 лет😱 Но есть также фронтендеры, автотестеры и люди из других смежных сфер.
Программу первого спринта (первые 2 недели курса) немного приоткрыли и стало немножко боязно 🫣 - там 24 урока плюс финальное задание, которое будет проверять ревьюер. Пока не представляю, как оно будет выглядеть)
По работе последнее время приходят интересные задачки. Вчера занималась настройкой одного кастомного бина, который не хотел работать в тестовой среде. В итоге помог разобраться только сеньор, но зато научилась новому)
А завтра, если ничего не поменяется, буду изучать Kotlin dsl на предмет возможности применения в проекте.
Сегодня я снова студент) У меня официально начался курс по алгоритмам) Правда первый спринт откроется в понедельник и пока задания закрыты. Но уже началось движение в учебных чатах.
Несколько людей там имеют опыт работы в разработке более 15 лет😱 Но есть также фронтендеры, автотестеры и люди из других смежных сфер.
Программу первого спринта (первые 2 недели курса) немного приоткрыли и стало немножко боязно 🫣 - там 24 урока плюс финальное задание, которое будет проверять ревьюер. Пока не представляю, как оно будет выглядеть)
По работе последнее время приходят интересные задачки. Вчера занималась настройкой одного кастомного бина, который не хотел работать в тестовой среде. В итоге помог разобраться только сеньор, но зато научилась новому)
А завтра, если ничего не поменяется, буду изучать Kotlin dsl на предмет возможности применения в проекте.
🔥12👍2
Всем привет!
Сегодня будет несколько новостей и щенячих восторгов) Во-первых, попрактиковала вчера интересный use case для ИИ. Сказала ему, что вот ты мой ментор, хочешь меня научить, сразу мне правильный ответ не говоришь, а подсказываешь, задаешь может быть наводящие вопросы.
И пришла к нему с задачкой с курса, говорю, вот нужно это найти, я делаю так, но это слишком медленно, как по-другому мне не представляется реальным.
И он таки подвел меня к решению) День-полтора у меня заняло, конечно, на осмысление его подсказок, пробовала и так и сяк, в конце концов решение прошло и я отправила его на ревью. Интересно будет посмотреть, как оно будет выглядеть.
Так что курс пока у меня идет в темпе предыдущего, на первой неделе спринта я сделала его финальное задание (2 задачи, одна из них не сложная). Оно пока не принято, но это не главное 😅 Ещё один из плюсов, тут оказалось можно идти вперёд, уроки не блокируются календарем, чего мне очень не хватало на джавистком курсе)
Ещё одна интересная вещь, у нас на работе появится несколько человек, кто будет в большинстве заниматься различными улучшениями кода и внедрением новых технологий и я попросилась в их число💃
А у вас как дела?)
Сегодня будет несколько новостей и щенячих восторгов) Во-первых, попрактиковала вчера интересный use case для ИИ. Сказала ему, что вот ты мой ментор, хочешь меня научить, сразу мне правильный ответ не говоришь, а подсказываешь, задаешь может быть наводящие вопросы.
И пришла к нему с задачкой с курса, говорю, вот нужно это найти, я делаю так, но это слишком медленно, как по-другому мне не представляется реальным.
И он таки подвел меня к решению) День-полтора у меня заняло, конечно, на осмысление его подсказок, пробовала и так и сяк, в конце концов решение прошло и я отправила его на ревью. Интересно будет посмотреть, как оно будет выглядеть.
Так что курс пока у меня идет в темпе предыдущего, на первой неделе спринта я сделала его финальное задание (2 задачи, одна из них не сложная). Оно пока не принято, но это не главное 😅 Ещё один из плюсов, тут оказалось можно идти вперёд, уроки не блокируются календарем, чего мне очень не хватало на джавистком курсе)
Ещё одна интересная вещь, у нас на работе появится несколько человек, кто будет в большинстве заниматься различными улучшениями кода и внедрением новых технологий и я попросилась в их число💃
А у вас как дела?)
🔥10👏3❤1
Всем привет!
У меня на курсе закончился 2 спринт (по календарю только 1й). Но если вы подумаете, что это быстро, то я скажу, что, как минимум 1 человек, уже решает задачки 4го спринта. Многие на 3м были еще на прошлой неделе, но есть и те, кто "ползет", как я. Что меня немного успокаивает 😁
За последнюю неделю заметила несколько интересных вещей. Во-первых, очень многие теоретические моменты объясняются примерами из "Грокаем алгоритмы". Несколько задач я встретила с курса для олимпиадников (о нем рассказывала тут). Их решила легко по памяти, потому что идеи хорошо отложились.
Вторая мысль с этим связанная, что если есть самодисциплина на то, чтобы заниматься на leetcode, пожалуй "Грокаем алгоритмы" и задачи с leetcode будет вполне достаточно, чтобы хорошо освоить алгоритмы. У меня регулярно там решать задачи настолько не получалось, что выработался рефлекс - открывается страница leetcode - ноги поднимаются со стула и ведут меня куда-нибудь подальше😅
Поэтому для меня leetcode пока не работает, но надеюсь это изменится со временем.
И последнее чем хотела поделиться - самое понятное объяснение, что такое стек. Обычно сравнивают со стопкой тарелок/документов/тетрадок на проверку. Но для меня это никогда не было чем-то финальным. Я очень много раз забирала вещи из середины стопки и видела, как учителя так делают с тетрадками, если они вдруг захотели что-то проверить вне очереди.
В курсе для олимпиадников сравнили стек с тубусом для теннисных мячей. Вот уж где точно не подлезешь ни в начало, ни в середину, не достав верхний мяч.🎾
У меня на курсе закончился 2 спринт (по календарю только 1й). Но если вы подумаете, что это быстро, то я скажу, что, как минимум 1 человек, уже решает задачки 4го спринта. Многие на 3м были еще на прошлой неделе, но есть и те, кто "ползет", как я. Что меня немного успокаивает 😁
За последнюю неделю заметила несколько интересных вещей. Во-первых, очень многие теоретические моменты объясняются примерами из "Грокаем алгоритмы". Несколько задач я встретила с курса для олимпиадников (о нем рассказывала тут). Их решила легко по памяти, потому что идеи хорошо отложились.
Вторая мысль с этим связанная, что если есть самодисциплина на то, чтобы заниматься на leetcode, пожалуй "Грокаем алгоритмы" и задачи с leetcode будет вполне достаточно, чтобы хорошо освоить алгоритмы. У меня регулярно там решать задачи настолько не получалось, что выработался рефлекс - открывается страница leetcode - ноги поднимаются со стула и ведут меня куда-нибудь подальше😅
Поэтому для меня leetcode пока не работает, но надеюсь это изменится со временем.
И последнее чем хотела поделиться - самое понятное объяснение, что такое стек. Обычно сравнивают со стопкой тарелок/документов/тетрадок на проверку. Но для меня это никогда не было чем-то финальным. Я очень много раз забирала вещи из середины стопки и видела, как учителя так делают с тетрадками, если они вдруг захотели что-то проверить вне очереди.
В курсе для олимпиадников сравнили стек с тубусом для теннисных мячей. Вот уж где точно не подлезешь ни в начало, ни в середину, не достав верхний мяч.🎾
🔥7❤5👍2😁2
Всем привет!
Сегодня я дошла ровно до 50 процентов курса по алгоритмам (сдала финальные задачи 3го спринта).
Этот спринт стал ощутимо сложнее двух предыдущих, главными темами были рекурсия и сортировка.
Первый раз решала задачу с комбинациями через рекурсию, рабочее решение вышло чуть ли не в 3 строчки, но до этого метод был почти на 50 строк😅 По итогу этими задачами осталась довольна)
Одна задача на отрезки почти повергла меня в отчаяние🙈 Там нужно было вывести соединенные отрезки или, наоборот, непересекающиеся (например, если даны 2-3, 6-10, 7-8, 7-8, то правильный ответ 2-3 и 6-10). Так сказать геометрия и визуализация не самые мои лучшие друзья, чертила, рисовала, пыталась решить.
Не помню сколько над ней просидела, но реально приходили мысли в голову бросить всё и уйти в водители автобуса (шучу 😁). Когда ее решила был такой выброс дофамина, что потом пару дней вообще что-то перетрудилась решая задачи и в итоге, наконец, устала и решила немного таймаут взять до понедельника)
Но видели бы вы, конечно, мой код в процессе решения😁 Настоящий путь самурая на костылях)
А ещё на днях, 28 марта, у меня был день рождения канала) 2 года👶💪
Сегодня я дошла ровно до 50 процентов курса по алгоритмам (сдала финальные задачи 3го спринта).
Этот спринт стал ощутимо сложнее двух предыдущих, главными темами были рекурсия и сортировка.
Первый раз решала задачу с комбинациями через рекурсию, рабочее решение вышло чуть ли не в 3 строчки, но до этого метод был почти на 50 строк😅 По итогу этими задачами осталась довольна)
Одна задача на отрезки почти повергла меня в отчаяние🙈 Там нужно было вывести соединенные отрезки или, наоборот, непересекающиеся (например, если даны 2-3, 6-10, 7-8, 7-8, то правильный ответ 2-3 и 6-10). Так сказать геометрия и визуализация не самые мои лучшие друзья, чертила, рисовала, пыталась решить.
Не помню сколько над ней просидела, но реально приходили мысли в голову бросить всё и уйти в водители автобуса (шучу 😁). Когда ее решила был такой выброс дофамина, что потом пару дней вообще что-то перетрудилась решая задачи и в итоге, наконец, устала и решила немного таймаут взять до понедельника)
Но видели бы вы, конечно, мой код в процессе решения😁 Настоящий путь самурая на костылях)
А ещё на днях, 28 марта, у меня был день рождения канала) 2 года👶💪
🔥20❤2
Всем привет!
На этой неделе углублялась в тему хешей и хеш-таблиц (тема 4го спринта на курсах по алгоритмам).
В качестве финальных заданий на проверку в одном нужно было реализовать свою хеш-таблицу с собственной хеш-функцией и разрешением коллизий. А в другом организовать поиск по документам, выдавая самые подходящие поиску документы.
С последним заданием провозилась несколько дней, было очень сложно. А до этого ещё пару дней даже не знала как и подступиться к решению)
В следующем спринте начнется тема с деревьями, видимо будут учить нас их крутить вертеть туда-сюда. Немного страшно 😁
Но официально 5й спринт стартует аж 5 мая, так что пока дорешаю необязательные задачки)
На работе период относительно скучных задач, самое сложное в которых понять формулировки ТЗ 😁
А у вас как дела?)
На этой неделе углублялась в тему хешей и хеш-таблиц (тема 4го спринта на курсах по алгоритмам).
В качестве финальных заданий на проверку в одном нужно было реализовать свою хеш-таблицу с собственной хеш-функцией и разрешением коллизий. А в другом организовать поиск по документам, выдавая самые подходящие поиску документы.
С последним заданием провозилась несколько дней, было очень сложно. А до этого ещё пару дней даже не знала как и подступиться к решению)
В следующем спринте начнется тема с деревьями, видимо будут учить нас их крутить вертеть туда-сюда. Немного страшно 😁
Но официально 5й спринт стартует аж 5 мая, так что пока дорешаю необязательные задачки)
На работе период относительно скучных задач, самое сложное в которых понять формулировки ТЗ 😁
А у вас как дела?)
🔥9❤2👍2😁1
Всем привет!)
Всех с прошедшими праздниками, успели ли отдохнуть?🤗
У меня идет потихоньку курс по алгоритмам к концу, вчера закрыла 5й спринт по деревьям и начала 6й по графам. Осталось 3 спринта, вместе с 6.
Деревья приятно удивили, я что-то до этого не лезла внутрь смотреть, как они устроены и работают, теперь немного получше их понимаю. Думаю после курса еще немного потренирую разные темы, почитаю книжки/статьи с разборами. Может к следующим тренировкам по алгоритмам смогу их решать быстро)
Не рассказывала, но не очень давно проходила собеседование для тренировки. Говорят полезно периодически практиковать этот навык и вообще узнать, как сейчас на рынке труда обстоят дела)
Совпало достаточно забавно, одним из вопросов меня попросили рассказать, как устроена хеш-мапа, а я как раз примерно днем раньше сдала свою кастомную реализацию хеш-мапы на 4м спринте с первой попытки)
В остальном, вопросы были вполне стандартные: ArrayList vs LinkedList, немного было вопросов с подвохом, где были кусочки кода и нужно было сказать, отработает или нет, что выведет на экран, немного на многопоточку было среди них.
Например, стандартный подвох на стримы:
где подвох в том, что peek не терминальная операция и ничего не будет выведено на экран, так как стримы ленивые.
Всех с прошедшими праздниками, успели ли отдохнуть?🤗
У меня идет потихоньку курс по алгоритмам к концу, вчера закрыла 5й спринт по деревьям и начала 6й по графам. Осталось 3 спринта, вместе с 6.
Деревья приятно удивили, я что-то до этого не лезла внутрь смотреть, как они устроены и работают, теперь немного получше их понимаю. Думаю после курса еще немного потренирую разные темы, почитаю книжки/статьи с разборами. Может к следующим тренировкам по алгоритмам смогу их решать быстро)
Не рассказывала, но не очень давно проходила собеседование для тренировки. Говорят полезно периодически практиковать этот навык и вообще узнать, как сейчас на рынке труда обстоят дела)
Совпало достаточно забавно, одним из вопросов меня попросили рассказать, как устроена хеш-мапа, а я как раз примерно днем раньше сдала свою кастомную реализацию хеш-мапы на 4м спринте с первой попытки)
В остальном, вопросы были вполне стандартные: ArrayList vs LinkedList, немного было вопросов с подвохом, где были кусочки кода и нужно было сказать, отработает или нет, что выведет на экран, немного на многопоточку было среди них.
Например, стандартный подвох на стримы:
List<Integer> list = Arrays.asList(0, 2, 4, 6, 8, 10);
list.stream().peek(System.out::println);
где подвох в том, что peek не терминальная операция и ничего не будет выведено на экран, так как стримы ленивые.
👍9🔥5❤2