Nikita Sepi0l @nikitasepi0l Channel on Telegram

Nikita Sepi0l

@nikitasepi0l


Комьюнити лучших разработчиков мира - https://t.me/sepi0lscommunity

Слитые курсы: https://t.me/Sepi0lPrivate

Наш дискорд сервер: https://discord.gg/DYwJPBpgP9

Сотрудничество: @NikitaReva04

Nikita Sepi0l (Russian)

Добро пожаловать в сообщество лучших разработчиков мира - Nikita Sepi0l! Этот Telegram канал является местом, где собираются профессионалы в области разработки, чтобы обмениваться опытом, знаниями и советами. Ссылка на канал: https://t.me/sepi0lscommunity

Здесь вы найдете слитые курсы по различным темам, которые помогут вам расширить свои навыки и углубить знания. Ссылка на канал с курсами: https://t.me/Sepi0lPrivate

Кроме того, в нашем сообществе существует дискорд сервер, где вы сможете общаться с другими участниками, задавать вопросы и находить новых друзей. Присоединяйтесь к дискорд серверу по ссылке: https://discord.gg/DYwJPBpgP9

Если у вас есть предложения о сотрудничестве или вы хотите стать частью нашего сообщества, обращайтесь к @NikitaReva04. Мы всегда открыты к новым идеям и партнерствам. Присоединяйтесь к Nikita Sepi0l сегодня и станьте частью мирового сообщества лучших разработчиков!

Nikita Sepi0l

13 Nov, 17:07


Всем привет, в этом посту я затрону очень важную тему для каждого разработчика и программиста: Выгорание 🖨

Выгорание может случится из-за нескольких причин, основная из них это overload.

Как предотвратить выгорание 👇

1. Work-Life balance. Не забывайте отвлекаться от работы. Гуляйте, путешествуйте, занимайтесь спортом или вашими любимыми хобби.

2. Установите четкие границы работы. Не нужно ставить дополнительные задачи, когда у вас нет ресурсов на их выполнение.

3. Оптимизируйте рабочий процесс. Разбивайте большие задачи на под задачи и поставьте четкий тайм-менеджмент. Главное не переусердствовать.

4. Работать мало но продуктивно, а не много. Намного эффективнее работать меньше но сфокусировано, без отвлечения на ненужные вещи.

5. Брать отдых. Когда чувствуете что вы устаете - лучший вариант выхода это взять отдых.

6. Не переучиваться. По своему опыту могу сказать что 2-4 часа это максимум который стоит уделять в сутки. Больше учится не стоит.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

09 Nov, 17:44


Всем привет работяги программисты, 2024 на конце, тот самый год который испытывал на прочность каждого разработчика грустью и переживаниями.

В 2024 на пике оказалось 2 вещи за весь момент существования IT: Переполненный рынок и быстрое развитие ИИ.

Я как и многие переживал по этому поводу сильнее чем в другие года.

Кроме этого, максимально не стабильная ситуация в политическом мире за последние несколько лет привела многих к стрессу и состоянии депрессии. По этому, я решил выделить этот пост, для того чтобы поблагодарить именно тебя, читателя этого поста за твою работу и усердность.

Не важно многого ты добился, важно то что ты двигался, не смотря на все трудности которые встречались на твоем пути. Главное помнить, что твоя точка - отправная, а не конечная. Только мы решаем что будет у нас в будущем, главное не сдаваться.

Хочу сказать спасибо каждому, кто не смотря на негативное и слабое большинство продолжает питать веру в позитивных и сильных людей. Спасибо за то, что вы продолжаете свой путь в IT, что каждый ваш шаг вперед имеет возможность изменить мир (не важно в каких масштабах).

Конкретно я за 2024 год успел как и найти любовь к людям, так и разочароваться в них. Находил самое лучшее в разработке и самое худшее одновременно. Терял людей и находил новых. Разочаровывался в мире и обретал его новое понимание на хакатонах. Потерял веру в себя но получил свою первую официальную работу разработчиком в Германии.

В нынешнее время, у людей нет определенности, что делает нашу жизнь сложнее и ярче одновременно. Не зная как плохо - мы не сможем чувствовать как это хорошо.

В конце хочу сказать - как бы плохо тебе не было знай, что после любого шторма выходит солнце.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

01 Nov, 13:06


