C#razy
79 subscribers
204 photos
46 videos
2 files
334 links
Путь в IT, рост, менторство, поддержка, прокачка, мотивация

👨‍💻 Senior .NET dev с 12+ лет опыта
📚 Учусь в MIT по Computer Science
🖥 100+ дней подряд LeetCode
⚒️ Работаю на зарубеж
💻 Веду блог про рост в IT с нуля
🧭 Помогаю понять, куда двигаться
Download Telegram
Если прошел тест также, тогда лови Айтишника 🥲

#humour

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Лучшая дев модель эвер

#humour

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Обучение в MIT: Третья секция


UNIT 3
Tuple, List, Dictionary и один шок из мира Python
Типы, типы вокруг одни типы

Делюсь впечатлениями от третьей секции курса 6.01 Introduction to Computer Science and Programming in Python от MIT. Как C#-разработчик, я знал, что Python - язык с "мягкими границами". Но не думал, что меня так быстро что-то удивит. И вот привет и я ошибся. Так что знания C# уже как бы начинают мешать порой)


➡️ Tuple vs List - что это вообще и почему я в шоке
Секция начинается с введения в коллекции - именно тех кирпичиков из которых в Python строят структуры данных.

Tuple - кортежи, неизменяемые "контейнеры"
List - списки, изменяемые, гибкие и местами очень «жидкие» по сравнению с массивами в C#

ШОК, по Tuple можно итерироваться 😲 и это работает ребята
for item in (1, 2, 3):
print(item)


🤯 В C# Tuple - это просто обёртка на два-три значения с имёнами вроде Item1, Item2. Ни о каких итерациях речи нет. В Python Tuple короче буквально как список. Просто ты его не можешь изменить. У Python своё видение на "контейнеры". Своеобразное, но удобное, не привычно вообщем



➡️ Изменяемость vs Неизменяемость
Разработчики, особенно с опытом в строго типизированных языках, поначалу могут запутаться:

Tuple - неизменяемый (immutable)
List - изменяемый (mutable)
Вообщем все эти типы - ссылочные, поняли, были, проходили
a = [1, 2, 3]
b = a
b.append(4)
print(a) # [1, 2, 3, 4]

Для тех кто не в курсе: a тоже изменился, потому что и a и b указывают на один и тот же список. Это очень похоже на поведение ссылочных типов в C#, но с одним отличием - в Python почти всё ссылочное. Даже int и str - ссылочные, просто они неизменяемые 😳

⚠️ Изменяемость нужно держать в голове. Особенно если ты решаешь задачи и используешь .append() или .sort() - можно ненароком модифицировать структуру, о чём потом будешь жалеть (и дебажить долго). Но в C# всё так же, но не во всех языках



➡️ А теперь король Dictionary
dict = {"key": "value"}

Всё просто, но мощно. Особенно для задач на LeetCode

Эту вещь надо писать часто в задачах
counts = {}
for num in nums:
counts[num] = counts.get(num, 0) + 1



➡️ Задачи и практика
После каждой темы - закрепляющие задачки.
Они не просто "для галочки" реально заставляют понять, где у тебя пробелы в понимании. Ну и в конце, задача про подсчёт налогов 🙉


➡️ Итого
Секция 3 - это та самая секция, где Python перестаёт быть просто "ещё одним языком". Ты видишь, как много всего можно делать мало кода ну и насколько важно понимать, что mutable/immutable и ссылочные типы.

Для меня, я пришёл из мира C#, то мне не много странно ну и круто в тоже время. в Python всё ещё легко ошабиться и ошибиться, но продолжаем работать 😎


#mit
#обучение
#python

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Запуск MCP Сервера

Принял участие в live coding-сессии вместе где с нуля разрабатывали сервер для MCP (Model Context Protocol) на TypeScript и интегрировали его с IDE от JetBrains

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

Если коротко - это шаг к тому, чтобы AI стал настоящим напарником в разработке, а не просто чатиком на стороне, по типу ГПТ. Было интересно копнуть в архитектуру, поработать с WebSocket'ами и посмотреть, как всё это встраивается в привычный инструментарий разработчика.

П.с.: Без проблем не обошлось, завелось раза с 10 😅

📎 Ссылка: YouTube

#mcp
#ai
#typescript

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для тех кто литкодит по пятницам 🙉

#humour

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
Воркшоп от AWS

