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

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




Решил не откладывать и пошёл в MIT. Онлайн-курс, Python, основа Computer Science.
Хочу подтянуть фундамент, начать думать, как думают в топовых местах разработки.


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


➡️ Курс здорового человека
Название: "Introduction to Computer Science and Programming Using Python"
Платформа: edX
Ссылка: MITx
Обучение: бесплатно
Сертификат MITx: $100 (со скидкой). Я буду его брать в любом случае

➡️ Почему стоит залететь со мной
1⃣ Это инвестиция в себя
2⃣ MIT - если уж учиться, то у лучших
3⃣ Наконец разобраться в Python, а не просто писать скрипты
5⃣ Подтянуть основы Computer Science и системное мышление
5⃣ Базовый английский пригодится (всё на английском, но есть субтитры — заодно подтянем)
6⃣ Ну и просто проверить себя - могу ли я дойти до конца
7⃣ MIT за 100$ (опционально) и это будет как минимум в резюме/CV будет красиво


➡️ Насколько это по времени
Заявлено: 12 часов в неделюю По факту - можно пройти быстрее, особенно если делать стабильно
Python и CS можно с нуля - подойдёт даже новичкам


Стартуем уже на этой неделе
Если давно хотели, но всё откладывали - вот знак 🧙🏻‍♂️ <——
Я точно иду и зову вас со мной
Можно проходить вместе: обсуждать, делиться инсайтами, созваниваться и не сдаваться на середине.



Погнали? 🚀

*UPD:
Больше инфы в комментариях

Ссылка: https://www.edx.org/learn/computer-science/massachusetts-institute-of-technology-introduction-to-computer-science-and-programming-using-python

это код SMARTEDX25 скидка 30%
это код NEW2EDX скидка 30%

Группа по MITx 6.00.1x: MITx6001x

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

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍2
Я программист с 12+ лет опыта и я не знаю Python

Вообщем, я не знаю Python, но я умею делать мемчики с ним))

Пишу на C#, строю бэкенд, оптимизирую, продакшн - огонь, но мне не стыдно признать, что я не знаю Python, я чего-то могу не знать и это ОК!1

Невозможно знать всё, да и это не всегда даже нужно или может даже не применительно на практике или в жизни.
Честно в IT каждый знает свой кусочек и это тоже нормально!
Вообщем ребята не знать не стыдно 🫠

Большинство думают, что Python все знают, даже я его интуитивно понимаю. Однако, писать код и читать это разные вещи. По сути это как говорить: что все говорят на Испанском и что его легко выучить, вроде даже понятный)

Вообщем недавно я открыл для себя Python. И скажу честно:
🐍 Он прост и пугающь одновременно 😅 и это только начало, а я ещё не пристегнулся))

Вот примеры, которые меня реально удивили:
3 * "bc"           # 'bcbcbca' - что это?
"abcd"[:] # LOL просто копия строки
"abcd"[:777] # просто вывод всей строки О_о
"0123456789"[0::2] # '02468' - каждый второй символ, изящно удобно
"python"[::-1] # 'nohtyp' - реверс строки, невероятно


to be continued

#humour
#python

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
Считаешь себя молодым .NET разработчиком?


Напоминаю: Microsoft в этом году стукнуло 50 🙉
так то и .NET больше 20 😅

Так что, если ты начал писать на .NET после .NET Framework 4.0 ты буквально молодёжь 😅

📎 Ссылка:
https://www.microsoft.com/en-us/edge/microsoft-50th-anniversary



#microsoft
#dotnet

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
3👨‍💻11
так и живём 😅



#qa
#humour

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


➡️ UNIT 1
В первой секции дали отличную базу по Computer Science - сразу с интересного примера: вычисление квадратного корня. Это не просто "изучим print и пошли дальше", а объяснение, почему это работает так, как работает. Подход прямо зашёл.

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


Первый модуль - скорее разогрев: быстро прошлись по if, while, for и базовым типам данных, всё с понятными задачами и регулярным закреплением. Не как в некоторых курсах, где 10 уроков про if, а потом ещё 20 про циклы дальше десяток закреплений для while.
Ну камон - циклы плюс-минус они одинаковые везде начиная от Pascal, C# и даже в SQL


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


