10.9K subscribers
340 photos
17 videos
15 files
716 links
Архитектура | Программирование | Профессиональное развитие

Live канал - https://t.iss.one/soer_live

SOER CLUB - https://soer.pro или https://boosty.to/s0er

Бусты - https://t.iss.one/boost/softwareengineervlog

№ 5101661084
Download Telegram
Новогодний стрим с участниками Соер.Клуба

В Воскресенье 10:00 Мск (22.12.2024) пройдет новогодний стрим, в программе:

- Подводим итоги года
- Обсуждаем что ждет АйТи в 2025
- Подводим итоги конкурса Золотой Соер 2024
- Общение с чатом

Приходите и проведите время с пользой!

SOER | PRO | Boosty
🔥227👍5👌11
Челлендж: 🤣🤣🤣 Расскажи бабушке про статанализ

Скоро Новый год, время подарков и несерьезных челленджей.

Задача простая: в комментариях к этому посту максимально простым языком напишите что такое статанлиз, так чтобы даже бабушка поняла (можно в шуточной форме).

Кто соберет больше всего положительных реакций под комментарием получит приз - книгу «60 антипаттернов для С++ программиста» автор Андрей Карпов - сооснователь копании PVS-Studio.

Книга будет полезна новичкам, кто хочет глубже изучить C++ и понять почему некоторые вещи делать вредно. А самое ценное - в книге опсано еще и "почему" вредно!

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

P.S. Итоги подведем на стриме в выходные! Торопитесь, времени мало!

SOER | PRO | Boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥411
Почему люди боятся совершать действия?

Легко дать совет: «Сходи на 10 собеседований», «Предложи начальнику внедрить новую фичу», «Возьми на себя дополнительную активность», «Реши 30 задач на литкоде» и т. д. Такие вещи постоянно советуют со всех сторон. Почему эти советы не такие простые, как кажутся? Давайте размышлять.

👉 Проблема: «Наш мозг ленив».

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

Много читал и слушал материала на эту тему, насколько я понял, проблема в том, что наш мозг суперзатратная (с позиции энергии) штука, и если хвататься за все подряд, то энергии может не хватить на что-то важное.

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

👉 Проблема: «Нам страшно».

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

Под потерями, как правило, понимается время и деньги. Если речь заходит о деньгах, то всё — стоп машина, никуда не едем.

Другая потеря — это репутация, которая сводится к мысли «А что обо мне подумают люди?». Спойлер: как правило, люди либо ничего не подумают, либо подумают, что ты дурак, независимо от твоего действия или бездействия.

👉 Проблема: «Избыток информации».

Первые две проблемы, как правило, парализуют волю, а вот третья проблема заставляет кипеть мозг. Даже если человек решил что-то сделать, то возникает момент «А с чего начать?», и тут целый ворох информации обрушивается со всех сторон.

Даже простая задача — «сходить на собеседование», порождает кучу вопросов: «Куда?», «Как подготовиться?», «Почему не зовут?», «Что, если провалю?» и т. д. Поэтому оказывается, что простые советы на деле не имеют простых, понятных планов действия.

👑 Что делать?

Для меня эффективна стратегия «маленьких шагов», я уже много раз говорил, что такой подход решает приведенные проблемы:

💪 Решение проблемы «Мозг ленив»: мозг не воспринимает «маленький шаг» как что-то опасное или энергозатратное.
💪 Решение проблемаы«Нам страшно»: при маленьком шаге и потери воспринимаются не так опасно.
💪 Решение проблемы «Ворох информации»: чем проще действие, которое нужно совершить, тем понятнее, что нужно делать.

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

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

Со временем привычка совершать небольшие действия приведет к аккумулированию результата. И вы удивитесь, на что способны.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥17🤡5🌚2🤝2😁1
В воскресенье 10:00 по Мск, проведем стрим с победителями "Золотой Соер 2024", поговорим про личные каналы, сложности поиска идей для контента, сложности производства контента, а так же ответим на вопросы из чата.
Приходите будет интересно!
🔥29👍13💩73👎11
Forwarded from Деплой (Vasiliy)
Про критику, конфликты и российское IT / В офисе S0ER

Финальное интервью этого года - откровенный разговор с Соером.

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

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

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