Принял участие в воркшопе Amazon Q Agents with MCP от AWS Темой стали агенты, MCP и их связка с экосистемой AWS.

➡️ Кратко
Агенты (Agents) - это управляемые, целеориентированные LLM-компоненты, которые могут выполнять цепочки действий для решения задач. В случае Amazon Q они могут обращаться к данным, вызывать API, выполнять бизнес-логику и адаптироваться по ходу работы.

MCP (Managed Capability Provider) - это как бы модуль или вебсервер, предоставляющий агенту доступ к внешним возможностям: будь то база данных, API, хранилище или другая инфраструктура. MCP реализует взаимодействие с сервисами, чтобы агент мог выполнять действия безопасно и по правилам.

➡️ В AWS это всё работает
Разрабатываешь агента в Amazon Q Developer or Business Agent Studio;
Подключаешь MCP, например, для обращения к DynamoDB или внешнему REST API;

Агент сам выбирает нужные шаги, вызывает нужные endpoints и возвращает пользователю осмысленный результат.

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

Всё это шаг в сторону production-ready AI внутри enterprise-платформ. И всё это уже доступно в AWS. Смотрится очень многообещающе.

Для общей информации, рекомендую посмотреть всю теорию до воркшопа. Это будет не просто, но надо ребята
Для воркшопа, есть все креды, вы можете поиграться на боевом Amazon БЕСПЛАТНО до середины этого дня


📎 Ссылки: YouTube

#aws
#amazonq
#ai

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Программист растёт 😅

Что имеется в виду
Намек на то, что инструкция воспринимается буквально. Мол, программисты, они как машины, принимают инструкции буквально. Это юмор такой.
По сути назвал фигуры как название переменных, а название переменных это такие слова которые были в голове 🙉


#humour

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍11
LeetCode: MS SQL

Готовитесь к собесам и вы QA, Аналитик или разраб.
Тогда погнали 😅

Встретил задачу по MS SQL уровня medium и что-то похожее мне уже попадалось на собесах

You are the restaurant owner and you want to analyze a possible expansion (there will be at least one customer every day).
Compute the moving average of how much the customer paid in a seven days window (i.e., current day + 6 days before). average_amount should be rounded to two decimal places.
Return the result table ordered by visited_on in ascending order.
The result format is in the following example.


Такие задачи иногда попадаются и я бы отнёс её к Hard не к Medium
Что думаете, сможете решить за 30 мин?

Можете спросить меня за сколько решил я или за сколько её нужно решить, так же могу добавить своё решение он входит в топ 5

➡️ Задача
Table: Customer
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| customer_id | int |
| name | varchar |
| visited_on | date |
| amount | int |
+---------------+---------+

In SQL,(customer_id, visited_on) is the primary key for this table.
This table contains data about customer transactions in a restaurant.
visited_on is the date on which the customer with ID (customer_id) has visited the restaurant.
amount is the total paid by a customer.


➡️ Example:
Input: 
Customer table:
+-------------+--------------+--------------+-------------+
| customer_id | name | visited_on | amount |
+-------------+--------------+--------------+-------------+
| 1 | Jhon | 2019-01-01 | 100 |
| 2 | Daniel | 2019-01-02 | 110 |
| 3 | Jade | 2019-01-03 | 120 |
| 4 | Khaled | 2019-01-04 | 130 |
| 5 | Winston | 2019-01-05 | 110 |
| 6 | Elvis | 2019-01-06 | 140 |
| 7 | Anna | 2019-01-07 | 150 |
| 8 | Maria | 2019-01-08 | 80 |
| 9 | Jaze | 2019-01-09 | 110 |
| 1 | Jhon | 2019-01-10 | 130 |
| 3 | Jade | 2019-01-10 | 150 |
+-------------+--------------+--------------+-------------+
Output:
+--------------+--------------+----------------+
| visited_on | amount | average_amount |
+--------------+--------------+----------------+
| 2019-01-07 | 860 | 122.86 |
| 2019-01-08 | 840 | 120 |
| 2019-01-09 | 840 | 120 |
| 2019-01-10 | 1000 | 142.86 |
+--------------+--------------+----------------+
Explanation:
1st moving average from 2019-01-01 to 2019-01-07 has an average_amount of (100 + 110 + 120 + 130 + 110 + 140 + 150)/7 = 122.86
2nd moving average from 2019-01-02 to 2019-01-08 has an average_amount of (110 + 120 + 130 + 110 + 140 + 150 + 80)/7 = 120
3rd moving average from 2019-01-03 to 2019-01-09 has an average_amount of (120 + 130 + 110 + 140 + 150 + 80 + 110)/7 = 120
4th moving average from 2019-01-04 to 2019-01-10 has an average_amount of (130 + 110 + 140 + 150 + 80 + 110 + 130 + 150)/7 = 142.86