Рекурсия: Самоповторяющиеся алгоритмы.

Рекурсия - это метод программирования, при котором функция вызывает саму себя для решения более мелких подзадач.

Сама рекурсия обязательно состоит из двух ключевых частей 👇

1. Условие остановки рекурсии (Базовый случай).

2. Рекурсивный переход - шаг который приближает функцию к Базовому случаю.

Простой пример: вычисление факториала 👇

def factorial(n):
# Базовый случай
if n == 0 or n == 1:
return 1

# Рекурсивный переход
return n * factorial(n - 1)


Преимущества рекурсии

1. Чистота кода.
2. Простота реализации сложных алгоритмов простым подходом.
3. Обход древовидных структур для сортировки.

Минусы рекурсии

1. Высокое потребление памяти.
2. Возможность переполнить стэк вызовов (Stack overflow)
3. Меньшая производительность.

Рекурсия - мощный инструмент, который позволяет решать сложные задачи простым и понятным способом, что облегчает читаемость кода, особенно в масштабных проектах 🖨

Но, не стоит забывать про производительность и остановку функции. Иначе код может выполнятся медленнее, или переполнять стэк вызовов, в случае бесконечного вызова функции 💻

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

20 Oct, 12:27


Алгоритмы: Как покорить задачи на leetcode 🧐

В этом посте я поделюсь техникой решения алгоритмов от Duke University. Вся информация взята из курса на coursera 🚀

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

2. Запиши точно то что ты сделал.
— "Подумай внимательно о том, как ты выполнял сортировку вручную. Какие значения ты сравнивал? В каком порядке? Как ты понял, что сортировка завершена? Запиши эти шаги точно."

3. Сделай общие выводы.
— "Ищи закономерности в шагах, которые ты записал для Шага 2. Если ты повторял наборы шагов, как можно посчитать количество повторений? Если ты менял местами определённые значения при определённых условиях, что это были за условия? Есть ли переменные, которые нужно назвать для повторного использования? Запиши свой пошаговый обобщённый алгоритм."

4. Тестируй.
— "Выполняй свой алгоритм без кода, используя разные данные."

В общем и целом, действия будут выглядеть так 👇

1. Проработай пример вручную.

2. Запиши точно то что ты сделал.

3. Сделай общие выводы. Если не получилось, возвращайся на 1 шаг.

4. Тестируй. Если не получилось, возвращайся на 3 шаг.

5. Переводи в код.

6. Тестируй. Если результат неправильный, пройди на 7 шаг.

7. Дебаж программу. На этом этапе тебе стоит понять в чем проблема — в коде (вернись на шаг 5) или алгоритме (вернись на шаги 1 - 4).

Задача (простой уровень) 👇

Отсортируй список чисел от меньшего до большего, используя предоставленную технику выше 💻

const list = [-0.12, 0.53, 0.98, 1.36, 1.92, 3.18];


Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

13 Oct, 19:07


1000 откликов на вакансиях? 🧐

Делитесь этим постом со всеми, кто боится идти в айти из-за переполненного рынка, я отвечу почему это произошло в последние годы 🙂

Около месяца назад просматривая украинский рынок вакансий на junior позиции front-end и backend разработчиков я видел одинаковую картину. Без сомнений такая же ситуация царствует по всему миру в 2024 году.

Коронавирус 🦠 История начинается в 2020 году, когда пол мира перешло в режим онлайн. В то же время когда много людей сидело дома без работы, айти онлайн школы (GoIT, Skillbox) начали набирать популярность.

С маркетингом про то, что цена полного курса (на тот момент 1000$ в среднем) перекроется в первый месяц работы специалистом, все кому не лень начали проходить их. Я тоже проходил такой курс от которого было много ожиданий, но не вышло много результата 😬

Единственное, что было полезным это командные проекты, в которых я был тим лидом, из-за того, что половина моей команды были люди 30-50 лет с детьми которые только научились пользоваться компьютером.

Я веду к тому, что 90% людей на откликах в таких вакансиях, это люди, которым пообещали на курсах, что когда они выучат базовые технологии, они найдут работу. В реальности это не так. Компаниям не нужны такие разработчики.

На 2024 год, ситуация не сильно поменялась, массы до сих пор верят в онлайн курсы, что является фатальной ошибкой 🫠