🧙🏻‍♂️ Не пожалел, что начал. Вход очень комфортный, всё логично и по делу. Конечно, у меня есть преимущество благодаря опыту, но даже новички не будут отставать - материал даётся с темпом, но без перегруза. И это круто: сразу получаешь свою дозу дофамина от прогресса. Остальное добираешь в chatgpt и всё ок.


Финальные задания юнита уже подводят к следующему этапу - к алгоритмам.
Это чувствуется: упражнения не просто на знание синтаксиса Python, а на построение логики, принятие решений и анализ.

➡️ и да язык разработки - это просто инструмент, а настоящее обучение в Computer Science начинается с того, как думать как инженер, как строить алгоритмы, как решать задачи.

➡️ Итого
- Знания Python не нужны
- До 13 июня нужно закончить первую секцию
- Тратится НЕ 12-14 часов в неделю


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

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🙏1
Apple показала Liquid Glass

На WWDC 2025 Apple представила новую визуальную составляющую: Liquid Glass. В iOS 26, в macOS, да и во всех остальных системах теперь всё будет “стеклянным”: кнопки, меню, панели, всё полупрозрачное, переливающееся, будет реагировать на фон и свет 🙄

Смотрится красиво. Очень. Прямо ощущение, что интерфейс - это физический объект и как будто смотришь сквозь него.

Но вот с UX/UI начинаются вопросы. Думаю текст иногда будет теряется на стеклянном фоне. Всё это уже где-то было. Привет, Windows Vista и Aero?


Apple сейчас делает ставку на эстетику и мощность железа (чипы A18/M-чего-то-там спокойно тянут рендер “живого” стекла). Такое чувство, что теперь главная задача интерфейса, а давай сделаем что было красиво, а не «помогать работать»

Всё идёт к тому, что скоро придётся включать «режим для глаз», да честно я уже пользуюсь «ночным режимом» днём


Релиз будет осенью. Беты уже пошли. Сейчас будет куча мемов и сравнение с Windows.

Вы же понимаете: если крупный вендо и гигант сделает прозранчые компоненты, тогда ребята фронтендеры и ребята с мобильной разработки без работы точно не останутся :) а дизайнеры будут в шоке 🥲


#humor
#apple
#windows

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍211
Обучение в MIT: Вторая секция


UNIT 2
Пристёгиваемся - разогрев закончился, начинается настоящее обучение 😎

➡️Уже чувствуется как по времени так и по сложности сама секция. После каждой лекции - задания на закрепление. И они реально заходят: помогают переварить материал и попробовать всё на практике.

➡️Начали давать базовые алгоритмы и это чувствуется, что нас постепенно подводят к более сложным концепциям. Апроксимация: линейная и бисекции - он же бинарный поиск. Не пугаемся там всё разжёвывают 😉

➡️Как хранятся дробные числа в компьютере (float) и почему нельзя на них всегда полагаться при точных вычислениях 🔥

➡️Освежил в памяти перевод чисел в двоичную систему - делал это лет 20 назад, было забавно вспомнить

➡️Познакомились с методом Ньютона (методом касательных) - на его примере считали квадратные корни. Один из первых «настоящих» алгоритмов в курсе.

➡️Дальше учились делать код чище. От "портянок" перешли к структурированному коду

➡️Учились декомпозировать, разбивать задачи на части, выносить логику в функции, распределять по файлам 💪

➡️Появилось понимание области видимости (scope) переменных, по сути, это про время жизни и зону действия переменной в программе.

➡️Делается акцент на комментарии, это прям очень круто, что с самого начала прививают культуру читаемого кода. Прямо респект авторам курса!

➡️Рекурсия и тут начинается веселье ребята 🤓
Добро пожаловать в ад начинающего разработчика - это мать рекурсия 🫣
Разбирали задачу про Ханойскую башню - и да, это больно, если раньше с таким не сталкивался 😭