📎 Ссылка: LeetCode

#leetcode
#sql
#собеседование

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻11
Обучение в MIT: Четвёртая секция


UNIT 4
Programming Challenges & Debugging

Делюсь впечатлениями от четвёртой секции курса 6.01 Introduction to Computer Science and Programming in Python от MIT.

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

Один из ключевых блоков - Classes of Tests, включая концепции "чёрного ящика" (black-box) и "стеклянного ящика" (glass-box).

Black-box тестирование - это подход, при котором ты проверяешь систему, не зная, как она устроена внутри. Представь, что тебе дали API и ты просто должен понять, что оно делает, подавая различные входные данные и анализируя выход.

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

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

Отдельное внимание в секции уделяется Debugging. Казалось бы, что может быть проще - поставил точку останова (брейкпоинт), посмотрел стек вызовов и вперёд. Но всё гораздо глубже.

➡️ В Debugging хорошо раскрываются реальные сложности
Баг может быть неопределённым во времени (например, гонка потоков);
Он может проявляться только на проде (а у тебя нет логов);
Или воспроизводится только при определённой комбинации входов, которые ты даже не подумал проверить.

➡️ Подходы к поиску багов бывают разные
Метод бинарного поиска по истории коммитов или конфигураций, редко, но нужно;
Логирование это основа, чем лучше логируешь тем меньше вслепую ты работаешь;
Проверка гипотез по очереди, без хаоса в изменениях;
Но, главное, я считаю это умение остановиться и подумать, а не ковыряться бесконечно.

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

#mit
#обучение
#python

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻4🔥31
Обучение в MIT: Первый экзамен


Midterm exam

Делюсь впечатлениями от сдачи первого экзамена 6.01 Introduction to Computer Science and Programming in Python от MIT.

➡️ Экзамен, на который не нашлось времени
У курса есть midterm экзамен - на него выделяется 8 часов, но доступен он несколько дней. Ну и как это обычно бывает: времени не было, поэтому сел в последнюю ночь без особой подготовки 🙉
Кратко повторил, освежил в памяти пару тем и пошёл вывозить на своих знаниях 😅

➡️ Теория и логика: как по мне кайф
Всего попалось 22 вопроса из них где-то 5 практических задач.
Первая часть - теоретическая и мне она очень зашла. Вопросы были не на банальное угадай-слово, а на понимание Python и логики работы программ. Методом исключения пройти не выйдет это прям хорошо. Всё нужно осознанно продумать. Прямо удовольствие получил, пока проходил эту часть. Прошёл её довольно быстро.

➡️ Тесты с множественным выбором
А вот дальше началось веселье с множественным выбором, где если хотя бы один вариант неверен - весь вопрос = 0 баллов. Прямо с двух ног влетел: был вопрос на 3 балла с 6 вариантами ответа - выбрал, как думал правильно… и получил 0 🫣

Со следующим та же история.
Потом уже собрался с мыслями и начал внимательно читать каждый пункт, взвешивать и проверять.
Стал подходить как к код-ревью и результаты улучшились. P.S. Теперь понимаю, зачем дают 8 часов не потому что сложно, а потому что нужно вдумчиво 😉

➡️ Практикая часть
Потом пошли практические задачи. Как я понял выпадают полный рандом
У меня было:
Рекурсия, разобрался быстро.
Доработка чужого кода, вот тут потерял время.
Пытался понять "а зачем они это так сделали и как это работает? 😅" короче профдеформация. Минус 15 минут.
Хорошо, что не учитывалис попытки и можно было прогонять да и плюс тесты показывались, чтобы пофиксить код
Задача с удалением данных из списка по условиям, мини-алгоритмическая, справился легко.

Потом были задачи без тест-кейсов. Пиши код и гадай, почему не проходит 😄
Зато они оценивались в 10 баллов. Даже если не всё работает, но часть проходит можно получить 2–5 баллов. Это круто.