Как все таки обогнать большинство людей? 👇

1. Учитесь больше. Не останавливайтесь. Чем глубже вы знаете вашу технологию, тем вы становитесь более ценным для компании.

2. Общайтесь с людьми. Чем больше вы слушаете уже трудоустроенных в компании, тем больше вы понимаете о процессе и реальности айти 2024 года.

3. Посещайте ивенты и хакатоны. Хакатоны это лучший способ показать свои скиллы в 2024 так как больше половины вакансий HRы не могут обработать. Я был приглашен на свое первую работу именно на хакатоне.

4. Развивайте соц. сети. Хорошо развитые LinkedIn и GitHub вместе с идеальным резюме всегда повысят шансы на то, что вас заметят.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

11 Oct, 08:14


Нетехнические навыки выдающегося разработчика и программиста 🚀

В нынешних реалиях IT недостаточно знать только технологии для того чтобы подниматься по ступенькам развития. Хороший разработчик должен быть эластичным и играть сразу несколько ролей 👨‍💻

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

Как развить: Практикуйте активное слушание, задавайте уточняющие вопросы.

2. Эффективная коммуникация. Умение объяснять сложные концепции простым языком. Навыки написания понятной документации.

Как развить: Регулярно пишите технические статьи или ведите блог (не обязательно публичный). Практикуйтесь в объяснении технических концепций другим специалистам.

3. Критическое мышление и решение проблем. Способность анализировать ситуацию с разных сторон. Творческий подход к сложным задачам.

Как развить: Решайте головоломки и задачи на leetcode.com. Участвуйте в хакатонах - тык.

4. Адаптивность и обучаемость. Готовность быстро осваивать новые технологии в команде. Невозможно работать в IT и не обучаться в процессе.

Как развить: Не бойтесь браться за задачи выполнение которых вас пугает. Регулярно изучайте новое - тык (как учиться эффективнее).

5. Управление временем и приоритетами. Эффективное планирование рабочего процесса. Умение фокусироваться на важном в условиях многозадачности.

Как развить: Практикуйтесь в тайм-менеджменте ежедневно. Записывайте задачи на каждый день с временем на их выполнение.

6. Архитектурное мышление. Составление правильного дизайна архитектуры, которая уже решает существующие проблемы. Не нужно изобретать решение проблемы архитектуры, когда решение уже готово.

Как развить: Изучать разные концепты архитектуры на сайтах по типу - https://refactoring.guru/.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

06 Oct, 07:43


Топ фильмов, которые должен посмотреть каждый программист 🚀

В этом списке будут фильмы, которые я посмотрел и считаю их теми, которые действительно будут интересны разработчикам и программистам 👨‍💻

1. Социальная сеть (2010). История о том как зарождался Facebook.

2. Игра в имитацию (2014). История Алана Тьюринга, британского математика, который присоединился к команде криптографов, для взлома фашистской шифровальной машины Enigma.

3. Mr. Robot (2015). Сериал о истории Эллиота Андерсона, хакере с психическими проблемами, цель которого изменить порядок мира.

4. Кремниевая долина (2014). Сериал о компашке программистов из калифорнии, которые пытаются пробиться в свет в кремниевой долине.

5. Стив Джобс (2015). История зарождения компании Apple.

6. Исходный код (2011). Фильм не про программирование на прямую, но показался очень захватывающим для меня. Рекомендую к просмотру.

Рассказывать о каждом фильме/сериале подробно не стал, так как пропадёт интерес к просмотру.

Всем хороших выходных и приятного просмотра данных фильмов 💻

Пишите в комментарии свои топы 👇🖨

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

01 Oct, 10:34


Что такое API и какие они бывают? 🧐

API (Application Programming Interface) — это интерфейс программирования приложений, который позволяет программам взаимодействовать друг с другом.

Простыми словами API это официант в ресторане. Представь что ты делаешь заказ (твой запрос, request), официант передает его на кухню (программа) и затем официант приносит тебе еду (ответ программы, response).

Какие существуют типы API? 👇

1. REST API (Representational State Transfer API). Идеальный тип для веб приложений, из-за того что построен на архитектурных принципах REST, которые работают через HTTP протокол:
Клиент-серверная архитектура
Отсутствие состояния (stateless)
Кэширование
Единый интерфейс (GET, POST, PUT, DELETE, PATCH)

