STR IT
4.4K subscribers
525 photos
78 videos
618 links
Чат: https://t.iss.one/strc0mmunity
Связь: @strrrrr1
Ссылка для друга: https://t.iss.one/+vdzEFWiDYe1lMjky

Реклама на бирже: https://telega.in/c/strfrontend
Download Telegram
Отдых для программиста

Все хотят добиться быстрого результата в той или иной сфере: быстро выучить язык программирования, технологию и тд. Посмотрев мотивирующие тиктоки, истории других людей о вкате в 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

<Наше сообщество/> <Менторство/>
11❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Современные требования в IT

<Наше сообщество/>
16😁7🤣2🦄2
Как постоянно развиваться в IT? 5 главных правил

1. Насмотренность
— Чем чаще ты пытаешься разбираться в коде более квалифицированных специалистов — тем быстрее ты станешь таким же. Заглядывай в исходники библиотек, фреймворков или хотя бы в пет-проекты скилловых программистов, анализируй "Почему эту проблему решили именно так?". Со временем ты сможешь подходить к решением бытовых задач с разных сторон и выбирать лучшее решение.

2. Практика
— Чаще пиши код, а самое главное — применяй недавно полученные теоретические знания на практике. Изучил новые алгоритмы — реализовал их / познакомился с несколькими новыми библиотеками — сделал мини-проект на их основе.

3. Повторение
— То, о чем большинство забывает. Периодически повторяй изученные технологии, без повторения ни один нормальный человек не освоит сложную технологию (за исключением уникумов с фотографической памятью) / Сам стабильно раз в пол года перечитываю весь learn javascript

4. Нетворкинг
— IT — это командная игра. Участвуй в хакатонах, посещай митапы и конференции, чтобы расширять круг общения. Делись своими наработками с коллегами, объясняй свой код и предлагай новые библиотеки или подходы. Активничай в различных IT сообществах - например в нашем :)/ Короче говоря - старайся как можно чаще обмениваться опытом с другими людьми.

5. Непрерывное обучение
— Мир технологий меняется каждый день, и важно не отставать. Читай статьи, смотри видео и участвуй в семинарах, чтобы быть в курсе последних трендов. Постоянно осваивай новые технологии, архитектурные подходы и методологии. Это не просто полезно — это необходимо, если хочешь оставаться востребованным специалистом.

<Наше сообщество/> <Менторство/>
9👍42
Как не выгорать? Составил небольшую заметку, с лучшими практиками против выгорания:

Сохраняйте гармонию между работой и личной жизнью.
— Важно регулярно давать себе передышку. Проводите время на свежем воздухе, отправляйтесь в путешествия, займитесь физической активностью или уделите внимание своим увлечениям.

Учитесь говорить "нет".
— Не берите на себя больше, чем можете осилить. Если чувствуете, что ресурсы на исходе, не соглашайтесь на дополнительные обязанности.

Организуйте свой рабочий процесс.
— Разделяйте сложные задачи на более мелкие этапы и распределяйте их выполнение по времени. Но помните: чрезмерное планирование — провальное решение и путь к стагнации, хватит небольшого наброска планов на день.

Качество важнее количества.
— Лучше потратить меньше времени, но работать с полной концентрацией, чем тратить часы на непродуктивную деятельность. Избегайте отвлекающих факторов и сосредоточьтесь на главном.

Регулярно отдыхайте.
— Если чувствуете признаки усталости, не игнорируйте их. Иногда лучший способ восстановиться — это просто взять паузу.

Не перегружайте себя обучением.
— Опыт показывает, что 2–4 часа в день — это оптимальное время для эффективного обучения. Превышать эту норму не только бесполезно, но и вредно для продуктивности.

<Наше сообщество/> <Менторство/>
18
144🫡10👍7❤‍🔥1🔥1
Решаешь leetcode?
Anonymous Poll
32%
Да
68%
Нет
Как установить то самое Расширение с котами в IDE?

Несколько раз спрашивали в комментариях: "Как поставить плашку с животными в vscode?"

1) Заходим в Extensions
2) Ищем и устанавливаем расширение vscode pets
3) При желании настраиваем

PS: Свои настройки расширения приложил.

<Наше сообщество/> <Менторство/>
21👍2
Деньги на IT / Как получать максимальный доход?

Долго думал, прежде чем написать пост на эту тему. Считал, что недостаточно способов опробовал на себе и не имею права рассуждать на эту тему. Но время шло, появлялись всё новые и новые пути заработка и я созрел, чтобы поделиться опытом с вами!

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
Please open Telegram to view this post
VIEW IN TELEGRAM
1
💬 Linked List: Как пройти алгоритмический собес

Продолжаю блок постов про алгосы, сегодня на очереди - связный список / Тоже частый посетитель алгоритмических собеседований. Связный список — это структура данных, где элементы (ноды) содержат данные и ссылку на следующий элемент (а в двусвязном списке — ещё и на предыдущий). В отличие от массивов, элементы списка могут располагаться в памяти хаотично, а не подряд.

Основные операции и их 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