Последнюю задачу пришлось полностью переписать, но в итоге она тоже сдалась.
На всё ушло 1 час и 16 минут. Можно было медленнее и это было бы правильнее, но мне нужно было просто сдать 😅 иначе я не успевал

➡️ Итого
Не всегда надо отвечать и бежать на 100%. Цель тут это просто пройти и закрепить знания.
Python, это не зубрёжка как в универе или в школе, а понимание логики, структуры и подходов.
MIT делает хорошие задания: не банальные, а те, которые развивают.
В любом случае, я многое повторил, кое-что усвоил, кое-что нет и это нормально, что то уже забыл 🥲
Главное это не останавливаться и стараться понимать, а не просто запоминать.
Решай задачи на рекурсию, генераторы, работу со строками и списками они встречаются часто.
Не бойся делать ошибки. Главное разобраться, почему НЕ РАБОТАЕТ 🥹
Ну и на последок, не оставляй экзамен на последнюю ночь, как я 😅

#mit
#обучение
#python

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
This media is not supported in your browser
VIEW IN TELEGRAM
100+ дней на leetcode

Я продолжаю свой LeetCode-челлендж, который начал ещё в марте 😉. До этого у меня был опыт с Daily Challenge и 50 дней подряд - те были сложнее, гораздо сложнее, это связано с задачей и с привычкой, но об этом ниже

Говорят, что привычка формируется за 21 день..Ага конечно, ну, у меня не сформировалась 😅
Иногда всплывает мысль "надо было что-то решить", "что-то я забыл сегодня сделать", и так по кругу 🙉

Пробовал фиксировать задачи в календаре - не зашло. Когда каждый день пингует одно и то же напоминание, это перестаёт работать. Как напоминание «почистить зубы» - вроде важно, но фиксировать смысла нет

➡️ Где-то на 70-м дне пришло осознание
прикольно, когда ты просто садишься, решаешь задачу и сразу получаешь результат.
+1 к навыку
+1 к вайбу
+1 к дофамину


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

➡️ А зачем вообще 100+ дней LeetCode?
Чтобы перестать бояться алгоритмов - реально) через 30-40 задач уже проще воспринимать условия, меньше ступора, понимаешь что чего то не знаешь и это ок. Кто-то это знает кто-то и этого не знает, вообщем это про обучение и про развитие в IT.

Вывел правила:
Чтобы выработать уверенность в базовых структурах данных: повторять их снова и снова.
Чтобы отточить скорость решения задач: на собеседованиях это пригодится
Чтобы развивать дисциплину - да, иногда LeetCode > Netflix и всякие сериалы(привет игре кальмара последний сезон), я хз уже не помню что смотрел из последних, хотя это тоже не есть ок 😅
Чтобы не выпадать из практики, особенно если сейчас не ищешь работу, но хочешь быть в форме
Чтобы в кайф все решать, если поймал ритм, мозг начинает хотеть эту нагрузку

Если хочешь похожие челледжи по DSA(алгоритмам) погнали врываться вместе


#leetcode

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍31
Алгоритмы, которые стоит выучить первым делом

#1 — Алгоритм Евклида (НОД)

➡️ Предыстория
Снова столкнулся с задачей на 🔗 leetcode
Даны две строки. Нужно найти наибольшую строку x, которая может быть повторена несколько раз, чтобы получить и первую, и вторую строки.
Input: str1 = "ABABAB", str2 = "ABAB"
Output: "AB"

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

Алгоритм можно вывести я запомнил GCD(b, a%b)

➡️Где может понадобиться?
На собесах: любят спрашивать эту классику
Упрощение дробей: 120/80 → сократить можно, только если знаешь НОД
Задачи на LeetCode: работа с массивами, проверка кратности
Криптография: RSA использует расширенный Евклид

➡️ Что делает алгоритм?
Находит наибольший общий делитель (НОД) двух чисел a и b

➡️ Исторический факт
Этот алгоритм был описан ещё в "Началах" Евклида в III веке до н.э. — работает до сих пор 😎

➡️ Как работает Евклид?
НОД(a, b) = НОД(b, a % b)
Повторяем, пока b ≠ 0
Каждый шаг заменяет пару (a, b) на (b, a % b) - и так до нуля
ВСЁ КОНЕЦ!