2. SOAP API (Simple Object Access Protocol). Это протокол обмена сообщениями, который используется для взаимодействия между приложениями через сеть. Он более строгий и сложный чем REST.
Использует XML для обмена сообщениями.
Поддерживает высокий уровень безопасности (WS-Security).
— Накладывает строгие правила на формат запросов и ответов.
— Используется в корпоративных приложениях по типу банковских систем.

3. GraphQL. Более гибкий вариант REST API язык, для запроса данных к API, разработанный Facebook.
Один запрос может возвращать данные из нескольких ресурсов одновременно
Менее ресурсозатратен для сложных приложений, т.к. соц. сети.

4. gRPC (gRPC Remote Procedure Calls). Высокопроизводительный открытый фреймворк для вызова удаленных процедур (RPC), разработанный Google.
— Использует Protocol Buffers (protobuf), который является более компактным и быстрым форматом сериализации данных.
Поддерживает двухстороннюю потоковую передачу данных.
Часто применяется в высокопроизводительных распределенных системах, микросервисах и real-time приложениях.

5. WebSocket API. Протокол для двусторонней связи между клиентом и сервером по одному соединению, что делает его идеальным для real-time приложений.
Обеспечивает постоянное соединение между клиентом и сервером.
Широко используется в чат-приложениях, онлайн-играх и других real-time сервисах, где важна скорость и минимальная задержка.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

26 Sep, 10:44


Что такое коллбэки и зачем они нужны?🧐

Очень простая но базовая концепция в программировании, о которой должен знать каждый 🖨

Callback - это функция, которая передаётся в другую функцию как аргумент и вызывается позже, когда произойдет определённое событие или завершится операция.

Как это работает 👇

1. Передача функции. Коллбэк передается как аргумент в другую функцию.

2. Отложенное выполнение. Вместо немедленного выполнения, основная функция вызывает коллбэк по мере необходимости.

Пример на JS 👇

function fetchData(callback) {
setTimeout(() => {
console.log("Данные загружены");
callback();
}, 2000);
}

function processData() {
console.log("Обработка данных");
}

fetchData(processData);


Где они используются? 🧐

1. Асинхронные функции. Работа с сетевыми запросами, чтение файлов и взаимодействие с базами данных.

2. Обработка событий. В пользовательских интерфейсах часто используются коллбэки для обработки событий (клики, ввод и сохранение данных и т.д.).

3. Обработка ошибок. Передача функций для обработки исключений данных и т.д.).

4. Тестирование. Асинхронные тесты часто используют колбэки.

5. Middleware в веб-фреймворках. Например, Express.js в Node.js использует колбэки для обработки запросов.

Чего стоит боятся? 🧐

Callback Hell. Это проблема, когда вложенные друг в друга функции создают сложную для понимания структуру, что затрудняет поддержку масштабирования и поддержания кода.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

20 Sep, 08:48


Hackathon: мечта джуна в IT 🚀

Сегодня хочу поделится своей мини историей своего первого оффлайн хакатона. До этого один раз я был на онлайн версии NASA Space Apps, и разница между оффлайн и онлайн мега большая.

На входе встретил команду украинцев из Мюнхенского университета с которыми приятно пообщались и обменялись линкединами. После регистрации мы пошли на питчи челенджей от компаний. Мой челендж был для фарм компании Roche, а именно приложение для отслеживания/отображения потребления CO2 для каждого сотрудника на рабочем месте 💻

После питча я встретил свою команду 5ти человек из 5ти разных стран и 3х континентов (никто из них не был из Германии, не смотря на то, что хакатон проходил в Манхайме, Германия.) В первый день мы обсудили наш продукт, составили план, сходили в мак, начали работу и разошлись спать.

На следующий день после завтрака в маке и чашки кофе мы начали продуктивно работать. Через еще 3ти чашки кофе и хард метала во время кодинга 🖨 мы закончили наш MVP. Под конец дня у нас была готова презентация на питч с готовым хром расширением которое отслеживает использование хрома и запросов, потом с помощью алгоритма из чата гпт анализирует расход CO2 и отсылает данные на фронт-энд (написанный мною). Далее эти данные в реал тайме отображались на графике в веб приложении.

