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
Форматирование голосование не очень удачное, поэтому ссылки и доп. инфа:

https://t.iss.one/ivanchikovitclub/23
https://t.iss.one/UniArchitect/90
https://t.iss.one/scripthoundme/661
https://mikevetkin.t.iss.one/49
https://t.iss.one/devfm/514
https://t.iss.one/frontend_fiesta/24

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

Вот ссылка на оригинальный пост с описанием конкурса - https://t.iss.one/softwareengineervlog/2247
👍11🤡72👎1
Читать книги до конца или все же откладывать если не идет?

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

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

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

Полезно продолжение чтения по следующим признакам:

👑 Сложный материал

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

- Если глава даётся с большим трудом, но дело двигается, то это полезное чтение и бросать его нельзя.

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

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

👑 Устаревший материал

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

👑 поверхностное изложение

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

👑 много историй из жизни

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

👑 пересказ документации

Если книга просто повторяет документацию, то читать её смысла нет, это чуть ли не единственный случай, когда я отсекаю книгу сразу.

👑 справочный материал

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


👑 остальные случаи

Обычно книги читать интересно, потому что ощущаю пользу от чтения. Люблю размышлять как можно применить знания из книги, отмечаю важные моменты, пытаюсь после прочтения главы пересказать и отметить главное.

Книг, которые оставляют позитивные ощущения и которые хочется прочитать до конца, гораздо больше скучных и неинтересных. Даже плохие книги не так бесполезны как кажется, поэтому лучше научиться быстро читать, чем мучиться желанием отложить книгу, и оставлять ощущение незавершенности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍435🤔33🤡1
Новогодний стрим с участниками Соер.Клуба

В Воскресенье 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