Пример: Найдём НОД(48, 18)
Шаг 1: 48 % 18 = 12 → НОД(18, 12)
Шаг 2: 18 % 12 = 6 → НОД(12, 6)
Шаг 3: 12 % 6 = 0 → НОД(6, 0)
Ответ: 6


int GCD(int a, int b)
{
while (b != 0)
{
int temp = b;
b = a % b;
a = temp;
}
return a;
}


- Time complexity: O(log min(a, b))
- Space complexity: O(1)

➡️ Итого
Если ты только начинаешь разбираться в алгоритмах - алгоритм Евклида это must-have в арсенале. Он простой, эффективный и встречается чаще, чем ты думаешь

#алгоритмы
#leetcode
#подготовка

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Прошел SQL50 на LeetCode

Вообщем пока делал ежедневные задачи, решил и повспоминать MS SQL и порешать на нём задачи и за одно получить ачивку. По сути это решение 50 популярных задач на SQL

Когда-то начал просто с ежедневных задач - #dailychallenge, чтобы не терять и набрать форму. Одни задачи были лёгкими, другие заставляли поломать голову. Но постепенно я втянулся. По сути чаще стал использовать CTE

CTE (Common Table Expression) - это временное имя для набора данных, которое можно использовать внутри запроса, как будто это отдельная таблица. Пишется с помощью WITH и делает SQL-код понятнее и читаемее, особенно при сложных подзапросах или рекурсивных операциях.

Пример:
WITH SalesByPerson AS (
SELECT SalesPersonID, SUM(TotalDue) AS TotalSales
FROM Sales
GROUP BY SalesPersonID
)
SELECT * FROM SalesByPerson WHERE TotalSales > 10000;


➡️ Писал всё на MS SQL, это мой основной инструмент потому что они с C# всегда рядом. С LeetCode пришлось адаптироваться к их синтаксису, иногда гуглить про оконные функции -_-

Были задачи, которые решал за 5 минут. А были такие, где сидел по полчаса и переписывал решение несколько раз. Но в итоге я вот что понял, что каждый такой момент переписывания учил меня чему-то новому: где лучше использовать подзапрос, а где то GROUP BY или как правильно соединять таблицы через JOIN 😅

➡️ Зачем вообще это делал?
Потому что даже с опытом важно держать навык в тонусе. SQL - это фундамент в любой системе, где есть данные, его лучше знать чем не знать. А ещё я планирую в будущем попробовать pandas в Python для работы с аналитикой - и хорошее знание SQL тут точно пригодится.

Pandas в Python - это популярная библиотека для работы с табличными данными. С ней можно быстро фильтровать, группировать, сортировать данные и делать аналитику - как в Excel или SQL, но прямо в коде.
Пример:
import pandas as pd

df = pd.read_csv("sales.csv")
high_sales = df[df["Total"] > 10000]
print(high_sales)


➡️ После SQL50 я стал чувствовать себя намного увереннее и это ощущение стоит всех затраченных часов.

Если ты думаешь: "А стоит ли начинать?" - однозначно стоит, просто повторить и пройтись по типовым задачам. Не нужно бежать марафон за день. Просто начни с одной задачи в день. А потом сам не заметишь, как прокачаешься.

#leetcode
#sql

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2
Microsoft увольняет ещё 9 000 человек. Что это значит для ИТ-рынка?

Компания объявила о втором раунде сокращений в 2025 году: под нож попали ещё 9 000 сотрудников, включая инженеров, менеджеров и разработчиков из геймдева.

Причины
• Microsoft инвестирует $80 млрд в ИИ-инфраструктуру, думаю это одна из основных причин
• Упрощение структуры: меньше менеджеров, меньше костов.
• Конец финансового года (30 июня). Режем касты в идеальное время

Пострадал геймдев
• Закрытие проектов и студий (включая часть King, Forza, Perfect Dark)
• Разработчиков из Xbox-подразделений увольняют сотнями.
• Игровые бюджеты урезают ради ИИ.

Что это значит для рынка ИТ в целом?
1. Сигнал всем Big Tech: увольнять это нормально. Ждём продолжения у других гигантов.
2. Рынок переполняется опытными специалистами. Конкуренция выше, найм медленнее. Рынок за HR
3. Геймдев замер. Инвестиций меньше, найм приостановлен.
4. Спрос на AI-инженеров растёт. Всё, что связано с ML, инфраструктурой и data становится топ-направлением.
5. Junior-специалистам будет особенно сложно. Компании предпочитают опытных кандидатов “подешевле»

