Forwarded from Книжный куб (Alexander Polomodov)
Code of Leadership #31 - Hooked: how to build habit-forming products (Рубрика #Management)
Новый эпизод подкаста посвящён обсуждению книги Нира Эяля «На крючке» и её модели создания продуктов, формирующих привычки. Для обсуждения книги пришел Евгений Сергеев (S0ER), который поделился опытом применения модели в разработке ПО, обсуждения её этических аспектов и влияния на пользователей. В общении мы затронули темы поведенческих триггеров, адаптации продуктов к привычкам пользователей, а также эволюции технологий, программирования и роли разработчиков. Особое внимание уделили важности обратной связи, доверия пользователей и интеграции продуктов в экосистемы.
Евгений уже много лет публикует хорошие видео на Youtube на канале S0ER, а также у него есть каналы в tg (@softwareengineervlog и @soer_live). Он много рассказывает про хард скиллы в обще, а также про проектирование и архитектуру в частности.
Выпуск подкаста доступен в Youtube, VK Video, Podster.fm, Ya Music.
#Architecture #Software #Engineering #ProductManagement #Management #Economics
Новый эпизод подкаста посвящён обсуждению книги Нира Эяля «На крючке» и её модели создания продуктов, формирующих привычки. Для обсуждения книги пришел Евгений Сергеев (S0ER), который поделился опытом применения модели в разработке ПО, обсуждения её этических аспектов и влияния на пользователей. В общении мы затронули темы поведенческих триггеров, адаптации продуктов к привычкам пользователей, а также эволюции технологий, программирования и роли разработчиков. Особое внимание уделили важности обратной связи, доверия пользователей и интеграции продуктов в экосистемы.
Евгений уже много лет публикует хорошие видео на Youtube на канале S0ER, а также у него есть каналы в tg (@softwareengineervlog и @soer_live). Он много рассказывает про хард скиллы в обще, а также про проектирование и архитектуру в частности.
Выпуск подкаста доступен в Youtube, VK Video, Podster.fm, Ya Music.
#Architecture #Software #Engineering #ProductManagement #Management #Economics
YouTube
Code of Leadership #31 - Hooked: how to build habit-forming products
Этот эпизод подкаста посвящён обсуждению книги Нира Эяля «На крючке» и её модели создания продуктов, формирующих привычки. Для обсуждения книги пришел Евгений Сергеев (S0ER), который поделился опытом применения модели в разработке ПО, обсуждения её этических…
Forwarded from Cloud.ru Tech
Устраивайтесь поудобнее: будем разворачивать ВМ 🚬
Делимся новым видео на канале S0ER.
Женя рассказал, как выбрать и настроить ВМ, как установить Docker, Node.js и другие инструменты для разработки, а также как настроить терминал и плагин Tix для совместной работы.
Посмотреть можно по ссылкам:
😶🌫️ YouTube
😶🌫️ VK видео
😶🌫️ RuTube
Еще больше сценариев использования платформы Cloud․ru Evolution ищите по ссылке👈
Делимся новым видео на канале S0ER.
Женя рассказал, как выбрать и настроить ВМ, как установить Docker, Node.js и другие инструменты для разработки, а также как настроить терминал и плагин Tix для совместной работы.
Посмотреть можно по ссылкам:
Еще больше сценариев использования платформы Cloud․ru Evolution ищите по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Разворачиваем в облаке машину разработчика
#soer #itubeteam
Видеоинструкция как развернуть полноценную машину разруботку nodejs + NVIM + Docker
Инструкция: https://platform.soer.pro/#!/pages/blog/(feed//overlay:view/13581)
Основной канал для общения и публикации новых видео - Телегарм - https…
Видеоинструкция как развернуть полноценную машину разруботку nodejs + NVIM + Docker
Инструкция: https://platform.soer.pro/#!/pages/blog/(feed//overlay:view/13581)
Основной канал для общения и публикации новых видео - Телегарм - https…
Forwarded from S0ER.live
Заметил за собой странное искажение, которое возникает при работе с LLM.
Когда что-то не получается, я злюсь на себя, думая что не могу правильно сформулировать задачу, так чтобы ИИ меня понял. Ищу другие промпты, пытаюсь играть с версиями моделей, менять русский на английский и т.д.
Мысль, что я пытаюсь заставить решать GPT что-то выходящие за рамки его возможностей в голову почему-то не приходит.
Когда что-то не получается, я злюсь на себя, думая что не могу правильно сформулировать задачу, так чтобы ИИ меня понял. Ищу другие промпты, пытаюсь играть с версиями моделей, менять русский на английский и т.д.
Мысль, что я пытаюсь заставить решать GPT что-то выходящие за рамки его возможностей в голову почему-то не приходит.
Forwarded from S0ER.Code
Всегда ли короткие имена переменных - зло?
Никто не будет спорить с тем, что имена переменных в коде должны быть понятными и выразительными. Но с тем, что выразительное имя - это всегда полное длинное описание из которого можно сделать вывод для чего существует та или иная переменная - это тема для спора.
Я люблю короткие имена переменных, люблю аббревиатуры, часто их использую и мне не нравится писать длинные имена по типу "encodedDataBasePasswordStr", даже с автокомплитом.
Поэтому давайте сформулирую свои правила в отношении коротких имен переменных.
👑 Когда короткие имена приемлемы
✅ В небольших методах с очевидным контекстом
✅ В математических вычислениях, где традиционно используются короткие обозначения
✅ Для итераторов в небольших циклах
✅ В лямбда-функциях, где контекст ясен
Пример оправданного короткого имени.
В этом случае:
x1, y1, x2, y2 - стандартные математические обозначения координат
dx, dy - общепринятые сокращения для "delta x" и "delta y"
А типы параметров (number) делают назначение переменных ещё понятнее
👑 Когда короткие имена недопустимы
Однако есть ситуации, когда короткие имена действительно становятся проблемой:
✅ В больших методах, где контекст теряется
✅ Для переменных с широкой областью видимости
✅ Когда назначение переменной неочевидно
✅ Для булевых флагов, где важно понимать критерий
Пример плохого использования:
При этом вместо 'u' вполне можно было использовать сокращения usr, а вместо 'c' использовать cfg, это устоявшиеся сокращения, поэтому использовать их можно.
Когда есть возможность аннатировать переменную ее типом, с учетом небольшого размера функции, нормальным становится и вариант с u:
Для итераторов в небольших циклах короткие имена допустимы:
В функциональном программировании для простых операций:
👑 Надеюсь, приведенные пример убедили вас, что в зависимости от ситуации короткие имена переменных не только допустимы, но и помогают писать выразительный код.
Никто не будет спорить с тем, что имена переменных в коде должны быть понятными и выразительными. Но с тем, что выразительное имя - это всегда полное длинное описание из которого можно сделать вывод для чего существует та или иная переменная - это тема для спора.
Я люблю короткие имена переменных, люблю аббревиатуры, часто их использую и мне не нравится писать длинные имена по типу "encodedDataBasePasswordStr", даже с автокомплитом.
Поэтому давайте сформулирую свои правила в отношении коротких имен переменных.
Пример оправданного короткого имени.
function calculateDistance(x1: number, y1: number, x2: number, y2: number): number {
const dx = x2 - x1;
const dy = y2 - y1;
return Math.sqrt(dx * dx + dy * dy);
}
В этом случае:
x1, y1, x2, y2 - стандартные математические обозначения координат
dx, dy - общепринятые сокращения для "delta x" и "delta y"
А типы параметров (number) делают назначение переменных ещё понятнее
Однако есть ситуации, когда короткие имена действительно становятся проблемой:
Пример плохого использования:
function processUserData(u: User, d: DataProcessor, c: Config) {
// ... 50 строк кода ...
if (u.s) { // Что такое 's'? Статус? Субscription? Счёт?
d.p(u); // Что делает 'p'? process? print? persist?
}
}
При этом вместо 'u' вполне можно было использовать сокращения usr, а вместо 'c' использовать cfg, это устоявшиеся сокращения, поэтому использовать их можно.
Когда есть возможность аннатировать переменную ее типом, с учетом небольшого размера функции, нормальным становится и вариант с u:
interface User {
id: string;
name: string;
age: number;
}
// Хорошо - тип ясен из контекста
function greet(u: User) {
console.log(`Hello, ${u.name}!`);
}
Для итераторов в небольших циклах короткие имена допустимы:
const numbers = [1, 2, 3];
// i - общепринятое имя для индекса
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]);
}
В функциональном программировании для простых операций:
const users = [{name: 'Alice'}, {name: 'Bob'}];
// n - понятно в контексте map
const names = users.map(u => u.name);
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from S0ER.Code
TurboFan: анализ оптимизаций в V8 с помощью ассемблера (часть 1)
Чем глубже мы узнаем языки программирования, тем больше начинаем любить и ценить ассемблер. Сегодня покажу, как знание ассемблера помогает в изучении возможностей движка V8.
V8 — это движок для работы с языком JavaScript, он используется в NodeJS и браузере Chrome. Одна из особенностей этого движка — представление «горячего» кода в виде оптимизированных машинных инструкций. Для этого в движок интегрирован оптимизирующий JIT-компилятор TurboFan.
Основные задачи, которые решает TurboFan:
💡 Анализ и оптимизация «горячих» функций (которые вызываются часто);
💡 Специализация кода под конкретные типы данных;
💡 Удаление избыточных операций;
💡 Векторизация вычислений;
💡 Инлайнинг функций.
Для работы с машинным кодом традиционно используется ассемблер, поэтому давайте разберем небольшой пример, который позволит лучше понять, как работает TurboFan. В этой статье будет общее описание блоков кода, а в будущих статьях разберем детали каждого из них.
Основные моменты, которые нужны для старта:
1️⃣ Мы будем использовать nodejs для получения машинного кода функции, для этого нужно запомнить следующий шаблон команды:
2️⃣ Мы будем использовать специальную инструкцию %OptimizeFunctionOnNextCall, без нее ничего не получится.
Давайте сделаем простой скрипт:
Теперь запустим скрипт
Чем глубже мы узнаем языки программирования, тем больше начинаем любить и ценить ассемблер. Сегодня покажу, как знание ассемблера помогает в изучении возможностей движка V8.
V8 — это движок для работы с языком JavaScript, он используется в NodeJS и браузере Chrome. Одна из особенностей этого движка — представление «горячего» кода в виде оптимизированных машинных инструкций. Для этого в движок интегрирован оптимизирующий JIT-компилятор TurboFan.
Основные задачи, которые решает TurboFan:
Для работы с машинным кодом традиционно используется ассемблер, поэтому давайте разберем небольшой пример, который позволит лучше понять, как работает TurboFan. В этой статье будет общее описание блоков кода, а в будущих статьях разберем детали каждого из них.
Основные моменты, которые нужны для старта:
node --print-opt-code --code-comments -allow-natives-syntax your_script.js
Давайте сделаем простой скрипт:
// sum.js
function sum(a, b) {
return a + b;
}
// Прогреваем функцию (вызываем много раз, чтобы V8 её оптимизировал)
for (let i = 0; i < 10000; i++) {
sum(i, i + 1); // используем целые числа, чтобы TurboFan сделал оптимизацию именно под них
}
// Явно просим V8 оптимизировать функцию (требует --allow-natives-syntax) иначе в выводе не будет описане функции
%OptimizeFunctionOnNextCall(sum);
// Вызываем ещё раз (теперь с оптимизацией)
sum(1, 2);
Теперь запустим скрипт
node --print-opt-code --code-comments -allow-natives-syntax sum.js
, если мы сделали всё правильно, то получим огромный вывод на экран, из которого интересна вот эта часть:
--- Raw source ---
(a, b) {
return a + b;
}
--- Optimized code ---
optimization_id = 1
source_position = 22
kind = TURBOFAN
name = sum
stack_slots = 6
compiler = turbofan
address = 0x2edae09247a1
Instructions (size = 184)
; загрузка hidden класса объекта (проверка структуры)
0x1097064c0 0 488b59f8 REX.W movq rbx, [rcx-0x8]
; проверка контекста
0x1097064c4 4 f6433501 testb [rbx+0x35],0x1
0x1097064c8 8 0f85f2e03dfb jnz 0x104ae45c0 (CompileLazyDeoptimizedCode) ;; деоптимизация
; пролог
0x1097064ce e 55 push rbp
0x1097064cf f 4889e5 REX.W movq rbp, rsp
0x1097064d2 12 56 push rsi
0x1097064d3 13 57 push rdi
0x1097064d4 14 50 push rax
; выравнивание стека и проверка лимитов
0x1097064d5 15 4883ec08 REX.W subq rsp,0x8
0x1097064d9 19 488975e0 REX.W movq [rbp-0x20],rsi
0x1097064dd 1d 493b65a0 REX.W cmpq rsp, [r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x1097064e1 21 0f8653000000 jna 0x10970653a <+0x7a> ; если стек переполнен, переходим
; ====== Основная функция ======
; Загрузка аргумента "a"
0x1097064e7 27 488b5518 REX.W movq rdx, [rbp+0x18]
0x1097064eb 2b f6c201 testb rdx,0x1
0x1097064ee 2e 0f8572000000 jnz 0x109706566 <+0xa6>
; Загрузка аргумента "b"
0x1097064f4 34 488b4d20 REX.W movq rcx, [rbp+0x20]
0x1097064f8 38 48c1f920 REX.W sarq rcx, 32 ; сразу распаковка SMI для "b"
; Подготовка аргументов к сложению
0x1097064fc 3c 488bfa REX.W movq rdi,rdx
0x1097064ff 3f 48c1ff20 REX.W sarq rdi, 32 ; распаковка для "a"
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from S0ER.Code
; проверка типа второго аргумента "b"
0x109706503 43 4c8b4520 REX.W movq r8, [rbp+0x20]
0x109706507 47 41f6c001 testb r8,0x1
0x10970650b 4b 0f8559000000 jnz 0x10970656a <+0xaa>
; само сложение
0x109706511 51 03cf addl rcx,rdi
; если переполнение, то переход
0x109706513 53 0f8055000000 jo 0x10970656e <+0xae>
; упаковка результата
0x109706519 59 48c1e120 REX.W shlq rcx, 32
; результат кладем в rax
0x10970651d 5d 488bc1 REX.W movq rax,rcx
; ====== эпилог ==========
0x109706520 60 488b4de8 REX.W movq rcx, [rbp-0x18]
0x109706524 64 488be5 REX.W movq rsp,rbp
0x109706527 67 5d pop rbp
0x109706528 68 4883f903 REX.W cmpq rcx,0x3
0x10970652c 6c 7f03 jg 0x109706531 <+0x71>
0x10970652e 6e c21800 ret 0x18
0x109706531 71 415a pop r10
0x109706533 73 488d24cc REX.W leaq rsp, [rsp+rcx*8]
0x109706537 77 4152 push r10
0x109706539 79 c3 retl
0x10970653a 7a 48ba0000000010000000 REX.W movq rdx,0x1000000000
0x109706544 84 52 push rdx
0x109706545 85 48bb107d7a0401000000 REX.W movq rbx,0x1047a7d10
0x10970654f 8f b801000000 movl rax,0x1
0x109706554 94 48bef911d866da2e0000 REX.W movq rsi,0x2eda66d811f9 ;; object: 0x2eda66d811f9 <NativeContext[280]>
0x10970655e 9e e89db146fb call 0x104b71700 (CEntry_Return1_ArgvOnStack_NoBuiltinExit) ;; near builtin entry
0x109706563 a3 eb82 jmp 0x1097064e7 <+0x27>
0x109706565 a5 90 nop
Как видите, здесь довольно длинный ASM-кусок, в котором я добавил пояснения, чтобы было понятно по смыслу, что происходит, само сложение выполняется одной командой addl, всё остальное — это подготовки и обработка исключений, давайте коротко подведём итоги:
Более детально каждую из частей мы рассмотрим в будущих статьях, а пока ставь лайк, если тема тебе интересна. Полный вариант статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from S0ER.live
В этом году мы с моими клиентами, которые приходят ко мне на консультации, поставили цель повысить долю участия ИИ в процессе разработки ПО до 15% (а в идеале до 30%). Обсудили, где и как можно применить способности машины к автоматизации рутинных задач, как можно использовать парное программирование с ИИ, и другие задачи.
Я подумал, что многие люди испытывают страх перед тотальными изменениями в работе, которые неминуемо коснутся каждого разработчика, поэтому написал заметку «Как конкурировать с ИИ в ближайшие пять лет».
Доступно для подписчиков уровня STREAM.💡
Я подумал, что многие люди испытывают страх перед тотальными изменениями в работе, которые неминуемо коснутся каждого разработчика, поэтому написал заметку «Как конкурировать с ИИ в ближайшие пять лет».
Доступно для подписчиков уровня STREAM.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from S0ER.Arch
🚨 Ваш Kubernetes небезопасен: 3 ошибки, которые делают все (и как их исправить за 5 минут)
Люблю Docker, K8s и кликбейтные заголовки. Но если серьёзно, то ошибок при конфигурировании кубера можно сделать очень много.
Сейчас многие играют с облаками (и я в том числе) в моей конфигурации опытный девопс сходу нашел 3 ошибки, из-за которых кластеры взламывают, майнят крипту или просто случайно роняют продакшен.
🔴 Ошибка 1:
- Проблема: запустил поды в
- Чем опасно: Взлом одного сервиса = доступ ко всем.
- Как исправить:
🔴 Ошибка 2: ServiceAccount с правами бога
- Проблема: сервисный аккаунт
- Чем опасно: Злоумышленник → получил токен → полный контроль над кластером.
- Как исправить:
🔴 Ошибка 3: Не включён PodSecurityPolicy (или его аналоги)
- Проблема: Поды могут запускаться от root, монтировать
- Чем опасно: Escalation privileges → хостовая система под ударом.
- Как исправить:
💥 Бонус: Если ваш кластер уже живёт с этим годами — проверьте его :
Есть и другие ошибки, которые я сделал, если тема интересна, то напишите в комментариях пользуетесь ли k8s для своих проектов, что предпочитаете manages cluster или колхоз а-ля minicube?
Люблю Docker, K8s и кликбейтные заголовки. Но если серьёзно, то ошибок при конфигурировании кубера можно сделать очень много.
Сейчас многие играют с облаками (и я в том числе) в моей конфигурации опытный девопс сходу нашел 3 ошибки, из-за которых кластеры взламывают, майнят крипту или просто случайно роняют продакшен.
🔴 Ошибка 1:
default
namespace — мусорка, которая сожжёт вам всё - Проблема: запустил поды в
default
, забыв про изоляцию. - Чем опасно: Взлом одного сервиса = доступ ко всем.
- Как исправить:
kubectl create namespace my-app
kubectl config set-context --current --namespace=my-app
🔴 Ошибка 2: ServiceAccount с правами бога
- Проблема: сервисный аккаунт
default:default
имеет права cluster-admin (да, было лень разбираться с правами). - Чем опасно: Злоумышленник → получил токен → полный контроль над кластером.
- Как исправить:
kubectl create rolebinding restricted-view \
--clusterrole=view \
--serviceaccount=default:default \
--namespace=default
🔴 Ошибка 3: Не включён PodSecurityPolicy (или его аналоги)
- Проблема: Поды могут запускаться от root, монтировать
/etc
и делать другие жуткие вещи. - Чем опасно: Escalation privileges → хостовая система под ударом.
- Как исправить:
# Для новых версий K8s (PSP deprecated, но есть замены):
kubectl label ns my-app pod-security.kubernetes.io/enforce=restricted
💥 Бонус: Если ваш кластер уже живёт с этим годами — проверьте его :
kubectl get pods --all-namespaces -o json | grep "serviceAccount: default"
Есть и другие ошибки, которые я сделал, если тема интересна, то напишите в комментариях пользуетесь ли k8s для своих проектов, что предпочитаете manages cluster или колхоз а-ля minicube?
Forwarded from S0ER.live
✅ Ситуация по IT-разработчикам: зарплаты, тренды и прогнозы.
Последнее время наблюдаю за рынком труда очень активно, вижу, как формируются интересные тренды, которые связаны с потерей доверия к кандидатам. Потребность в специалистах не упала, но рынок очень не любит джунов без подтвержденного опыта, взял за основу аналитический обзор от SuperJob за прошлый год, в целом мои наблюдения подтверждаются этими цифрами:
1️⃣ Средние зарплаты специалистов в районе 300 тыс. ₽ (напомню, что в нашем сообществе среднее 430-500 т.р.):
🔹 Java: 320 тыс. ₽ (+7%)
🔹 Python: 280 тыс. ₽ (+4%)
🔹 C++: 280 тыс. ₽ (+12%)
📌 Средний рост по IT: +11,9%.
2️⃣ Junior-ов берут неохотно
📉 Только 6% вакансий — для новичков.
💰 Зарплаты джунов почти не растут (а иногда падают).
🎯 Работодатели хотят опыт: 46% вакансий — для middle/senior (3–6 лет опыта).
🎯 Уровень доверия к кандидатам падает, больше доверяют проверенным источникам кадров (ВУЗы, нетворкинг и т.д.).
3️⃣ ИИ и ML — главный хайп
📈 Вакансий с машинным обучением стало в 3 раза больше.
💸 ЗП выше рынка:
- PHP + ML: 370 тыс. ₽ (+6%)
- Data Scientist + ML: 300 тыс. ₽ (+11%)
4️⃣ Удалёнка сокращается (здесь не учтена валютная удаленка, с ней было бы совсем всё плохо)
🏠 Доля remote-вакансий: 25–27% (в 2023 было 32–35%).
📍 Компании возвращаются к гибриду или офису.
5️⃣ Что будет дальше?
✔ Спрос на ИБ (+50%) и AI/ML-специалистов
✔ Конкуренция за senior-разработчиков
✔ Курсы без практики будут терять ценность
✔ Рекомендации и нетворкинг сильно повышают шансы на успех
💡 Вывод:в IT остаются высокие ЗП (причем есть куда расти), но работодатели стали разборчивее. Лучшие перспективы — у опытных кадров с подтверждением опыта (нетворкинг, свои проекты, рекомендации и т.д.). Основная проблема рынка — тотальное недоверие к новчикам после курсов.
🔗 Источник: https://www.superjob.ru/research/articles/114992/itogi-2024-goda-na-rynke-truda/
Последнее время наблюдаю за рынком труда очень активно, вижу, как формируются интересные тренды, которые связаны с потерей доверия к кандидатам. Потребность в специалистах не упала, но рынок очень не любит джунов без подтвержденного опыта, взял за основу аналитический обзор от SuperJob за прошлый год, в целом мои наблюдения подтверждаются этими цифрами:
1️⃣ Средние зарплаты специалистов в районе 300 тыс. ₽ (напомню, что в нашем сообществе среднее 430-500 т.р.):
🔹 Java: 320 тыс. ₽ (+7%)
🔹 Python: 280 тыс. ₽ (+4%)
🔹 C++: 280 тыс. ₽ (+12%)
📌 Средний рост по IT: +11,9%.
2️⃣ Junior-ов берут неохотно
📉 Только 6% вакансий — для новичков.
💰 Зарплаты джунов почти не растут (а иногда падают).
🎯 Работодатели хотят опыт: 46% вакансий — для middle/senior (3–6 лет опыта).
🎯 Уровень доверия к кандидатам падает, больше доверяют проверенным источникам кадров (ВУЗы, нетворкинг и т.д.).
3️⃣ ИИ и ML — главный хайп
📈 Вакансий с машинным обучением стало в 3 раза больше.
💸 ЗП выше рынка:
- PHP + ML: 370 тыс. ₽ (+6%)
- Data Scientist + ML: 300 тыс. ₽ (+11%)
4️⃣ Удалёнка сокращается (здесь не учтена валютная удаленка, с ней было бы совсем всё плохо)
🏠 Доля remote-вакансий: 25–27% (в 2023 было 32–35%).
📍 Компании возвращаются к гибриду или офису.
5️⃣ Что будет дальше?
✔ Спрос на ИБ (+50%) и AI/ML-специалистов
✔ Конкуренция за senior-разработчиков
✔ Курсы без практики будут терять ценность
✔ Рекомендации и нетворкинг сильно повышают шансы на успех
💡 Вывод:в IT остаются высокие ЗП (причем есть куда расти), но работодатели стали разборчивее. Лучшие перспективы — у опытных кадров с подтверждением опыта (нетворкинг, свои проекты, рекомендации и т.д.). Основная проблема рынка — тотальное недоверие к новчикам после курсов.
🔗 Источник: https://www.superjob.ru/research/articles/114992/itogi-2024-goda-na-rynke-truda/
SuperJob.ru
2024 Итоги года - Исследовательский центр портала SuperJob.ru
Аналитические обзоры: 2024 Итоги года
Генерация видео с помощью ИИ становится все лучше. Посмотрите какой классный ролик сняли про HOMM3, ставь, 💡 если так же, как и я, целые ночи проводил за этой офигенной игрой.
С нетерпением жду когда энтузиасты снимут фильм по этой игре. Думаю, осталось ждать недолго.
С нетерпением жду когда энтузиасты снимут фильм по этой игре. Думаю, осталось ждать недолго.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Heroes of Might and Magic 3 - Rampart RISES! Units in Real Life | Cinematic | AI Generated
And now - the majestic Rampart!
Nothing foreshadowed disaster on that bright sunny morning - everyone was going about their daily routines.
But as we know, in the lands of Heroes3, war comes without warning.
This is my first experiment in creating a long…
Nothing foreshadowed disaster on that bright sunny morning - everyone was going about their daily routines.
But as we know, in the lands of Heroes3, war comes without warning.
This is my first experiment in creating a long…
Сколько времени вам экономит ИИ на работе
Anonymous Poll
12%
50% и более
23%
30%
18%
15%
22%
Менее 10%
25%
Не использую ИИ
Forwarded from S0ER.live
Бережливое отношение к тому что есть - это грамотное расходование текущих ресурсов, но кроме этого хочется сделать так, чтобы в будущем ресурсов становилось больше. Поэтому пара мыслей почему я много говорю про стратегии развития и инвестиции в себя.
Что есть что:
- ресурсы - это все что можно потратить для достижения результатов (движения к цели), к ресурсам в основном относятся деньги и время, но можно выделять и другие ресурсы, которые оценивать через личные метрики
- стратегия - это набор целей, принципов и идей, которые не определяют конкретный план действий, но определяют направление движения (условно говоря это то, что хочется получить, но не совсем понятно как).
Многие люди считают что не надо ничего делать для развития, просто пойти работать и все само получится. Здесь надо отметить, что на работе можно прокачать только те навыки, которые нужны для текущих задач, обычно вы усиливаете одни и те же вещи, не вкладывая ничего в смежные области, а карьерный рост в рамках вашей текущей должности сильно ограничен. Возникает вопрос, а что делать если рынок изменится так, что ваши текущие знания будут не нужны?
Ответ простой - нужно развиваться не только за счёт рабочих задач, но и за счёт своей стратегии развития (рабочие задачи это только часть стратегии). Для этого нужно ответить на вопрос "а чего я хочу добиться в жизни?".
Я придерживаюсь принципа 80/20 для распределения своих ресурсов: 80% уходит на текущие нужды, 20% на развитие. Со временем вложенные 20% помогают увеличивать текущие доходы, а значит ресурсы которые я могу потратить на развитие тоже растут.
Хочу привести несколько примеров из жизни, которые показывают как я реализовывал свои идеи:
- работа в архитектурном комитете, это был шаг направленный на то, чтобы отойти от задач которые я решал в моменте, на что-то новое, расширяющее мои возможности, в итоге оказалось одним из важнейших решений
- ведение своего ютуб канала, решение которое изначально было направлено на прокачку нетворкинга, а в итоге дало буст для многих направлений развития
- консультации - вариант дополнительного дохода, который со временем трансформировался в надёжный источник новых знаний (решая чужие проблемы я лучше понимаю рынок и углубляю свое понимание)
- участие в конференциях, общение с людьми из разных сфер, чтение книг и прохождение курсов - это те мелкие задачи, которые я постоянно решаю в рамках "инвестирования в себя" и которые дают возможность решать новые задачи и открывать дополнительные направления.
Все задачи вместе привели меня к семизначному доходу, что, в свою очередь, позволяет привлекать дополнительные ресурсы не тратя свое время.
Время и деньги
Что тратить на достижение целей свое время или деньги?
Это сложный выбор, когда я начинал карьеру, то больше тратил своего времени, так как денег не хватало, сейчас я понимаю, что время - это самый ценный ресурс, поэтому стараюсь делегировать все, что можно.
Делегирование - это основная цель на ближайшее время, этому тоже нужно учиться, и для этого приходится трансформировать свое сознание.
За долгие годы я привык делать все сам, поэтому трудно перестроить себя быстро. Но первые успехи уже есть.
Моя стратегия саморазвития на этом не заканчивается, у меня есть много идей, которые хочу реализовать и поэтому я продолжаю движение вперёд.
Я могу наблюдать альтернативный путь, если не ставить перед собой новые цели, не развиваться по карьере, и то что я вижу мне совсем не нравится.
Что есть что:
- ресурсы - это все что можно потратить для достижения результатов (движения к цели), к ресурсам в основном относятся деньги и время, но можно выделять и другие ресурсы, которые оценивать через личные метрики
- стратегия - это набор целей, принципов и идей, которые не определяют конкретный план действий, но определяют направление движения (условно говоря это то, что хочется получить, но не совсем понятно как).
Многие люди считают что не надо ничего делать для развития, просто пойти работать и все само получится. Здесь надо отметить, что на работе можно прокачать только те навыки, которые нужны для текущих задач, обычно вы усиливаете одни и те же вещи, не вкладывая ничего в смежные области, а карьерный рост в рамках вашей текущей должности сильно ограничен. Возникает вопрос, а что делать если рынок изменится так, что ваши текущие знания будут не нужны?
Ответ простой - нужно развиваться не только за счёт рабочих задач, но и за счёт своей стратегии развития (рабочие задачи это только часть стратегии). Для этого нужно ответить на вопрос "а чего я хочу добиться в жизни?".
Я придерживаюсь принципа 80/20 для распределения своих ресурсов: 80% уходит на текущие нужды, 20% на развитие. Со временем вложенные 20% помогают увеличивать текущие доходы, а значит ресурсы которые я могу потратить на развитие тоже растут.
Хочу привести несколько примеров из жизни, которые показывают как я реализовывал свои идеи:
- работа в архитектурном комитете, это был шаг направленный на то, чтобы отойти от задач которые я решал в моменте, на что-то новое, расширяющее мои возможности, в итоге оказалось одним из важнейших решений
- ведение своего ютуб канала, решение которое изначально было направлено на прокачку нетворкинга, а в итоге дало буст для многих направлений развития
- консультации - вариант дополнительного дохода, который со временем трансформировался в надёжный источник новых знаний (решая чужие проблемы я лучше понимаю рынок и углубляю свое понимание)
- участие в конференциях, общение с людьми из разных сфер, чтение книг и прохождение курсов - это те мелкие задачи, которые я постоянно решаю в рамках "инвестирования в себя" и которые дают возможность решать новые задачи и открывать дополнительные направления.
Все задачи вместе привели меня к семизначному доходу, что, в свою очередь, позволяет привлекать дополнительные ресурсы не тратя свое время.
Время и деньги
Что тратить на достижение целей свое время или деньги?
Это сложный выбор, когда я начинал карьеру, то больше тратил своего времени, так как денег не хватало, сейчас я понимаю, что время - это самый ценный ресурс, поэтому стараюсь делегировать все, что можно.
Делегирование - это основная цель на ближайшее время, этому тоже нужно учиться, и для этого приходится трансформировать свое сознание.
За долгие годы я привык делать все сам, поэтому трудно перестроить себя быстро. Но первые успехи уже есть.
Моя стратегия саморазвития на этом не заканчивается, у меня есть много идей, которые хочу реализовать и поэтому я продолжаю движение вперёд.
Я могу наблюдать альтернативный путь, если не ставить перед собой новые цели, не развиваться по карьере, и то что я вижу мне совсем не нравится.
Продолжаю развивать платформу soer.pro и публиковать новые гайды для новичков. Сегодня хочу предложить вашему вниманию «Гайд по карьерному пути для новичков: как системно повышать доход» (это публичный материал для всех).
Это первая часть из двух гайдов, которые помогут вам лучше прокачаться и мягко выйти на рынок. В первой части речь пойдет про получению первого опыта и первой работе, а дальше будут «боевые» советы для тех, кто уперся в зарплатный потолок.
Также рекомендую посмотреть наши материалы (только для платных подписчиков):
👑 Приоритет архитектуры для ИИ (публично)
👑 Полный гайд по использованию нетворкинга (для STREAM)
👑 Как конкурировать с ИИ в ближайшие пять лет, если ты разработчик (для STREAM)
👑 Личные метрики (для STREAM)
Это первая часть из двух гайдов, которые помогут вам лучше прокачаться и мягко выйти на рынок. В первой части речь пойдет про получению первого опыта и первой работе, а дальше будут «боевые» советы для тех, кто уперся в зарплатный потолок.
Также рекомендую посмотреть наши материалы (только для платных подписчиков):
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from S0ER.live
Современные нейронные сети — плохой способ, чтобы понять, что такое интеллект, и отличный, чтобы понять, чем интеллект не является.
Это значит буквально следующее: большинство согласно с тем, что нейронки — это еще не настоящий интеллект, а значит, все, что они успешно решают, — это пример того, что можно решить сложной генерацией + фильтрацией.
Составление акронимов — это точно не очень-то интеллектуальная функция, но если её решать влоб, то количество генераций всех вариантов было бы огромно.
Именно способность отсекать тупиковые генерации в современных нейронных сетях называют "интеллектом", хотя по сути это лишь правильно расставленные веса, полученные из осмысленных выборок.
Это значит буквально следующее: большинство согласно с тем, что нейронки — это еще не настоящий интеллект, а значит, все, что они успешно решают, — это пример того, что можно решить сложной генерацией + фильтрацией.
Составление акронимов — это точно не очень-то интеллектуальная функция, но если её решать влоб, то количество генераций всех вариантов было бы огромно.
Именно способность отсекать тупиковые генерации в современных нейронных сетях называют "интеллектом", хотя по сути это лишь правильно расставленные веса, полученные из осмысленных выборок.
Ловите фундаментальное видео по чистой архитектуре, там есть вся теория. Автор реально заморочился, респект за проделанную работу.
YouTube
Clean Architecture Ультимативно(чистая архитектура проекта любого размера, принципы, мышление)
Telegram post: https://t.me/koduryem/39
Как создать чистую архитектуру и написать чистый код? Какие есть паттерны? Как их применять? Почему все их понимают по-разному? Можно ли их представить без привязки к конкретному языку? Почему для кого-то они не работают?…
Как создать чистую архитектуру и написать чистый код? Какие есть паттерны? Как их применять? Почему все их понимают по-разному? Можно ли их представить без привязки к конкретному языку? Почему для кого-то они не работают?…
Forwarded from Книжный куб (Alexander Polomodov)
Cursor CEO: Going Beyond Code, Superintelligent AI Agents, And Why Teste Still Matters (Рубрика #AI)
Посмотрел интересное интервью Michael Truell с Garry Tan. Они говорили про будущее разработки и это действительно интересно, ведь Майкл — соучредитель и генеральный директор Anysphere, компании, создавшей Cursor, один из самых быстрорастущих AI-инструментов для кодирования. А Гарри — президент и генеральный директор Y Combinator, известного стартап-акселератора. Это интервью было 11 июня и оно проходило во время Demo Day Y Combinator Summer 2025, где представляются новые компании из текущего набора Y Combinator. Ниже представлены ключевые идеи интервью в моей интерпретации
1. Революционное видение будущего программирования
Основная цель Cursor — изобрести новый тип программирования, где разработчики смогут просто описывать желаемый результат, а не писать сложный код. Майкл предвидит, что программисты будут становиться "дизайнерами логики", фокусируясь на высокоуровневом проектировании, а не на написании низкоуровневого кода. Интересно, что раньше часто говорили про языки программирования новых поколений, например, третьим поколением были стандартные C, C++, C#, Java и JavaScript, но люди говорили про четвертое поколение. Но оно особо не полетело:) А теперь новым поколением языков программирования похоже будет plain english/russian/whatever text (но лучше с правильными промптами). Интересно, что Майкл считает, что за следующие 5-10 лет произойдет значительное изменение в способах создания софта.
2. Текущее состояние AI в программировании
Наибольшие изменения уже заметны в небольших кодовых базах, где разработчики могут работать на более высоком уровне абстракции. В среднем разработчики используют AI для написания 40-50% кода в Cursor, но все еще требуется человеческий контроль и понимание. Майкл говорит о том, что vibe coding пишется без глубокого понимания и не рекомендуется для долгосрочных проектов (а для прототипов он отлично подходит)
3. Технические вызовы и ограничения
Ограниченный размер контекстного окна AI затрудняет работу с большими кодовыми базами, содержащими миллионы строк кода (что типично для больших компаний). Существующие модели испытывают трудности с непрерывным обучением и сохранением контекста организации и предыдущих решений. AI-модели пока не имеют четкого представления об эстетике, что требует участия человека-дизайнера.
4. История и эволюция Cursor
Команда основателей из MIT первоначально работала над AI для автоматизированного проектирования (CAD), но позже переключилась на программирование. GitHub Copilot и исследования OpenAI о масштабируемости моделей стали ключевыми источниками вдохновения для создания Cursor. Вместо создания расширения для условного VSCode команда решила разработать собственный редактор, что оказалось важным преимуществом.
5. Рост и успех компании
Anysphere достигла оценки в 9,9 миллиардов долларов после привлечения 900 миллионов долларов инвестиций. Компания достигла 100 миллионов долларов годового дохода всего за 20 месяцев после запуска, а затем выросла до 300 миллионов за два года и более 500 миллионов к середине 2025 года. Cursor используется в крупных технологических компаниях, включая OpenAI, Stripe, Spotify и других.
6. Будущее AI и программирования
Способность создавать программное обеспечение станет доступной гораздо большему числу людей. Появится больше специализированного программного обеспечения для конкретных отраслей благодаря снижению барьеров для разработки. Несмотря на автоматизацию, "чувство вкуса" останется незаменимым человеческим качеством — оно позволяет определить, что именно нужно создать и как это должно работать.
Если подводить итоги, то это действительно интересный взгялд на будущее программирование от гостя, который не просто его предсказывает, но и создает своими руками, так как Cursor стремится быть на переднем крае этой трансформации. По мнению Тралла, мы находимся в начале эпохи интеллекта, которая значительно расширит возможности создания для всех.
#AI #ML #Software #DevEx #Engineering #Development
Посмотрел интересное интервью Michael Truell с Garry Tan. Они говорили про будущее разработки и это действительно интересно, ведь Майкл — соучредитель и генеральный директор Anysphere, компании, создавшей Cursor, один из самых быстрорастущих AI-инструментов для кодирования. А Гарри — президент и генеральный директор Y Combinator, известного стартап-акселератора. Это интервью было 11 июня и оно проходило во время Demo Day Y Combinator Summer 2025, где представляются новые компании из текущего набора Y Combinator. Ниже представлены ключевые идеи интервью в моей интерпретации
1. Революционное видение будущего программирования
Основная цель Cursor — изобрести новый тип программирования, где разработчики смогут просто описывать желаемый результат, а не писать сложный код. Майкл предвидит, что программисты будут становиться "дизайнерами логики", фокусируясь на высокоуровневом проектировании, а не на написании низкоуровневого кода. Интересно, что раньше часто говорили про языки программирования новых поколений, например, третьим поколением были стандартные C, C++, C#, Java и JavaScript, но люди говорили про четвертое поколение. Но оно особо не полетело:) А теперь новым поколением языков программирования похоже будет plain english/russian/whatever text (но лучше с правильными промптами). Интересно, что Майкл считает, что за следующие 5-10 лет произойдет значительное изменение в способах создания софта.
2. Текущее состояние AI в программировании
Наибольшие изменения уже заметны в небольших кодовых базах, где разработчики могут работать на более высоком уровне абстракции. В среднем разработчики используют AI для написания 40-50% кода в Cursor, но все еще требуется человеческий контроль и понимание. Майкл говорит о том, что vibe coding пишется без глубокого понимания и не рекомендуется для долгосрочных проектов (а для прототипов он отлично подходит)
3. Технические вызовы и ограничения
Ограниченный размер контекстного окна AI затрудняет работу с большими кодовыми базами, содержащими миллионы строк кода (что типично для больших компаний). Существующие модели испытывают трудности с непрерывным обучением и сохранением контекста организации и предыдущих решений. AI-модели пока не имеют четкого представления об эстетике, что требует участия человека-дизайнера.
4. История и эволюция Cursor
Команда основателей из MIT первоначально работала над AI для автоматизированного проектирования (CAD), но позже переключилась на программирование. GitHub Copilot и исследования OpenAI о масштабируемости моделей стали ключевыми источниками вдохновения для создания Cursor. Вместо создания расширения для условного VSCode команда решила разработать собственный редактор, что оказалось важным преимуществом.
5. Рост и успех компании
Anysphere достигла оценки в 9,9 миллиардов долларов после привлечения 900 миллионов долларов инвестиций. Компания достигла 100 миллионов долларов годового дохода всего за 20 месяцев после запуска, а затем выросла до 300 миллионов за два года и более 500 миллионов к середине 2025 года. Cursor используется в крупных технологических компаниях, включая OpenAI, Stripe, Spotify и других.
6. Будущее AI и программирования
Способность создавать программное обеспечение станет доступной гораздо большему числу людей. Появится больше специализированного программного обеспечения для конкретных отраслей благодаря снижению барьеров для разработки. Несмотря на автоматизацию, "чувство вкуса" останется незаменимым человеческим качеством — оно позволяет определить, что именно нужно создать и как это должно работать.
Если подводить итоги, то это действительно интересный взгялд на будущее программирование от гостя, который не просто его предсказывает, но и создает своими руками, так как Cursor стремится быть на переднем крае этой трансформации. По мнению Тралла, мы находимся в начале эпохи интеллекта, которая значительно расширит возможности создания для всех.
#AI #ML #Software #DevEx #Engineering #Development
YouTube
Cursor CEO: Going Beyond Code, Superintelligent AI Agents, And Why Taste Still Matters
Michael Truell, co-founder and CEO of Anysphere, the company behind Cursor, joins Garry to talk about building one of the fastest-growing startups of all time—and why he's betting on a future beyond code. He walks through the early insights that led his team…