Атмосфера была заряженная, 60-70 человек в одной огромной комнате с ноутбуками пишут код и обсуждают решение их проблемы все вместе. Это не передать словами.

Вот сайт: https://ecotrack-gules.vercel.app/

Но, что самое ценное, на протяжении всего ивента я разобщался с многими профессионалами, разработчиками, программистами и просто интересными людьми, которые делясь своим опытом помогли мне в моем пути как разработчика в Германии 📈

В целом, для меня это послужило новым глотком воздуха мотивации и продуктивности. К сожалению наш продукт не выиграл, но после общения, шуток и смеха победа не играла большую роль.

Такие ивенты проводятся почти по всему миру, каждый из вас может найти и попробовать себя в этом экспириенсе. Кроме позитивных эмоций и общения, ни для кого не секрет что можно прорекламировать себя и найти работу, проект или команду для стартапа

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

15 Sep, 09:15


Мьютексы: защита общих ресурсов 🧐

Mutex - это механизм синхронизации, используемый в многопоточном программировании для предотвращения одновременного доступа нескольких потоков к общим ресурсам.

В многопоточных приложениях иногда возникает ситуация, когда несколько потоков пытаются одновременно обратиться к одному и тому же ресурсу (переменной, файлу). Это может привести к непредсказуемому поведению программы - race conditions.

Как они работают👇

1. Когда поток хочет получить доступ к общему ресурсу, он пытается захватить мьютекс.

2. Если мьютекс свободен, поток получает доступ к ресурсу и блокирует мьютекс.

3. Другие потоки, пытающиеся получить доступ к этому ресурсу, будут ждать, пока мьютекс не будет освобожден.

4. Когда поток завершает работу с ресурсом, он освобождает мьютекс, позволяя другим потокам получить доступ.

Пример👇

mutex = создать_мьютекс()

функция безопасное_увеличение(счетчик):
захватить(mutex)
счетчик = счетчик + 1
освободить(mutex)

// Использование в многопоточной среде
поток1 = создать_поток(безопасное_увеличение, счетчик)
поток2 = создать_поток(безопасное_увеличение, счетчик)


Мьютексы предотвращают конфликт доступа к ресурсам и упрощают разработку многопоточных приложений.

Однако, появляется возможность возникновения deadlocks при неправильном использовании и снижение производительности из-за ожидания освобождения мьютекса.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

10 Sep, 08:46


Deadlock в программировании: что это и как его избежать 🧐

Сегодня мы поговорим о проблеме, которая может возникнуть в многопоточных приложениях - deadlock (взаимной блокировке).

Deadlock - это ситуация, когда два или более потока находятся в состоянии ожидания ресурсов, удерживаемых друг другом, и ни один из них не может продолжить выполнение. Представьте себе два автомобиля, встретившихся на узком мосту - никто не может двигаться вперед, пока другой не уступит дорогу.

Как избежать deadlock? 👇

1. Упорядочивание блокировок. Всегда захватывайте ресурсы в одном и том же порядке.

2. Ограничение времени ожидания. Используйте таймауты при ожидании ресурсов.

3. Избегание вложенных блокировок. По возможности не захватывайте новые ресурсы удерживая другие.

4. Использование concurrent-структур. Применяйте потоко-безопасные коллекции и атомарные операции.

5. Правильное проектирование. Минимизируйте совместное использование ресурсов между потоками.

Более подробно в этой статье - тык.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

05 Sep, 11:29


Big O: Как измерить эффективность алгоритма 🧐

Представьте, что вы готовите блюдо. Насколько быстро вы справитесь? Это зависит от многих факторов - сложности рецепта, количества ингредиентов, вашего опыта.

Big O notation - похожая концепция для оценки алгоритмов в программировании 🖨

Big O показывает, как растет время выполнения алгоритма при увеличении объема входных данных.

Основные классы сложности 👇

1. O(1) - константное время. Алгоритм всегда выполняется за одинаковое время независимо от объема данных.

2. O(n) - линейное время. Время растет пропорционально объему данных. Например, поиск элемента в неотсортированном массиве.

3. O(log n) - логарифмическое время. /Эффективные алгоритмы, как бинарный поиск.

4. O(n^2) - квадратичное время. Время растет в квадрате от объема данных. Часто встречается в алгоритмах с вложенными циклами.