Что делать
• Прокачивать скиллы в AI/ML-инфраструктуре, data, distributed systems. Учить Python 😅
• Искать, где можно создавать ценность, а не просто закрывать задачи.
• Учиться делать себя «видимым» через вклад, архитектуру, инициативы. LinkedIn
• И не паниковать: рынок жив, просто меняется.

#увольнения
#microsoft
#news


💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
💔2👾2🤯1
Нужна ли рубрика: подборка вакансий с прямыми контактами?
Anonymous Poll
80%
Да
20%
Нет
Конец эпохи Stack Overflow

Легендарный сайт для программистов растерял почти всё. С 2017 года прирост новых вопросов практически остановился, а после 2022 года, с приходом AI (таких как ChatGPT), спад стал еще резче.

➡️ Почему Stack Overflow угасает?
1⃣ С 2017 года многие типичные вопросы, которые разработчики задавали неоднократно, уже были заданы и подробно разобраны. Модераторы активно маркируют новые дубликаты, что ограничивает приток свежих тем. Анализ статистики показывает, что около 60% новых постов в последние годы закрываются как повторяющиеся в течение первых 24 часов.
2⃣ Сложные и нишевые вопросы больше почти всегда были без ответа. Разработчики, в то время, все чаще обращаются к Telegram чатам и X, где обсуждения происходят в реальном времени, а ответы дают эксперты. Например, группы в Telegram насчитывают тысячи активных участников, готовых помочь быстрее, чем на этом сайте.
3⃣ Языковые модели, ChatGPT, стали конкурентами. Они и генерируют ответы на сложные запросы. Контент Stack Overflow стал кормом для обучения этих моделей, где я думаю это снижает ценность оригинального сайта. Исследование 2023 года показало, что до 40% разработчиков теперь предпочитают AI-инструменты для быстрого решения задач.
5⃣ Согласно статистики, уровень активности вернулся к показателям 2009 года, когда сайт только начинал набирать популярность.

Stack Overflow был пионером в программирования, по сути в тоже время когда .NET рост

➡️ Статистика
- Количество вопросов в месяц упало с 10000 в 2017г до 3500 в 2024г
- Участие в комьюнити сократилось
- Время ответа на вопросы увеличилось с 2 часов в 2015г до 6 часов в 2024г

➡️ Что происходит сейчас?
Stack Overflow пытается адаптироваться, внедряя новые функции, такие как улучшенный поиск и интеграции с AI, но это не останавливает отток.

🔗 Ссылки
[Stack Overflow Trends]
[Stack Overflow Blog]

#StackOverflow
#AI

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
В период спада найма работа всё равно есть!

Не теряй мотивацию!


Делюсь подборкой свежих вакансий и прямыми контактами

Junior Game Designer

Company - Playrix
Contact - Valeria Mazyakova

Senior Data Analyst
Remote from everywhere (Except for Russia, Belarus)
Company - Zencoder
Contact - @lilavu

Unity Developer
Company - The Virtual Wild
Contact - Jay Rutherford or careers@thevirtualwild.com

.NET Backend Developer
Remote worldwide or office Limassol
Company - Artstorm
Contact - @aaannaparakhevich

QA Engineer
Remote worldwide or office Limassol
Company - Artstorm
Contact - @aaannaparakhevich

Game Product Analyst (MW)
Remote worldwide or office Limassol
Company - Artstorm
Contact - @eve_kite

Business Analyst
Employment remote or hybrid in Serbia, Armenia, Poland, Romania or Bulgaria
Company - DataArt
Contact - @miz_brightside

Frontend with Vue.js (Ru language team)
Official employment remote or hybrid in Serbia, Armenia, Poland, Romania or Bulgaria
Company - DataArt
Contact - @miz_brightside

#вакансии

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Обучение в MIT: Пятая секция

Уже скоро получим сертфикаты ребята

UNIT 5
Programming Challenges & Debugging

Делюсь впечатлениями от пятой секции курса 6.01 Introduction to Computer Science and Programming in Python от MIT.

В этой части началось знакомство с ООП (объектно-ориентированным программированием). С одной стороны - ура и ужас с другой это множественное наследование в Python 🙉 может вызывать диссонанс, особенно если ты до этого писал на C# или на С++(а я писал и знаю к чему приводит множественное наследование)