➡️ Но главное, чему учат
Искать паттерны, начинать решение с простых входных данных
Учиться разделять проблему на подзадачи
Не бояться отступить и передумать подход, удалить всё и переписать 😅 - это тоже часть алгоритмического мышления.

➡️ Финальная проверка по Unit 2
В конце - контрольная работа с 3 задачами. Каждая задача сложнее предыдущей, это значит, что последняя задача прямо неплохая. Последняя по сути - это LeetCode и если бы они удали формулы😅 тогда это уровень Easy, но если ты совсем новичок в программировании, будет непросто.

➡️ Совет
1⃣ Не бойтесь обращаться к интернету или ChatGPT (это нормальная часть обучения) НО после просмотра лекции, чтобы закреплять материал, по сути мы рассматриваем частные случаи и их довольно много, но случаи выбираются самые показательные в лекциях.
2⃣ Не списывайте с инета или с ai чатов, это бестолку или в крайнем случае дальше вы просто не сможете решить следующие задачи. Сейчас строится фундамент для дальнейших секций. Мы не идём в параллель, где можно пропустить что-то и бог с ним, как в теории вероятности 😅, мы идём базируясь на том что выучили в прошлой секции.
3⃣ Выбирайте тот вариант который вам подходит для запоминания.
5⃣ Главное - понимать, а не просто копировать.

- Не обязательно решать всё идеально!!
- Курс не оценивается по баллам, здесь система зачёт / не зачёт.
- Чтобы пройти Unit, достаточно набрать чуть больше половины баллов. Так что не загоняйтесь.
- У каждого разный старт и база. Кто-то решает больше, кто-то меньше. Каждый бежит со своей скоростью.


➡️ Итого
Повторили основы, освежили математику, начали писать осмысленный код, залезли в рекурсию.
Курс начинает потихоньку чувствоваться как настоящий Computer Science фундамент и это только начало 😉
Так что, поехали дальше.

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

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍321
LeetCode: до и после

Мой путь в LeetCode начался около трёх месяцев назад. Стартанул с базовых задачек, одновременно освежая в памяти и простые алгоритмы, но для меня без регулярного повторения (хотя бы раз в неделю) всё быстро улетучивается 🫠 можно сказать моментально улетает 🙉

LeetCode - это площадка с задачами по программированию, по сути сборник задач по разработке. Задачи тут 3 уровней (легко, средне и невероятно сложные😅) Задачи тут порой интересные, а иногда и прямо очень крутые. Бывает, "лёгкие" кажутся средними, а "средние" - это лёгкие, но это редскость. А "сложные" - они всегда сложные, порой даже слишком 😅

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

Если ты не можешь решить задачу, большая вероятность что ты просто не знаешь типового алгоритма, который на ходу невозможно придумать, т.е. это не значит что ты 0, просто нужна насмотренность + запомнить шаблонные алгоритмы.
Какой нибудь поиск подстроки в строке или А* 😞


Сначала прогресс заметен, но дальше всё сложнее - задачи становятся разнообразнее и требуют новых подходов и алгоритмов. Вообщем, продолжаю карабкаться по ладдеру не один из >5млн, а один из 1млн 😅 продолжаю набивать рейтинг (ммр 🎮) только уже в LeetCode

➡️ Зачем это вообще нужно?
Решение задач на LeetCode - отличный способ прокачать навыки программирования, подготовиться к собеседованиям и развить логическое мышление и да, английский ещё. Чем больше решаешь) тем больше решаешь) на самом деле все кто хотел попасть в FAANG "прошли" LeetCode и через LeetCode

➡️ Что я подметил на LeetCode:
1⃣ Не отражает реальные задачи на работе 😅, хотя на днях мне нужно было написать простую хэшфункцию с поиском элементов.
2⃣ Неравенство подготовки, звучит странно, но кто-то знает больше чем вы или знает другие алгоритмы чем вы и это ок, это надо принять и поехать дальше.
3⃣ Хорошая прокачка структур данных и алгоритмов
5⃣ Выгорание + стресс помноженное на время
5⃣ Не завезли толкового системного обучение
6⃣ Подготовка к собесам

#leetcode

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
Если прошел тест также, тогда лови Айтишника 🥲

#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