Понимание Big O важно для разработки масштабируемых программ. Этот принцип позволяет сравнивать алгоритмы прогнозируя производительность при больших объемах данных 💻

Более детально с примерами кода - тык.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

01 Sep, 11:42


Биохакинг для программистов 🤖

Как оптимизировать работу мозга для работы с кодом? На моем канале уже есть пост по тому, как эффективнее учиться - тык(мини протокол by Andrew Huberman).

В этом посте я добавлю список методик, пройдя через которые по очереди вы повысите свою эффективность.

1. Дофамин детокс. Звучит как клише, но это действительно работает. В связи с резким изменением нашей повседневной жизни, наш бейзлайн дофамина очень низок. (Improve your baseline dopamine by Andrew Huberman). Вкратце, нужно убрать всевозможные источники быстрого дофамина из вашей жизни (вкусная еда, соц. сети, тик токи, игры и т.п.) на 3-7 дней.

2. Monk Mode. Главный смысл этого режима заключается в том, чтобы взять контроль над своими мыслями, улучшить фокусировку и развить высокий уровень дисциплины. Плейлист по тому, как правильно соблюдать Монк мод.

3. Нейропластичность и Нейробиология. В этом подкасте, Andrew Huberman рассказывает практические навыки для повышения качества и легкости в обучении. В двух словах, при правильном уровне нейропластичности мозга, изучаемая информация усваивается во много раз проще.

Но, все эти 3 шага объединяет одно - сон. Без качественного сна наш организм не может выдавать высокую производительность.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

30 Aug, 15:38


Архитектура и почему она важна?🧐

Архитектура определяет структуру, использование, организацию всех компонентов проекта\программы, оптимизацию и скорость работы в команде и грамотность использования времени и денег.🚀

Ключевые причины её важности 👇

🫂 Управляемость и поддержка. Хорошая структура файлов делает функционал более понятным и управляемым для разработчиков. Это упрощает исправление ошибок и внесение изменений.

👨‍💻 Масштабируемость. Намного легче расширять проект, разбитый на модули, используя их повторно. Так же, разделение на микросервисы помогает распределить нагрузку между компонентами программы\приложения.

🤖 Повторное использование кода. Хорошо спроектированная архитектура позволяет использовать общие компоненты между разными частями приложения.

💻 Тестируемость. Код, разделенный на модули, позволяет изолировать компоненты и проводить тестирование в разы быстрее.

Подводя итог, архитектура - это основа разработки, которая определяет насколько продуктивно и успешно будет развиваться проект 👍

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

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

27 Aug, 09:38


Что такое гонки данных (race conditions) и как их избежать?🧐

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

Это может привести к непредсказуемому поведению программы, так как результат выполнения зависит от порядка выполнения потоков, который не контролируется.

Пример 👇

counter = 0

def increment():
global counter
for _ in range(1000):
counter += 1


Если два потока выполняют функцию increment одновременно, то оба могут прочитать старое значение counter, затем инкрементировать его и записать обратно одно и то же значение, пропустив инкремент другого потока. В результате итоговое значение counter будет меньше ожидаемого.

Как избежать👇

1. Избегание общих данных. Постарайтесь минимизировать их использование между потоками. При возможности, каждый поток должен работать с собственными данными.

2. Использование иммутабельных объектов. Если объект не изменяется после создания, то он безопасен для использования в нескольких потоках одновременно.

3. Использование механизмов синхронизации. Мьютексы, Семафоры, Мониторы.

Гонки данных могут привести к серьёзным проблемам, таким как сбои, потеря данных или уязвимости в безопасности, по-этому важно обращать внимание на их предотвращение.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

25 Aug, 08:34


Синхронное и Асинхронное программирование🖨

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

Синхронное программирование 👇

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

Асинхронное программирование 👇

Теперь представь, что в магазине есть много касс и ты можешь подойти к свободной не тратя время на ожидание. Или же в ресторане, когда ты сделал заказ тебе не нужно ждать пока твоя еда приготовится, ты можешь общаться с друзьями или читать мои посты.

Вывод 👇

В программировании асинхронность означает то, что функции могут выполняться не зависимо друг от друга. Если одна задача занимает много времени, программа не будет останавливаться и ждать ее выполнения. По-этому, взаимодействие с базой данных, HTTP запросы, парсинг больших файлов, работа с пользователем и т.д. должны быть асинхронны.

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

