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

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

Задать вопрос, позвать на конференцию, записать со мной курс/статью/подкаст
👉 @PySage
Download Telegram
Channel created
👋 Всем привет!

Меня зовут Никита, и через неделю будет ровно год, как я сделал свою первую задачку на Литкоде.

В этом канале буду рассказывать о том, как за 1 год, с нуля, можно получить предложение с зп 200+ тыс. рублей в IT. 🫣

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

Присоединяйся, будет интересно! 🫶
👍3🔥3🦄1
Я не люблю мечтать, но люблю ставить цели.

Пару лет назад я работал официантом в ресторане и зарабатывал 30 000 рублей. И однажды я узнал один факт: в Сан-Франциско нужно зарабатывать минимум $ 3 000, так как аренда будет стоить от полутора тысяч 🙄

В тот день я поставил себе цель - увеличить зарплату в десять раз и получать 3 000 $. Пришлось трудиться несколько лет, но результат того стоил.

Недавно я достиг этой цели, так что пора ставить новую и подниматься ещë выше! ⬆️

В следующих постах я поделюсь своим опытом, расскажу, что изучал, делал и не делал для того, чтобы выйти на такой доход. Надеюсь, вам это будет полезно!
🔥5
Заповедь №1. Мотивация не так важна, как дисциплина.

Дисциплину формируют привычки. Моя главная привычка - решать задачи на литкоде. Хотя бы одну задачку каждый день. Это не сложно, но очень важно для развития. Попробуйте решить эту, она довольно простая. А своё решение я привёл на картинке выше.

Практика решения задач - это то, с чего я начал. Сначала я решил несколько задач на C, но быстро понял, что лучше писать на Python. Об этом в следующем посте.

Вот плюсы, которые я получил от задачек.

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

#заповеди_программиста
🔥5👍2👾1
👋 Привет, я обещал рассказать о выборе языка программирования. Мой выбор - Python.

Почему именно он?
1️⃣ Язык должен быть универсальным - кроме работы хочется использовать язык для решения своих нужд

2️⃣ Язык должен быть популярным - книги, курсы и статьи помогают выучить язык быстрее

3️⃣ Должно быть много вакансий - чтобы было проще найти работу, этот язык должны использовать компании

4️⃣ Нужно выучить алгоритмы* - Все компании при отборе проводят техническое собеседование. На нём нужно решить несколько алгоритмических задач

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

В итоге я выбрал Python, приняв все его минусы. Я добился своей цели (выйти на доход в 3.000$ в мес.), так что это решение было правильным.

А какие были другие "кандидаты" - в следующем посте
👍3🔥1
Что важнее: знание языка программирования или умение решать задачи?

В предыдущем посте мы выбирали язык программирования, но насколько он действительно важен?

🔻 Инсайт: знание языка (или даже нескольких языков программирования) не сделает из вас хорошего программиста!

Представьте, у вас есть ноги (языки программирования) но вы не знаете, как ходить. Будет ли тогда от них смысл?

🔻 Problem solving
Это умение анализировать проблему, разбивать её на части, идентифицировать ключевые аспекты и находить оптимальное решение. Это ключевой навык для программистов, а написание кода — это лишь инструмент для решения реальных задач.

Для улучшения этого навыка нужно всего два действия:

1️⃣ Узнать, какие есть алгоритмы решения проблем. Их немного, 80% встречаемых мной задач сводятся к 3-4 решениям.

2️⃣ Практиковаться. Нельзя стать хорошим гитаристом без мозолей на пальцах - уделяйте каждый день минимум 3 часа решению задач.
🔥3👍2
9️⃣ алгоритмов, которые решают 90% задач

Читали книгу "Грокаем алгоритмы"? Владея алгоритмами, можно решить практически любую задачу, которая вам попадётся.

🔻 binary search: для поиска элементов в массивах или списках

🔻 sorting: сортировка данных - это фундаментальная задача в программировании

🔻 recursion: используются для решения задач, которые можно разбить на более мелкие подзадачи того же типа

🔻 hash: для быстрого поиска и хранения данных

🔻 graph(DFS & BFS): алгоритмы на графах для решения проблем от сетевой маршрутизации до социальных сетей

🔻 dynamic programming: для оптимизации решений задач, которые можно разбить на подзадачи

🔻 greedy: чтобы локально найти оптимальные решения на каждом этапе, для выхода на глобальное оптимальное решения

🔻 tree: используются в базах данных, графических движках и сетевых протоколах

🔻 set & list: базовые структуры данных используются в каждом программном проекте

Пользуйтесь 👨‍💻

#заповеди_программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1👾1
⚡️ Однажды этот момент настанет...

и вы должны быть готовы! Как пройти все этапы отбора в IT?

Этапы могут отличаться в разных компаниях, но обычно структура схожа:

1️⃣ Скрининг - на этом этапе HR должен заинтересоваться вашим резюме. Главное - это опыт, смело пишите 1-2 года (даже если его у вас нет)

2️⃣ Звонок с HR - если вы прошли скриниг, то HR захочет с вами поговорить. Придумайте почему решили уволиться и посмотрите стек компании, откуда вам могут позвонить. Иногда задают простые вопросы, вроде "что такое сбалансированное бинарное дерево поиска". Звучит сложно, но доступ к гуглу даст ответ 😉

3️⃣ Техсобес/Алгоритмическая секция - обычно есть устная часть, с техническими вопросами, на них нужно знать ответы. И вторая часть, где придётся написать код. Обычно задачи достаточно простые, тут главное знать алгоритмы.

4️⃣ Общение с командой - нужно просто показать, что вы адекватный человек. Плюсом будет рассказать, что для вас важны бизнес-показатели, проблемы и прибыль компании.

Так что в целом, ничего сложного 👨‍💻
👍2🔥2👾1
☄️ Вопросы, которые вам точно зададут на собеседовании

Привет! Если хотите быть готовыми к собеседованию, рекомендую обратить внимание на три темы, которые я встречал на каждом собесе:

📌 ООП и SOLID

ООП - Объектно - Ориентированное Программирование — подход, где всё строится вокруг объектов и классов.

SOLID: Набор принципов для написания поддерживаемого кода. Применение этих принципов приводит к созданию более гибкого, удобного для тестирования и поддерживаемого кода.

📌 Многопоточность в Python
Python поддерживает многопоточность средствами библиотеки threading. Однако из-за Global Interpreter Lock (GIL) нативная многопоточность ограничена. Работу с асинхронностью можно эффективно организовать через asyncio.

📌 REST
В REST архитектуре у нас есть предопределенные роуты, к которым можно обратиться для выполнения определенных операций (GET, POST, PUT, DELETE). Это обеспечивает стандартизацию взаимодействия между клиентом и сервером.

Эти темы являются фундаментом, который поможет вам справиться с большинством вопросов на собеседованиях 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄4🔥2👾1
👀 Сколько найдёте отличий между капибарой «с опытом» и «без опыта» в айти? (Спойлер: ноль)

💬 Пишите в комментариях, сколько отличий в реальности по вашему мнению?

#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2👾2
🧑‍💻 Что нужно изучить до того, как начать программировать?

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

Подготовил дорожную карту, в каком порядке изучать БД.

Основные моменты
🔴 Баз данных много, но есть отличный бесплатный курс по MySQL, после него стоит перейти на PostrgeSQL или SQLite.
🔴 Обязательно решите 23 лёгких задания тут. Но лучше решить вообще все задания.
🔴 Дополните знания о БД знаниями из бесплатного курса по Docker.
🔴 Если вам понравятся БД и вы захотите больше - посмотрите на postrespro. А потом прочитайте "книжку с кабанчиком" - это самая известная книга о базах данных в больших приложениях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🦄2🤔11
С чего начать писать код?

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

Почему "Hello, World!"?
Простота: Такая программа не требует предварительного знания особенностей языка.
Фокус на Основах: Помогает понять базовую структуру и синтаксис языка.
Момент Успеха: Первая рабочая программа приносит чувство достижения.

В иллюстрации к посту я написал эту программу на четырёх разных языках. Сравните синтексис и внешний вид: что вам нравится больше?
- Лаконичность, но простота Python и Java Script.
- Строгость и точность Golang и C++
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👾1
😀⚡️ За что мы платим деньги? (с)

Я целую неделю решал одну задачу на работе. В итоге я её решил, написав всего 40 строк кода🫠

Задача:

В базе данных у нас есть поле с названием "Количество товара на складе". В это поле должно фиксироваться число - собственно, количество товара на складе. Но, по неведомым мне причинам, помимо цифр, там хранятся значения "Много" и "Достаточно". Выглядит это примерно так:

| Товар | Количество |
|-----------------|------------------------|
| Книга | Много |
| Журнал | 5 |

Кажется, будто "5" - это число, но в одном столбце должны храниться данные одного типа, так что это строка. Уже звучит странно, согласитесь? А в моей задаче надо было сделать агрегацию по этому столбцу.

🫣 День 1-2. Стадия отрицания
Первые два дня я изучаю проект.

🫸 День 3. Стадия торга
Пытаюсь понять, как вообще создаётся отчёт, потому что при запросе я получал 50 тысяч (!) строк.

😥 День 4. Депрессия
Пишу первое решение, но оно оказывается неэффективным. Сначала проверял, есть ли в сгруппированных данных значение "Много". Если такого значения нет, я искал "Достаточно". Если и его не было, то надо было сложить все значения в колонке. А вы умеете складывать строки? В итоге я заставил рабочий сервер зависнуть с моими расчётами, и 15 минут он не обрабатывал другие запросы.