Смотрим! | 📱YouTube | 📱VK | 💙RuTube |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4310🔥5😁1
Важно! Я хочу ещё раз предостеречь своих подписчиков, в сети появились фейковые материалы в мой адрес:
- каналы от моего имени (Внимание! у одного из каналов скопировано отображаемое имя и аватарка с S0ER.live)
- комментарии форварднутые из фейковых каналов, а так же скриншоты этих сообщений
- аудиозаписи сделанные с использованием нейронок (дипфейки)
- вероятно есть и фейковые фото.

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

Я не могу ничего с этим поделать, надеюсь, что если не отвечать, то пройдёт само собой. В чем цель я пока не очень понимаю, выглядит как дурацкая шутка, почти все материалы так или иначе появляются в одном месте.
27👍19😱7🤣7👌3👎2😁2💅1
Очередное видео на канале S0ER Talks, на этот раз поговорим про софтскилы и так ли они важны. Ищите на всех основных площадках страны:
👀 YouTube | 👀 VK | 📹RuTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍8🤡3
S0ER.Talks: Красные флаги компании на что обратить внимание программисту
Опубликовал видео с размышлениями о найме, на что обратить внимание, если вы хотите устроиться в хорошую компанию.

👀YouTube |👀 VK | 📹RuTube
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥20🤡176🤣44👍2🤮1
Для подписчиков soer.pro (уровень stream и выше) создал группу 👥"Фанзона" в телеграм ✈️, чтобы туда попасть:

💡Подключить на Платформе свой телеграм аккаунт https://platform.soer.pro/#!/pages/account/profile
💡Добавить группу "Фанзона" https://platform.soer.pro/#!/pages/overview/groups
💡Перейти по ссылке на Telegram




Бонусы фанзоны:

- ранний доступ к видео S0ER.Talks (я сейчас пишу по 2-3 видео в неделю, а публикую раз в неделю, чтобы не ждать, можно смотреть в фанзоне)

- контент план ближайших видео и стримов

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

- Обмен опытом (все кому нужны небольшие советы могут задать их в фанзоне и участники подскажут)

- неизданные видео

- планирование встреч по городам

В целом эта группа для тех кому нравится мой контент и не хочется ждать его выхода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1873🤮2
S0ER.Talks: Красные флаги для компании, на что смотрит бизнес, прежде чем вас нанять.

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

👀 YouTube | 👀 VK | 📹 RuTube
Please open Telegram to view this post
VIEW IN TELEGRAM
16118🤮4👍2
Forwarded from S0ER.Teach
Сделал мастеркласс по версионированию документов в SPA

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

👉 множественная обработка одних и тех же данных (например, мы редактируем документ с мобильного и десктопа), нужно понять, какие данные в каком порядке были изменены;

👉двойная загрузка данных на клиенте и, как следствие, потеря несохраненных изменений;

👉ошибки синхронизации стейта (кто раньше, кто позже).

В качестве примера взят механизм создания документов, которые используются в NarisApp.

Посмотреть воркшоп на платформе. так же можно посмотреть видео с описанием проблемы.
👍1365🤮2👻1
S0ER.Talks: Почему кажется, что архитектура не нужна

Разговорное видео в котором я подвел итог недавнему разговору в канале S0ER, где обсуждали состояние архитектуры и ее влияние на код.

👀YouTube |👀 VK |📹 RuTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥75🤮21🤔1
Forwarded from S0ER.Code
Низкий уровень: как выглядят вызовы функций по указателю на ASM

В языках высокого уровня, таких как C или C++, часто используются указатели на функции. Это позволяет динамически выбирать, какую функцию вызвать в runtime. Но как это выглядит на уровне ассемблера? Давайте разберемся.

Для начала рассмотрим простой пример на C, где используется указатель на функцию:

int callme() { 
return 1;
}

void main() {
int (*func_ptr)() = callme;
func_ptr();
}

Здесь мы создаем указатель на функцию func_ptr, который указывает на функцию callme, и затем вызываем функцию через этот указатель.

Как это выглядит в ассемблере?

Используем Compiler Explorer, чтобы преобразовать этот код в ассемблер. Вот что получилось:

callme: 
push rbp
mov rbp, rsp
mov eax, 1
pop rbp
ret
main:
push rbp
mov rbp, rsp
sub rsp, 16
mov QWORD PTR [rbp-8], OFFSET FLAT:callme
mov rax, QWORD PTR [rbp-8]
call rax
nop
leave
ret

Что здесь происходит?

Создание указателя на функцию:

В функции main мы видим, что адрес функции callme сохраняется в памяти по адресу [rbp-8]:

mov QWORD PTR [rbp-8], OFFSET FLAT:callme

Здесь OFFSET FLAT:callme — это адрес функции callme в памяти.

Загрузка указателя в регистр:

Затем этот адрес загружается в регистр rax:

mov rax, QWORD PTR [rbp-8]

Вызов функции по указателю:

После этого происходит вызов функции через регистр rax:

call rax

Инструкция call использует значение в регистре rax как адрес функции, на которую нужно перейти.

Пролог и эпилог

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

Пролог:

push rbp
mov rbp,
rsp sub rsp, 16

Здесь сохраняется значение rbp, устанавливается новый кадр стека и выделяется место для локальных переменных.

Эпилог:

leave ret

Здесь восстанавливается значение rbp и выполняется возврат из функции.

Пример с массивом в функции

Давайте добавим массив в функцию callme и посмотрим, как это повлияет на ассемблерный код:

int callme() { 
char a[128];
return 1;
}

В ассемблере это будет выглядеть так:

callme:
push rbp
mov rbp, rsp
sub rsp, 8 ; <-- обратите внимание, тут сработала Red Zone
mov eax, 1
leave
ret

Здесь видно, что в прологе добавилась инструкция sub rsp, 128, которая выделяет место на стеке для массива a[128].

Вывод

Сегодня мы узнали, как вызов функций по указателю выглядит на уровне ассемблера.

Основные моменты:

Указатель на функцию — это просто адрес функции в памяти.
Вызов функции по указателю осуществляется через регистр, в котором хранится адрес функции.

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

Таким образом, даже такие высокоуровневые конструкции, как указатели на функции, имеют свое прямое отражение в ассемблерном коде.
🔥35👍14🤯754
Forwarded from S0ER.Arch
История успеха: NPM — как небольшой проект стал основой экосистемы JavaScript

Сегодня поговорим о NPM (Node Package Manager) — одном из самых важных инструментов в мире JavaScript. Это не просто менеджер пакетов, а целая экосистема, которая изменила способ разработки программного обеспечения. Давайте разберемся, как NPM стал таким успешным.

Начало: 2009 год

В 2009 году Райан Дал (Ryan Dahl) представил миру Node.js — среду выполнения JavaScript на стороне сервера. Node.js быстро набрал популярность благодаря своей асинхронной модели и высокой производительности. Однако разработчикам не хватало удобного способа делиться кодом и управлять зависимостями.

Именно тогда на сцену вышел NPM. Его создал Айзек Шлютер (Isaac Z. Schlueter) в 2010 году. Изначально NPM задумывался как простой инструмент для установки и управления пакетами в Node.js. Первая версия NPM была выпущена в январе 2010 года, и уже через несколько месяцев она стала стандартом для работы с пакетами в Node.js.

Рост экосистемы

NPM быстро стал популярным благодаря своей простоте и удобству. Вот несколько ключевых факторов, которые способствовали его успеху:

Простота использования

NPM предоставил разработчикам простой интерфейс командной строки для установки пакетов. Например, чтобы установить пакет, достаточно было выполнить команду: npm install package-name

Централизованный реестр пакетов

NPM создал централизованный реестр пакетов, где разработчики могли публиковать свои библиотеки и находить нужные инструменты. Это сделало процесс обмена кодом быстрым и удобным.

Поддержка зависимостей

NPM автоматически управлял зависимостями между пакетами, что значительно упрощало разработку. Файл package.json стал стандартом для описания проекта и его зависимостей.

Расцвет: 2014–2016 годы

К 2014 году NPM стал неотъемлемой частью экосистемы JavaScript. Количество пакетов в реестре росло экспоненциально.

Рост числа пакетов

В 2014 году в реестре NPM было около 100 000 пакетов. К 2016 году их количество превысило 350 000.

NPM Inc.

В 2014 году Айзек Шлютер основал компанию NPM Inc., чтобы коммерциализировать проект. Компания начала предлагать платные услуги, такие как приватные репозитории и инструменты для корпоративных клиентов.

Интеграция с другими инструментами

NPM стал интегрироваться с популярными инструментами, такими как WebpackBabel и React, что сделало его еще более востребованным.

Кризис и восстановление

В 2016 году NPM столкнулся с серьезным кризисом. Один из разработчиков удалил свой пакет left-pad, что привело к сбою в работе тысяч проектов. Этот инцидент показал уязвимость экосистемы, зависимой от небольших пакетов.

Однако NPM быстро отреагировал на ситуацию:
Была введена политика, запрещающая удаление пакетов, которые используются другими проектами.

Команда NPM начала активно работать над улучшением стабильности и безопасности реестра.

NPM сегодня

Сегодня NPM — это огромная экосистема, которая включает:
Более 2 миллионов пакетов в реестре.

Десятки миллионов разработчиков по всему миру.
Интеграцию с современными инструментами, такими как Yarn и pnpm.

В 2020 году компания GitHub (принадлежащая Microsoft) приобрела NPM Inc. Это событие укрепило позиции NPM как стандарта для управления пакетами в JavaScript.

Причины успеха NPM:

- Простота и удобство

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

- Сильное сообщество

Открытость и поддержка сообщества стали ключевыми факторами роста.

- Адаптивность

NPM смог пережить кризисы и адаптироваться к меняющимся требованиям разработчиков.


- Коммерциализация

Создание NPM Inc. позволило проекту развиваться и предлагать новые функции для корпоративных клиентов.

Заключение
NPM — это не просто инструмент, а целая экосистема, которая изменила мир разработки. Его история успеха показывает, как OpenSource-проект может стать стандартом индустрии и вдохновить миллионы разработчиков по всему миру.
👍459🔥442💅1
Пластичность психики

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

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

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

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

Как развить психическую гибкость?

Вот несколько советов, которые помогут сохранить и развить пластичность психики:

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

👑 Четко определите свои стратегические цели. Это позволит вам двигаться вперед, не отвлекаясь на второстепенное.

👑 Поймите, как ваши ценности связаны с вашими целями. Это поможет отфильтровать лишнее и сосредоточиться на том, что действительно имеет значение.

👑 Работайте над тем, что важно именно для вас. Не стоит принимать чужие ценности и цели как свои собственные.

👑 Старайтесь реагировать проактивно, а не реактивно. Проактивность помогает сохранять контроль над ситуацией и не поддаваться эмоциям.

👑 Помните, что никто не идеален. Вы не обязаны оправдывать чужие ожидания — важно оставаться верным себе.


Если интересно продолжить обсуждение книги, то подключайтесь в группу Книжник на soer.pro
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🤡125👎321
Вышло видео "Архитектура веб-приложения для облачного решения"

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

Первый шаг к реализации этой идеи сделан, на канале появилось вводное видео в котором я рассказал:

👑 как будет строиться архитектура NarisApp в облаке

👑 какие ресурсы понадобятся

👑 какие проблемы заметны уже сейчас

Видео доступно на всех площадках: 👀YouTube | 👀VK | 📹RuTube
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥36👍11
Что за «база», которая нужна в IT?

Что такое эта ваша «база»? Все знают, что она нужна, но проблема в том, что никто не может толком сказать, о какой такой «базе» идет речь.

Профессионалы под базой понимают не набор знаний, который можно чекнуть вопросами по типу «Скажи, сколько битов в одном байте?», а способность человека усваивать новые навыки при развитии в IT.

База — это набор навыков, которые позволяют человеку декомпозировать задачи, искать алгоритмическое решение, уметь планировать ресурсы и правильно распределять нагрузку. Условные «тренажеры» для формирования базы — это книги, «коммерческая» практика, обмен опытом с коллегами и прочие вопросы. Но есть нюанс: сами по себе книги не являются этой самой базой, а только инструментом!

Давайте на примере.

Вы наверняка слышали фразу, мол, если хочешь вкатиться в IT, то тебе нужна БАЗА, которую лучше постигать с ментором, и прочие бла-бла-бла. Помните этот идиотский пример про «спортзал» и тренера? Типа «хочешь идеальное тело, то тебе будет проще его получить с тренером». Подвох тут в том, что идеальное тело не достигается исключительно правильным подходом к нужным тренажерам под присмотром тренера.

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

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

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

Когда вам в очередной раз начнут впаривать про спортзал и волшебных менторов, задайте вопрос: «Что я буду УМЕТЬ после твоей помощи, какие НАВЫКИ ты поможешь сформировать, чтобы дальше я шел своим путем без постоянной необходимости возвращаться к тебе при каждом новом задании на работе?» Удивитесь, но вам расскажут про спортзал и тренажеры, про «чек-листы с правильными ответами» и ни слова про умения и навыки. Потому что никаких умений и навыков вам давать не планируют. Так работает современный бизнес: сначала вам скажут «пройдешь собес, и все завертится», а потом «подпишут» на помощь при прохождении испытательного срока.

Еще раз запомните: база — это навыки и опыт, которые помогают сформировать ваш главный инструмент как инженера — ваш мозг!
🔥56👍30🤡12👏32😁1