21 Aug, 10:36


Ресурсы для самостоятельного обучения 👩‍💻

Для удобства я вынес их в 3 категории - Новички\ Средние\ Продвинутые.

Так же вынес те платформы, которые подойдут всем 👇
1. Udemy - платформа с курсами по разным сложностям и ЯП. Есть скидки и есть 7 дневная пробная версия (можно создавать много аккаунтов и сидеть бесплатно).
2. Codecademy - курсы подстроятся под ваши нужды и по вашему уровню. Бесплатные курсы тут только для новичков.
3. Coursera - курсы от крупных компаний (т.к. Google). Они платные но можно подать аппликацию на их оплату (в большинстве случаев они дают бесплатный доступ).

Для новичков👇
1. YouTube - в Ютубе очень много материала для начинающих и будучи новичком можно узнать многое о программировании и разработке там.
2. Stepik (и подобные) - платформа с бесплатными курсами для новичков. Покупать платные не советую, так как они есть слитые.
3. FreeCodeCamp - платформа с гайдами по конкретным темам разных ЯП.

Средний уровень 👇
1. FreeCodeCamp - платформа с гайдами по конкретным темам разных ЯП.
2. LeetCode - решение алгоритмов.
3. CodeWars - решение алгоритмов.

Продвинутый уровень 👇
1. edX - платформа с курсами от MIT и Harvard.
2. Medium - сайт с блогами от разработчиков. Много идей исследований и знаний делится через Медиум.
3. LeetCode - решение алгоритмов (Сложные).
4. CodeWars - решение алгоритмов (Сложные).

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

17 Aug, 17:17


Я поставил Arch Linux 👩‍💻

Я решил написать этот пост чтобы поделится опытом и переживаниями на счет данной системы. P.s: пост написан с телефона, ноутбук пока что тыква.

Я начал с виртуалки, скачал, проблем особо не было, но это не дало смысл, потому что система которую я скачивал (bspwm by Zproger), не работает на виртуалках.

После тестовой скачки на вм, я глянул гайд как поставить дуалбут, дабы сохранить важные данные на моем win11 (в общем и целом, это очень хорошее решение). Нашел хорошее видео, но так как, я хотел поставить bspwm by Zproger, я решил совместить установку интуитивно, полагаясь на свою аккуратность.

Насколько я понял, когда я форматировал диск под арч (как мне казалось правильный - тот который я выделил под линукс) я стер EFI файлы винды.

Во время установки у меня возникла ошибка и я решил запустить винду дабы проверить диски. Когда я зашел в биос, загрузочного файла винды я уже не увидел. Проверив через shell filing system, терминал загрузки arch и режим восстановления виндовс (запустив перед этим режим восстановления с образа на флешке) я не нашел свой диск C.

В итоге я загрузил arch на отформатированный диск под чистую. Установка прошла успешно.

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

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

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>

Nikita Sepi0l

15 Aug, 08:40


Он написал приложение на $1M за 5 часов🧐

В этом посте я хочу поделится историей Доусона Ботсфорда, который за 5 часов написал приложение которое помогает web3 Ethereum юзерам узнать об Эирдропах.

Dawson Botsford - TypeScript Full-Stack developer на Node, React и Next и web3 разработчик (его GitHub).

До создания earnifi, Доусон сильно увлекался Хакатонами. Его идея на хакатонах была в том, что разработка может повлиять на мир и что буквально за пару дней можно создать компанию решая различные проблемы.

После создания он рекламировал свое приложение в twitter, публикуя самые большие Эирдропы найденные у web3 инфлюенсеров и тегая их в посте на протяжении 25 дней.

Набрав аудиторию в твиттере и более 10к юзеров в своем приложении, он подключил рассылку по почте и платную подписку, что-бы можно было забрать Эирдроп (что очевидно окупится сразу же после клейма).

В конце, Доусон продал earnifi компании Bankless и стал соло-разработчиком миллионером 💻

Итог такой: Если вы видите проблему и ее решение - никогда не бойтесь попробовать, Доусон потратил 0$ на продвижение своей идеи, по-этому возможность изменить свою жизнь разработкой есть у каждого 🚀

Пост навигатор 👩‍💻

nikitasepi0l ⬅️ <ЧАТИК/>