👌 День 5. Принятие
Уже почти отчаявшись и организовав два созвона по задаче, я всё же нашёл решение! И потом 4 часа я писал 40 строк кода.

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

⚡️ Совет: Никогда не храните числа со строками, а деньги дома (тут могла бы быть рекламная интеграция с известным банком)!

#мой_путь
Please open Telegram to view this post
VIEW IN TELEGRAM
👾5👍3🤔1
⚡️Рейтинг языков программирования 2023⚡️

Прочитал статью.
IEEE (Институт инженеров по электротехнике и электронике) составил 10-ый ежегодный рейтинг языков программирования.

🔥 В этом году Python не только сохраняет свою позицию на первом месте, но и увеличивает свое преимущество. Особенно это можно наблюдать в сфере разработки искусственного интеллекта, даже не смотря на то, что хайп на ИИ уже спадает.

👨‍💻 Подтверждая один из моих прошлых постов про базы данных, статья подчеркивает, что одного Python недостаточно для карьеры в IT. В рейтинге по навыкам на первом месте стоит SQL. Работодатели предпочитают видеть навыки SQL в сочетании с другими языками.

🦾 Различные языки на основе C, как Java или С++, все еще популярны, особенно для задач высокой производительности. А для статистического анализа востребованы такие языки, как R.

💀 Кроме того, "ветеранские" языки, такие как Cobol и Fortran, все еще актуальны в определенных отраслях. Например, многие крупные банки до сих пор нуждаются в программистах на Cobol.

🦄 Ставь единорога, чтобы я написал "Hello World!" на Cobol и Fortran. Языку Cobol уже 35 лет!

#находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄10👍1
Привет, это тред рабочих столов 🍏

Кидайте скрин рабочего стола в комменты. Только чур ничего не убирать! У меня вот убирать даже нечего 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
👾3
💬 Как вы и просили, написал "Hello world!" на "ветеранских" языках Cobol и Fortran

Немного информации про языки
(в сравнении вакансий использовал информацию с сайта indeed.com)

🔹 COBOL (Common Business Oriented Language - Бизнес-ориентированный язык для общих задач)

Возраст: создан в 1959 году, текущая версия языка 1989 года.
Особенности: разработан для бизнес-приложений и используется в финансовых и административных системах.
Зачем нужен: корпоративные системы, банкинг и государственные IT-системы.
Вакансий: 370

🔸 Fortran
(Formula Translation - формульный транслятор)

Возраст: был создан в 1957 году, современная версия 2018 года.
Особенности: для научных и инженерных вычислений. Имеет высокую производительность, используется для задач, связанных с численными методами, моделированием и симуляцией.
Зачем нужен: Применяется в академических исследованиях, аэрокосмической индустрии, метеорологии и областях, где требуются сложные математические вычисления.
Вакансий: 186

Для сравнения, на этом же сайте вакансий для Pyhton разработчиков - 22 000 🧑‍💻

#находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5👍2🔥2
🫥 Если вокруг всё резко меняется на 180 градусов, подождите - скорее всего скоро будет 360°.

#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3👾1
Как "думает" компьютер?

В одном из предыдущих постов мы рассмотрели, как написать "Hello, World!" на разных языках программирования. На Python - это всего одна строка и одна функция с одним аргументом. Но всё ли так просто?

🥸 Давайте погрузимся "под капот" и узнаем, как эта магия происходит!

Что происходит "под капотом"?
1️⃣ Перевод текста в Байт-код
Ваша строка кода print("Hello, World!") сначала преобразуется в байт-код — это почти машинный код, но всё ещё понятен Python.

2️⃣ Запуск байт-кода на Виртуальной Машине
Этот байт-код затем исполняется виртуальной машиной Python (PVM). Здесь уже начинаются "нолики и единички", которые будут понятны процессору.

3️⃣ Отправка машинного кода на процессор
После преобразования байт-кода в машинный код в виде инструкций, этот код передаётся на процессор вашего компьютера. Процессор, в свою очередь, исполняет эти инструкции и подготавливает данные для вывода. (к этому будет отдельный пост)

4️⃣ Вывод на экран
Исполненный процессором машинный код передаёт сигнал операционной системе, указывая, что нужно вывести текст "Hello, World!" на экран. Операционная система обрабатывает этот сигнал и взаимодействует с подключённым монитором для отображения текста в терминале, где мы запустили наш код.

🖥 Вывод в Терминал
Когда мы видим "Hello, World!" в терминале, это результат всей этой сложной цепочки команд, переводов и взаимодействий между различными уровнями компьютера.

❄️ Даже одна "простая" строка кода скрывает за собой целую историю действий и преобразований! Разве это не магия?

#просто_о_сложном
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7