🧱 Что такое ООП и зачем оно нужно?
ООП (объектно-ориентированное программирование) - это такой подход, при котором мы моделируем программу через объекты - экземпляры классов. Эти объекты хранят данные (поля) и поведение (методы). Повышается структурность и это классика: инкапсуляция, наследование, полиморфизм



➡️ Множественное наследование
class Animal:
def speak(self):
return "Some sound"

class Flyer:
def fly(self):
return "Flying high"

class Bird(Animal, Flyer): # множественное наследование
def speak(self):
return "Chirp"

b = Bird()
print(b.speak()) # Chirp
print(b.fly()) # Flying high

При совпадении методов работает MRO (Method Resolution Order) - сначала ищется в классе, затем по порядку наследования.


Наследование нормального человека
class Animal
{
public virtual string Speak() => "Some sound";
}

class Bird : Animal
{
public override string Speak() => "Chirp";
}

var bird = new Bird();
Console.WriteLine(bird.Speak()); // Chirp

В C# нет множественного наследования классов (только интерфейсы). Всё строго, понятно и предсказуемо.



➡️ Конструктор
и в Python он только один 😱
class Dog:
def __init__(self, name):
self.name = name

def bark(self):
return f"{self.name} says woof!"

d = Dog("Rex")
print(d.bark()) # Rex says woof!

__init__ - это конструктор, вызывается при создании объекта.
self - ссылка на текущий экземпляр.



➡️ Методы vs функции: в чём разница?
Функция - самостоятельный блок кода и не привязан к объекту.
Метод - функция, которая внутри класса и работает с данными объекта.


➡️ Генераторы
тут также как C# всё довольно понятно, но тут как то скучно и примитивно, у нас (C#) это сделано гораздо прикольнее и есть всякие async foreach и трюки


➡️ Итого
Unit 5 - это первая настоящая архитектурная тема в MIT-курсе. Всё становится ближе к тому, как пишется код в реальных проектах. Немного больно от Python (множественное наследование, self, отсутствие типов), но мозг включается и перестраивается. Надо ли оно мне, узнаем позже)

Если ты хочешь расти вместе, проходи курс, пиши, как ты справляешься с ООП - особенно если ты из C# мира, как и я.


#mit
#обучение
#python

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👾2🥴11
Критический хак SharePoint

Microsoft подтвердила, что с 18 июля 2025 года хакеры активно эксплуатируют инфраструктуру SharePoint Server (on‑premises) по уязвимости CVE‑2025‑53770

➡️ Что такое SharePoint?
Это корпоративная платформа Microsoft для:
- хранения и обмена документами,
- настройки внутренних порталов и совместной работы,
- управления процессами и интеграции с Office, Teams, OneDrive

➡️ Имеется две версии SharePoint
On‑premises (локально устанавливаемая) - сервера внутри компании;
Online (в облаке Microsoft 365) не затронута атаками.



➡️ Что произошло
- Более 100 пострадали, включая правительственные структуры, университеты, медицинские и финансовые учреждения в США, Германии, Европе и Азии
- Потенциально уязвимы более 8 000 - 9000 серверов SharePoint, подключённых к интернету
- Успешная атака позволяет хакерам загрузить веб‑шелл, украсть криптографические ключи MachineKey и сохранять доступ даже после патча

➡️ Кто стоит за атакой
- Среди атакующих выявлены China‑linked

➡️ Что делает Microsoft и CISA
- Экстренные патчи уже выпущены для SharePoint 2019 и Subscription Edition (патчи для 2016 - в работе)
- Американское CISA поручило отключать уязвимые серверы от интернета до применения всех мер патч
- Эксперты рекомендуют полную проверку систем

➡️ Итоги
Патчи обязательны, но далеко не гарантия если атака уже произошла, нужно восстанавливать ключи, искать следы взлома и усиливать защиту. SharePoint Online остаётся в безопасности.

📎 Ссылки
cnbc.com, cisa.gov

#news
#microsoft

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Backend Engineer (C#, .Net)
Company - Finom
Contact - nevena
b2b contract: 4500-5500 €


Стоит посетить эти ссылки
Доски объявлений 900 компаний
300 компаний

Таблицы от Kira Kuzmenko

#вакансии

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM