10.9K subscribers
340 photos
17 videos
15 files
715 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 по Мск, проведем стрим с победителями "Золотой Соер 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
На S0ER Talks выпустил видео "Технологические моменты разработки", немного попытался затронуть вопрос, что не кодом единым живет продукт.

👀 YouTube | 👀VK | 📹RuTube
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍105🤮1
Фальсифицируемость стратегии «сверхзанятости».

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

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

1. Сохранение всех рабочих мест

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

Пример: Сотрудник был уволен с основной работы после того, как работодатель узнал о его подработке.

2. Качество выполнения задач

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

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

3. Отсутствие негативных последствий для здоровья

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

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

4. Сохранение дохода

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

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

5. Отсутствие юридических или этических проблем

- Критерий фальсифицируемости: Если сотрудник сталкивается с юридическими последствиями (например, судебные иски от работодателей) или теряет репутацию в профессиональной среде, стратегия считается неудачной.

Пример: Работодатель подал в суд на сотрудника за нарушение трудового договора, запрещающего подработку.

6. Достижение личных целей

- Критерий фальсифицируемости: Если overemployment не помогает достичь поставленных целей (например, накопление средств, развитие навыков или карьерный рост), стратегия считается неудачной.

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

👑 Оценка успешности. Так как мы смогли сформулировать, что стратегия "проверяема", и в некоторых случаях ее можно считать неудачной, но при этом она все равно имеет право на существование, то теперь давайте оценим ее качество. Важно уточнить, что фальсифицируемость — это не просто проверяемость, а возможность опровергнуть стратегию при определённых условиях. Например, если стратегия сверхзанятости приводит к потере работы, это опровергает её успешность.

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

Стоит ли рисковать? Тут каждый должен ответить для себя сам, для многих не существует иного варианта заработать за счет карьерного роста или предпринимательской деятельности, поэтому за неимением лучшего используют то, что есть. Но в связи с рискованностью стратегии я бы не советовал оформлять долгосрочные кредиты, лучше рассчитывать на накопление средств, а то по итогу можно оказаться не только без средств, но и без имущества.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍29🤡9🤔43😁221
Сегодня начал дарить подарки 🎁 за развитие айти блогинга, думаю, что это отличный способ мотивировать авторов развиваться и делать ещё более крутой контент.

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

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

И главное помните хардскилы - это сила. 💡
Please open Telegram to view this post
VIEW IN TELEGRAM
125👍106🤡4🤣4