Чашка Кода
466 subscribers
255 photos
5 videos
2 files
162 links
👋 Я - Никита, автор курсов и лекций по Python-разработке. Пишу на Python и Rust

✏️ В этом канале посты, которые сделают твой путь к веб-разработке проще

Задать вопрос, позвать на конференцию, записать со мной курс/статью/подкаст
👉 @PySage
Download Telegram
Про какую из этих тем вы хотели бы узнать подробнее?
Anonymous Poll
38%
1️⃣ Тесты
62%
2️⃣ Контейнеризация
32%
3️⃣ Документация
111
This media is not supported in your browser
VIEW IN TELEGRAM
3⃣ программы, которые вам стоит установить на свой Mac (и не только)!

В этом году я стал использовать Macbook как основное устройство. Несмотря на то, что до этого я пользовался Linux дистрибутивами и Windows в течении многих лет, к macOS я привык быстро. Но каким бы ни был удобным Mac, в нём не хватает многих вещей.

Собрал для вас 3 бесплатных приложения, которыми я пользуюсь каждый день! Третье приложение есть и в других операционных системах.

🌐Maccy
Приложение для хранения буфера обмена. Было такое, что нужно скопировать два разных объекта или вставить то, что копировали раньше? У меня такое постоянно! Maccy решает эту проблему и позволяет хранить более 200 (!) файлов / изображений / текста. Мне достаточно использования комбинации cmd + shift + c чтобы отобразить историю копирований возле курсора.

🌐Amethyst
Оконный менеджер, который красиво расставляет приложения на экране. Вообще, на Mac, оконных менеджеров бессчётное количество. Однако этот бесплатный, легко настраивается и поддерживает несколько экранов. Мои любимые фичи - ограничение одновременно открытых окон на экране и смена схемы расположения одной комбинацией клавиш.

🌐Obsidian
Доступен на всех платформах! Obsidian - это приложение для заметок с огромным потенциалом. Можно использовать просто как заметки, а можно сделать своим основным инструментом для работы. Приятные фичи — хранение заметок локально, что приводит к лёгкой миграции и бэкапам, поддержка markdown разметки и огромное количество плагинов.

Делитесь в комментариях своими любимыми приложениями! 🤗
Please open Telegram to view this post
VIEW IN TELEGRAM
7421
🫥 Когда я только начинал изучать программирование, все вокруг говорили про "ручки". Теперь я и сам постоянно говорю про них. На собесе вас могут попросить продать спроектировать "ручку". Но что же это вообще за "ручки" такие?

🫥 У них много названий, но в контексте Веб-разработки это эндпоинты (endpoint), конечные-точки и роуты (route). А про них я уже писал в этом посте!

🫥 По сути ручки — это методы, через которые можно общаться с нашим сервисом. По большей части, наша работа состоит как раз в их разработке. Пользователь хочет иметь возможность загрузить фото - делаем ручку для этого.

Чтобы посмотреть все "ручки" вашего проекта, протестировать их и почитать документацию, обычно используется Swagger. Обязательно изучите этот инструмент до собесов! ⚙️

А что для вас "ручка"? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👋 Уже прочитали книгу про систем дизайн?

Если да, наверняка у вас остались вопросы, о том, как же всё таки сделать свой Redis / Git / Docker? Последнее особенно актуально сегодня, в связи с недавними новостями.

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

Пишите в комментариях, что выбрали сделать?🔽

🍰
Please open Telegram to view this post
VIEW IN TELEGRAM
4211
Please open Telegram to view this post
VIEW IN TELEGRAM
843
💻 Почему лучше начинать изучать программирование с языка C, чем с Python?

Python - превосходный язык! Любую задачу вы можете решить уже готовыми решениями. У Python простой и лаконичный синтаксис, понять что написано, не составит труда. Поддержка сообществом настолько высокая, что можно найти курсы, книги, видео и статьи на любую тему по Python 💻

🤔 Но тогда почему же лучше учить язык C?
На самом деле причина как раз и заключается в том, что Python такой простой. Программирование на Python может показаться сказкой, ведь у нас в языке уже есть всё!

Все удобства, которые мы получаем, можно назвать абстракциями. К примеру, у нас есть абстракция итератор или декоратор. Таких абстракций нет в низкоуровневых языках, вроде С. Зато Python битком набит абстракциями, у нас есть инструменты для любого действия.

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

А с какого языка вы начинали карьеру в IT?🔽

🍰 #карьера_в_it
Please open Telegram to view this post
VIEW IN TELEGRAM
73111
6
📢 Рубрика: полезные советы от капибары!

Наша капибара поиграла с клавиатурой, а когда собирала обратно, получились советы.

Нажми на любую картинку и получи совет 👆

🍰 #карьера_в_it #it_советы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
732211
Всем привет! Я с утра с классными новостями 🏃

Мы с друзьями решили выступить в Школе 21 и рассказать о своём пути в IT.

📌 12 июня в 16:00

Что будет?

