Отдых для программиста
Все хотят добиться быстрого результата в той или иной сфере: быстро выучить язык программирования, технологию и тд. Посмотрев мотивирующие тиктоки, истории других людей о вкате в IT ты начинаешь учиться по 8 часов в день, 7 дней в неделю. И первые дни все идёт как по маслу, ты начинаешь быстро осваивать технологии, появляются мысли, что ты особенный и нашел ключ к быстрому образованию. В один утро ты встаешь с кровати, и тебя начинает тошнить от программирования...
После небольшого пролога перейдём к основной части. Хочу рассказать сугубо про свои практики, чтобы вовремя отдыхать и не доводить себя до выгорания.
1) Утренний режим работы - Утром у нас меньше отвлекающих факторов: кореша не зовут в доту, никто не стримит на твиче ;), нету вечерней меланхолии и тд. Идеальное время чтобы несколько часов спокойно поработать. Не обязательно утро, кому-то легче работать вечером, в полной темноте, но должен быть обязательно режим. Когда ты чётко понимаешь рамки своей работы (после 15:00 заканчиваю, например) ты начинаешь концентрироваться на занятии, тем самым быстрее и эффективнее завершая его + ценить время отдыха.
2) Организация времени - Проверяешь телегу, инсту, тикток после 15-ти минут работы? Это проблема - сам долго борюсь с этим. Отведи себе неделю, и на протяжении всего дня записывай время начала/конца каждого действия. (Начал работать 9:00 / Пошел за кофе 9: 25 / Вернулся к работе 9: 45 / Посмотрел тикток 10:00 / Закончил смотреть тиктоки 10:20 ). Да, напоминает жизнь в клетке, но это занимает всего лишь неделю. После эксперимента посмотри на результаты и постарайся не @хуetb. Т.к. все, отведённое время под работу будет так же состоять из кратковременного отдыха, по 10 минут думскролинга ленты. Отрезки отдыха должны быть неделимы и находиться после рабочего времени.
3) Отдых только после работы - Начал день не с чистки зубов, а просмотра тиктока. После завтрака начал смотреть сериалы до середины обеда и в конце дня нет сил? Поздравляю - тебя нагнула дофаминовая система. Хорошо не поработав - не выйдет хорошо отдохнуть / Хорошо не отдохнув - не выйдет хорошо поработать - два главных тезиса этого поста. Только после хорошего, продуктивного дня, наполненного рабочими задачами (без постоянных кратковременных перерывов) — ты сможешь с удовольствием отдохнуть. Постоянно лежать на диване, посасывать пиво и смотреть телевизор - при этом получать бесконечный кайф от процесса — не выйдет. Так уж устроен наш организм, ему нужны качели, после нескольких часов работы - организм нуждается в дофамине, у него дефицит, так что ты будешь кайфовать от всего, не связанного с работой.
Итого: 1) Отведи себе время, наполненное только рабочими/учебными делами, например с 9 до 15. 2) Очисти рабочее время от мини-перерывов, оставив только перерывы на обед/туалет, чтобы рабочее время было именно рабочим 3) Старайся отдыхать только после проделанной работы.
Сам стараюсь следовать этим принципам - и успешно убегаю от выгорания + успеваю большинство дел
<Наше сообщество/> <Менторство/>
Все хотят добиться быстрого результата в той или иной сфере: быстро выучить язык программирования, технологию и тд. Посмотрев мотивирующие тиктоки, истории других людей о вкате в IT ты начинаешь учиться по 8 часов в день, 7 дней в неделю. И первые дни все идёт как по маслу, ты начинаешь быстро осваивать технологии, появляются мысли, что ты особенный и нашел ключ к быстрому образованию. В один утро ты встаешь с кровати, и тебя начинает тошнить от программирования...
После небольшого пролога перейдём к основной части. Хочу рассказать сугубо про свои практики, чтобы вовремя отдыхать и не доводить себя до выгорания.
1) Утренний режим работы - Утром у нас меньше отвлекающих факторов: кореша не зовут в доту, никто не стримит на твиче ;), нету вечерней меланхолии и тд. Идеальное время чтобы несколько часов спокойно поработать. Не обязательно утро, кому-то легче работать вечером, в полной темноте, но должен быть обязательно режим. Когда ты чётко понимаешь рамки своей работы (после 15:00 заканчиваю, например) ты начинаешь концентрироваться на занятии, тем самым быстрее и эффективнее завершая его + ценить время отдыха.
2) Организация времени - Проверяешь телегу, инсту, тикток после 15-ти минут работы? Это проблема - сам долго борюсь с этим. Отведи себе неделю, и на протяжении всего дня записывай время начала/конца каждого действия. (Начал работать 9:00 / Пошел за кофе 9: 25 / Вернулся к работе 9: 45 / Посмотрел тикток 10:00 / Закончил смотреть тиктоки 10:20 ). Да, напоминает жизнь в клетке, но это занимает всего лишь неделю. После эксперимента посмотри на результаты и постарайся не @хуetb. Т.к. все, отведённое время под работу будет так же состоять из кратковременного отдыха, по 10 минут думскролинга ленты. Отрезки отдыха должны быть неделимы и находиться после рабочего времени.
3) Отдых только после работы - Начал день не с чистки зубов, а просмотра тиктока. После завтрака начал смотреть сериалы до середины обеда и в конце дня нет сил? Поздравляю - тебя нагнула дофаминовая система. Хорошо не поработав - не выйдет хорошо отдохнуть / Хорошо не отдохнув - не выйдет хорошо поработать - два главных тезиса этого поста. Только после хорошего, продуктивного дня, наполненного рабочими задачами (без постоянных кратковременных перерывов) — ты сможешь с удовольствием отдохнуть. Постоянно лежать на диване, посасывать пиво и смотреть телевизор - при этом получать бесконечный кайф от процесса — не выйдет. Так уж устроен наш организм, ему нужны качели, после нескольких часов работы - организм нуждается в дофамине, у него дефицит, так что ты будешь кайфовать от всего, не связанного с работой.
Итого: 1) Отведи себе время, наполненное только рабочими/учебными делами, например с 9 до 15. 2) Очисти рабочее время от мини-перерывов, оставив только перерывы на обед/туалет, чтобы рабочее время было именно рабочим 3) Старайся отдыхать только после проделанной работы.
Сам стараюсь следовать этим принципам - и успешно убегаю от выгорания + успеваю большинство дел
<Наше сообщество/> <Менторство/>
❤25👍8🔥3
Big O: Как пройти алгоритмический собес
Сейчас смотрю курс от Vlad Tena по алгоритмам/основным подходам к решению. Чтобы освежить память и прокачать свои скиллы по решению алгоритмических задачек. В связи с этим не могу не выпустить несколько постов про алгоритмы, алгоритмические собеседования и тд.
Первое на очереди - теореритеская оценка сложности алгоритма (или первое, с чем вас будут з@еbывать на алгоритмическом собеседовании) - Big 0
Big O — это способ оценить, насколько быстро или медленно работает алгоритм в зависимости от объема данных, которые ему нужно обработать. Это как измеритель "скорости" алгоритма, который помогает понять, как он поведет себя при увеличении нагрузки.
Big O показывает, как изменяется время выполнения алгоритма при увеличении объема входных данных. Чем больше данных, тем важнее выбрать правильный алгоритм, чтобы программа оставалась эффективной.
Основные классы сложности:
1 O(1) — константное время.
Алгоритм выполняется за фиксированное время, независимо от объема данных. Например, доступ к элементу массива по индексу.
2 O(n) — линейное время.
Время выполнения растет пропорционально объему данных. Пример: поиск элемента в неотсортированном списке.
3 O(log n) — логарифмическое время.
Время увеличивается медленно даже при большом объеме данных. Пример: бинарный поиск в отсортированном массиве.
4 O(n^2) — квадратичное время.
Время выполнения растет в квадрате от объема данных. Часто встречается в алгоритмах с вложенными циклами, например, в сортировке пузырьком.
5 O(2^n) — экспоненциальное время.
Время выполнения растет экспоненциально с увеличением объема данных. Такие алгоритмы становятся крайне медленными даже при небольшом увеличении входных данных. Пример: рекурсивное вычисление чисел Фибоначчи без оптимизации.
Зачем это нужно?
Самое главное - чтобы пройти алгоритмический собес) А если серьезно, то этот принцип позволяет сравнивать алгоритмы прогнозируя производительность при больших объемах данных
Подробнее про Big 0
<Наше сообщество/> <Менторство/>
Сейчас смотрю курс от Vlad Tena по алгоритмам/основным подходам к решению. Чтобы освежить память и прокачать свои скиллы по решению алгоритмических задачек. В связи с этим не могу не выпустить несколько постов про алгоритмы, алгоритмические собеседования и тд.
Первое на очереди - теореритеская оценка сложности алгоритма (или первое, с чем вас будут з@еbывать на алгоритмическом собеседовании) - Big 0
Big O — это способ оценить, насколько быстро или медленно работает алгоритм в зависимости от объема данных, которые ему нужно обработать. Это как измеритель "скорости" алгоритма, который помогает понять, как он поведет себя при увеличении нагрузки.
Big O показывает, как изменяется время выполнения алгоритма при увеличении объема входных данных. Чем больше данных, тем важнее выбрать правильный алгоритм, чтобы программа оставалась эффективной.
Основные классы сложности:
1 O(1) — константное время.
Алгоритм выполняется за фиксированное время, независимо от объема данных. Например, доступ к элементу массива по индексу.
2 O(n) — линейное время.
Время выполнения растет пропорционально объему данных. Пример: поиск элемента в неотсортированном списке.
3 O(log n) — логарифмическое время.
Время увеличивается медленно даже при большом объеме данных. Пример: бинарный поиск в отсортированном массиве.
4 O(n^2) — квадратичное время.
Время выполнения растет в квадрате от объема данных. Часто встречается в алгоритмах с вложенными циклами, например, в сортировке пузырьком.
5 O(2^n) — экспоненциальное время.
Время выполнения растет экспоненциально с увеличением объема данных. Такие алгоритмы становятся крайне медленными даже при небольшом увеличении входных данных. Пример: рекурсивное вычисление чисел Фибоначчи без оптимизации.
Зачем это нужно?
Самое главное - чтобы пройти алгоритмический собес) А если серьезно, то этот принцип позволяет сравнивать алгоритмы прогнозируя производительность при больших объемах данных
Подробнее про Big 0
<Наше сообщество/> <Менторство/>
❤11❤🔥1
Чем занимаешься?
Anonymous Poll
29%
Backend
49%
Frontend
6%
Mobile
4%
QA
8%
Инфо без
17%
Fullstack
8%
Другое (в комментарии)
Как постоянно развиваться в IT? 5 главных правил
1. Насмотренность
— Чем чаще ты пытаешься разбираться в коде более квалифицированных специалистов — тем быстрее ты станешь таким же. Заглядывай в исходники библиотек, фреймворков или хотя бы в пет-проекты скилловых программистов, анализируй "Почему эту проблему решили именно так?". Со временем ты сможешь подходить к решением бытовых задач с разных сторон и выбирать лучшее решение.
2. Практика
— Чаще пиши код, а самое главное — применяй недавно полученные теоретические знания на практике. Изучил новые алгоритмы — реализовал их / познакомился с несколькими новыми библиотеками — сделал мини-проект на их основе.
3. Повторение
— То, о чем большинство забывает. Периодически повторяй изученные технологии, без повторения ни один нормальный человек не освоит сложную технологию (за исключением уникумов с фотографической памятью) / Сам стабильно раз в пол года перечитываю весь learn javascript
4. Нетворкинг
— IT — это командная игра. Участвуй в хакатонах, посещай митапы и конференции, чтобы расширять круг общения. Делись своими наработками с коллегами, объясняй свой код и предлагай новые библиотеки или подходы. Активничай в различных IT сообществах - например в нашем :)/ Короче говоря - старайся как можно чаще обмениваться опытом с другими людьми.
5. Непрерывное обучение
— Мир технологий меняется каждый день, и важно не отставать. Читай статьи, смотри видео и участвуй в семинарах, чтобы быть в курсе последних трендов. Постоянно осваивай новые технологии, архитектурные подходы и методологии. Это не просто полезно — это необходимо, если хочешь оставаться востребованным специалистом.
<Наше сообщество/> <Менторство/>
1. Насмотренность
— Чем чаще ты пытаешься разбираться в коде более квалифицированных специалистов — тем быстрее ты станешь таким же. Заглядывай в исходники библиотек, фреймворков или хотя бы в пет-проекты скилловых программистов, анализируй "Почему эту проблему решили именно так?". Со временем ты сможешь подходить к решением бытовых задач с разных сторон и выбирать лучшее решение.
2. Практика
— Чаще пиши код, а самое главное — применяй недавно полученные теоретические знания на практике. Изучил новые алгоритмы — реализовал их / познакомился с несколькими новыми библиотеками — сделал мини-проект на их основе.
3. Повторение
— То, о чем большинство забывает. Периодически повторяй изученные технологии, без повторения ни один нормальный человек не освоит сложную технологию (за исключением уникумов с фотографической памятью) / Сам стабильно раз в пол года перечитываю весь learn javascript
4. Нетворкинг
— IT — это командная игра. Участвуй в хакатонах, посещай митапы и конференции, чтобы расширять круг общения. Делись своими наработками с коллегами, объясняй свой код и предлагай новые библиотеки или подходы. Активничай в различных IT сообществах - например в нашем :)/ Короче говоря - старайся как можно чаще обмениваться опытом с другими людьми.
5. Непрерывное обучение
— Мир технологий меняется каждый день, и важно не отставать. Читай статьи, смотри видео и участвуй в семинарах, чтобы быть в курсе последних трендов. Постоянно осваивай новые технологии, архитектурные подходы и методологии. Это не просто полезно — это необходимо, если хочешь оставаться востребованным специалистом.
<Наше сообщество/> <Менторство/>
❤9👍4⚡2
Как не выгорать? Составил небольшую заметку, с лучшими практиками против выгорания:
Сохраняйте гармонию между работой и личной жизнью.
— Важно регулярно давать себе передышку. Проводите время на свежем воздухе, отправляйтесь в путешествия, займитесь физической активностью или уделите внимание своим увлечениям.
Учитесь говорить "нет".
— Не берите на себя больше, чем можете осилить. Если чувствуете, что ресурсы на исходе, не соглашайтесь на дополнительные обязанности.
Организуйте свой рабочий процесс.
— Разделяйте сложные задачи на более мелкие этапы и распределяйте их выполнение по времени. Но помните: чрезмерное планирование — провальное решение и путь к стагнации, хватит небольшого наброска планов на день.
Качество важнее количества.
— Лучше потратить меньше времени, но работать с полной концентрацией, чем тратить часы на непродуктивную деятельность. Избегайте отвлекающих факторов и сосредоточьтесь на главном.
Регулярно отдыхайте.
— Если чувствуете признаки усталости, не игнорируйте их. Иногда лучший способ восстановиться — это просто взять паузу.
Не перегружайте себя обучением.
— Опыт показывает, что 2–4 часа в день — это оптимальное время для эффективного обучения. Превышать эту норму не только бесполезно, но и вредно для продуктивности.
<Наше сообщество/> <Менторство/>
Сохраняйте гармонию между работой и личной жизнью.
— Важно регулярно давать себе передышку. Проводите время на свежем воздухе, отправляйтесь в путешествия, займитесь физической активностью или уделите внимание своим увлечениям.
Учитесь говорить "нет".
— Не берите на себя больше, чем можете осилить. Если чувствуете, что ресурсы на исходе, не соглашайтесь на дополнительные обязанности.
Организуйте свой рабочий процесс.
— Разделяйте сложные задачи на более мелкие этапы и распределяйте их выполнение по времени. Но помните: чрезмерное планирование — провальное решение и путь к стагнации, хватит небольшого наброска планов на день.
Качество важнее количества.
— Лучше потратить меньше времени, но работать с полной концентрацией, чем тратить часы на непродуктивную деятельность. Избегайте отвлекающих факторов и сосредоточьтесь на главном.
Регулярно отдыхайте.
— Если чувствуете признаки усталости, не игнорируйте их. Иногда лучший способ восстановиться — это просто взять паузу.
Не перегружайте себя обучением.
— Опыт показывает, что 2–4 часа в день — это оптимальное время для эффективного обучения. Превышать эту норму не только бесполезно, но и вредно для продуктивности.
<Наше сообщество/> <Менторство/>
❤18
Как установить то самое Расширение с котами в IDE?
Несколько раз спрашивали в комментариях: "Как поставить плашку с животными в vscode?"
1) Заходим в Extensions
2) Ищем и устанавливаем расширение vscode pets
3) При желании настраиваем
PS: Свои настройки расширения приложил.
<Наше сообщество/> <Менторство/>
Несколько раз спрашивали в комментариях: "Как поставить плашку с животными в vscode?"
1) Заходим в Extensions
2) Ищем и устанавливаем расширение vscode pets
3) При желании настраиваем
PS: Свои настройки расширения приложил.
<Наше сообщество/> <Менторство/>
❤21👍2
STR IT
Итоги уже завтра! Последний шанс принять участие в розыгрыше на лучшие книги для программиста
<Наше сообщество/> <Менторство/>
<Наше сообщество/> <Менторство/>
❤2👍1
STR IT
🎉 Результаты розыгрыша:
Победители:
1. Кирилл (@qwer1y_kkk)
2. 𝐁𝐨𝐠𝐝𝐚𝐧🏔️ (@gigachad_bogdan)
3. qa (@CornyFyEXE)
Проверить результаты
Победители:
1. Кирилл (@qwer1y_kkk)
2. 𝐁𝐨𝐠𝐝𝐚𝐧🏔️ (@gigachad_bogdan)
3. qa (@CornyFyEXE)
Проверить результаты
👍10
STR IT
Выбор дополнительных победителей (в количестве 1):
Победитель:
1. Гупалыч (@MontagemoToma)
Проверить результаты
Победитель:
1. Гупалыч (@MontagemoToma)
Проверить результаты
👏2❤1👍1
Деньги на IT / Как получать максимальный доход?
Долго думал, прежде чем написать пост на эту тему. Считал, что недостаточно способов опробовал на себе и не имею права рассуждать на эту тему. Но время шло, появлялись всё новые и новые пути заработка и я созрел, чтобы поделиться опытом с вами!
1) Дефолтная работа.😞 Начнём с основ, работа в найме - это стабильный ежемесячный доход. Если не получится с остальными способами - работа в найме не даст умереть с голоду. Необходимо: составить идеальное резюме и траить стажировки/джуновские позиции(если до этого не работал в найме)
2) Менторство. Следующий по сложности способ - обучать других людей. Главная сложность - нужно быть подкованным инженером в плане хард-скиллов, чтобы иметь возможность поделиться знаниями. А так же иметь не менее развитые софт-скиллы, чтобы находить общий язык с учениками. Senior разработчики могут брать 5000+ рублей за академический час преподавания, при этом у них не будет отбоя от учеников..
3) Медийка. Некст лвл сложности. Развивая ютуб/тикток/рилсы, ты сможешь собрать вокруг себя единомышленников - набираться у более знающих людей опыта и менторить менее знающих ребят. +при собеседовании в биг-тех компании, медийка может сыграть плюсом, например в Авито это сильно ценится
4) Фриланс. Считаю этот способ самым неблагодарным, тк приходится постоянно коммуницировать с очень неприятными людьми - заказчиками.. Но тем не менее опытные фрилансеры, работая в команде, могут выполнять тонны заказов - получая огромные деньги. Особенно, если работать на западный рынок)
Итого: разобрали самые легкие способы заработка денег на IT / Если не затронули какую-то важную тему - welcome в комментарии7
<Наше сообщество/> <Менторство/>
Долго думал, прежде чем написать пост на эту тему. Считал, что недостаточно способов опробовал на себе и не имею права рассуждать на эту тему. Но время шло, появлялись всё новые и новые пути заработка и я созрел, чтобы поделиться опытом с вами!
1) Дефолтная работа.
2) Менторство. Следующий по сложности способ - обучать других людей. Главная сложность - нужно быть подкованным инженером в плане хард-скиллов, чтобы иметь возможность поделиться знаниями. А так же иметь не менее развитые софт-скиллы, чтобы находить общий язык с учениками. Senior разработчики могут брать 5000+ рублей за академический час преподавания, при этом у них не будет отбоя от учеников..
3) Медийка. Некст лвл сложности. Развивая ютуб/тикток/рилсы, ты сможешь собрать вокруг себя единомышленников - набираться у более знающих людей опыта и менторить менее знающих ребят. +при собеседовании в биг-тех компании, медийка может сыграть плюсом, например в Авито это сильно ценится
4) Фриланс. Считаю этот способ самым неблагодарным, тк приходится постоянно коммуницировать с очень неприятными людьми - заказчиками.. Но тем не менее опытные фрилансеры, работая в команде, могут выполнять тонны заказов - получая огромные деньги. Особенно, если работать на западный рынок)
Итого: разобрали самые легкие способы заработка денег на IT / Если не затронули какую-то важную тему - welcome в комментарии7
<Наше сообщество/> <Менторство/>
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥4🤔4👍2🙏1🤡1🍓1
Продолжаю блок постов про алгосы, сегодня на очереди - связный список / Тоже частый посетитель алгоритмических собеседований. Связный список — это структура данных, где элементы (ноды) содержат данные и ссылку на следующий элемент (а в двусвязном списке — ещё и на предыдущий). В отличие от массивов, элементы списка могут располагаться в памяти хаотично, а не подряд.
Основные операции и их Big O:
1) Добавление в начало (prepend) → O(1)
Просто создаем новую ноду и меняем ссылку.
2) Добавление в конец (append) → O(1) (если есть указатель на хвост) или O(n) (если его нет)
В худшем случае придется пройти весь список, чтобы найти последний элемент.
3) Удаление с начала → O(1)
Просто передвигаем указатель головы на следующий элемент.
4) Удаление с конца → O(n)
Без указателя на предпоследний элемент придется пройти весь список.
5) Поиск элемента → O(n)
В худшем случае придется пройти весь список.
6) Доступ к элементу по индексу → O(n)
В отличие от массива, нет мгновенного доступа по индексу, нужно идти по списку.
Когда использовать Linked List?
1) Когда нужна быстрая вставка и удаление (например, в очередях или стэках).
2) Когда заранее не знаешь размер данных (список может динамически расти без перераспределения памяти).
3) Когда важнее последовательный доступ, а не случайный (например, история действий в браузере).
4) Когда хочешь пройти алгоритмический собес
Когда НЕ использовать Linked List?
1) Когда важен быстрый доступ по индексу (массивы лучше).
2) Когда нужно меньше расходовать память (ссылки на ноды занимают место).
Итог:
Linked List — полезная структура данных, но подходит не для всех задач. На собесах могут спросить его реализацию, поэтому полезно уметь кодить связный список с базовыми операциями.
Реализация на C++ / Реализация на JS / Практика на leetcode
<Наше сообщество/> <Менторство/>
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3🔥2👏1