👉 Обсудим свой путь в IT: расскажем об инсайтах и провалах с нашей работы и ответим на все интересующие вопросы
👉 Проведём интерактивную игру, в которой нужно будет попробовать НЕ пройти собес в BWG
👉 Решим реальную рабочую задачу по разработке Веб-приложения, поделимся реальным опытом, о котором спрашивают на собеседованиях

Если вы из школы, то регистрируйтесь на платформе, мероприятие закрытое!

⚡️ Кроме того, вчера давал интервью для подготовки курса для ВК. Спрашивали про "чистый код". Хотите узнать моё мнение по этому вопросу? А осенью позвали выступить на конференции, посвящённой инновациям, буду рассказывать о том, почему в ответах ChatGPT нет логики.

Про что написать подробнее? 🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
4111
😱 Взял в работу обычную задачу и сделал её самой сложной!

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

Изменения предполагались значительные, так что задача была на 2 недели. Сейчас кончается уже 4 неделя моей работы над задачей. Всё дело в ошибках, которые я совершил, взяв эту задачу. Делаюсь с вами, чтобы вы так не ошиблись:

В задаче была плохая аналитика
В команде, кроме меня, никто не понимал что нужно делать. Поскольку мы уже потратили более 40 человека-часов на обсуждение задачи, решили брать её в работу. Нужно было обсудить все нюансы, пока всем не станет понятно, что делать.

Приняли решение, не обсудив его
В момент начала работы над задачей, коллега предложил внести существенное изменение и мы его приняли. Нужно было обсудить изменение всей командой, поскольку оно стоило мне целого дня работы, а в итоге от него пришлось отказаться.

Функциональные изменения объединили с рефакторингом
Поскольку в задаче я изменял все 80 файлов репозитория, мы решили провести и рефакторинг. Никогда так не делайте! Проводите рефакторинг и стилевые изменения отдельной задачей и вливайте ветку с такими изменениями без функциональных изменений!

Таким образом, мы получили MR на 4000 строк с изменением 80 файлов, который никто не хочет проверять. А у вас были похожие ситуации в работе? 🔽

🍰 #мудрость_на_каждый_день #мысли #работа_в_it
Please open Telegram to view this post
VIEW IN TELEGRAM
43321
🔜 Просили пост про контейнеризацию, вот он:

Если вы пишите на Python, то вы используете во всех проектах виртуальное окружение (python -m venv venv). Вы ведь используете его? В какой то мере виртуальное окружение похоже на использование контейнеров.

🔘 Зачем вообще нужна контейнеризация?
Скорее всего, вы пишите код на своём компьютере, на Windows, либо на MacOS. А вот запускать написанное приложение вы будете уже на сервере, на котором будет запущен Linux. И просто так запустить код не получится, скорее всего какие то зависимости написаны вообще только для одной системы.

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

📌 Docker
Самым популярным выбором приложения для контейнеризации является докер. Если вы ещё с ним не знакомы, то обязательно изучите его. Вот отличный, бесплатный курс по Docker. На любом собесе у вас будет вопрос про него!

Когда я только изучал разработку, долгое время не использовал докер. Казалось, что для небольших проектов он избыточен. Но если вы попробуете запустить две разные БД для своего проекта, лучше докера инструмента вы не найдёте. Причём изучать его досконально не нужно, достаточно уметь запускать несколько контейнеров с разным содержимым *️⃣

📌 Если вы можете запустить свой веб-сервер в одном контейнере, а его БД - в другом, то этого вполне достаточно!

🍰 #мудрость_на_каждый_день #просто_о_сложном #работа_в_it
Please open Telegram to view this post
VIEW IN TELEGRAM
741
🔊 Итоги живого подкаста

На прошлой неделе проводил "Живой подкаст", на котором действующие разработчики из СберТеха, Ашана, МТС и Wildberries поделились своими впечатлениями от обучения в Школе 21 и опытом работы в IT.

🔥 Было очень интересно и продуктивно. Это одно из самых успешных мероприятий, что я проводил! Рекомендую присоединится в следующий раз. Будущее мероприятие хотим сделать более открытым, но в таком же формате: оффлайн в Москве, без записи и трансляции (включите уведомления от канала, чтобы не пропустить анонс).

📌 Одним из вопросов, который зрители задали ведущим, был следующий: "После того как вы вышли на работу, что для вас стало чем-то новым (что удивило)?". Вопрос мне понравился, но формат шоу не позволял мне лично ответить на этот вопрос и поделиться мнением. Поэтому решил поделиться с вами своим откровением от работы в IT здесь.

Никто не пишет код специально плохо.


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

👉 Поняв это, я вывел для себя следующее:
Не спрашивайте себя, почему я должен работать с таким кодом. Спросите себя, как я могу сделать код, с которым приятно работать?


P.S. Чтобы исправить уже работающий код и ничего не сломать, следуйте правилам рефакторинга: подробнее.

🍰 #мысли #it
Please open Telegram to view this post
VIEW IN TELEGRAM
54311