Азбука айтишника – Telegram
Азбука айтишника
3.07K subscribers
1.45K photos
51 videos
2 files
918 links
Айти для неайтишников: постигаем азы программирования.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6fce3cb

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Что происходит в офисе РКН последнюю неделю:
This media is not supported in your browser
VIEW IN TELEGRAM
😁5
Зачем айтишнику математика?

Если вы хотите в Data Science, математика — это ваш пропуск. Не пугайтесь школьных формул, в IT всё логичнее и интереснее.

Мы обновили курс «Математика для разработки AI-моделей». Теперь преподаватели объясняют темы вживую на вебинарах.

Чему научим:

— Работать с матрицами и векторами (основа всех данных);
— Строить прогнозы (линейная регрессия);
— Делать рекомендательные системы (как в YouTube или Netflix).

Это база, которая нужна для старта в ML.

Запись открыта до 9 декабря:
https://clc.to/LojFzw
👍1
💳 Как выбить зарплату побольше

Собрали для вас в карточках 5 стратегий для торгов на собеседовании. Есть ещё несколько, которые подробно описаны в статье.

🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#карьерныйкоммит
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🏗 Управление памятью в Python: как это работает

Python сам выделяет и очищает память, чтобы вы не думали о байтах и указателях. Но иногда автоматике стоит помочь.

1. Python управляет памятью автоматически

Когда вы пишете x = [1, 2, 3], Python не заставляет вас думать о байтах и указателях. Он сам выделяет память, отслеживает объекты и убирает мусор. Всё это делает менеджер памяти, который хранит:

▪️ Тип данных (int, list, dict)
▪️ Счетчик ссылок (кто использует объект)
▪️ Значение (сами данные)

Такой подход удобен: нет «висячих указателей», не нужно вручную вызывать malloc/free, а ресурсы оптимизируются автоматически.

2. Счетчик ссылок

Каждый объект в Python — как воздушный шарик. Пока его кто-то держит (есть ссылки), он остается. Если все нити отпущены — объект исчезает.

Как это работает:
import sys

a = [1, 2, 3]
print(sys.getrefcount(a)) # 2 (одна ссылка в переменной + вызов функции)
b = a
print(sys.getrefcount(a)) # 3 (еще одна ссылка)
del a
print(sys.getrefcount(b)) # 2 (одна ссылка удалена)
b = None # Объект больше не используется → удален


💡Но есть нюансы: Python кэширует строки и мелкие числа (-5 до 256), поэтому их ссылки могут не изменяться.

3. Сборщик мусора

Если объекты ссылаются друг на друга, счетчик ссылок их не удалит. Например:
class Node:
def __init__(self):
self.parent = None

a = Node()
b = Node()
a.parent = b
b.parent = a # Циклическая ссылка!


Такие объекты удаляет сборщик мусора (Garbage Collector, GC), используя алгоритм поколений:

🍼 Поколение 0 — новые объекты, проверяются чаще.
🧑‍💼 Поколение 1 — пережили одну проверку.
🦖 Поколение 2 — «старожилы», проверяются реже.

Управление GC:
import gc
gc.collect() # Принудительный запуск
gc.set_threshold(700, 10, 10) # Настройка частоты очистки


💡 Совет: если у вас много циклических объектов, очищайте их вручную (gc.collect()).

4. Как оптимизировать память вручную

🔸 slots для уменьшения потребления памяти:
class User:
slots = ['name', 'age'] # Экономит до 40% памяти

def __init__(self, name, age):
self.name = name
self.age = age


🔸 Генераторы вместо списков:
 # Неоптимально:
lines = open("data.txt").readlines() #Весь файл в памяти!

# Оптимально:
def read_lines(filename):
with open(filename) as f:
for line in f:
yield line # Читаем по одной строке


🔸 Массивы вместо списков:
import array
numbers = array.array('i', [1, 2, 3, 4, 5]) # Числовой массив (экономия памяти)


🔸 Кэширование с lru_cache:
from functools import lru_cache

@lru_cache(maxsize=1000)
def compute(x):
return x 2 # Кэширует результаты функции


5. Как искать утечки памяти

🔸 Используем tracemalloc — показывает, где «утекает» память:
import tracemalloc

tracemalloc.start()
data = [x for x in range(10_000)] # Проблемный код

snapshot = tracemalloc.take_snapshot()
top_stats = snapshot.statistics('lineno')
print(top_stats[0]) # Где выделена память?


🔸 Визуализация с objgraph — рисует граф зависимостей:
import objgraph
objgraph.show_most_common_types(limit=5) # Какие объекты «размножаются»?


📌 Подробнее про управление памятью в Python: https://clc.to/SNaUtg

🏃‍♀️ Азбука айтишника

#магиякода
Please open Telegram to view this post
VIEW IN TELEGRAM
2
ИИ ведь должен был помогать, а не вредить 🧠

Просто ответственный эйчар, который заинтересован в рекрутинге.

🏃‍♀️ Азбука айтишника

#небагафича
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8
🥸 Как стажёру или джуну работать в команде (и не потеряться)

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

1️⃣ Не бойтесь спрашивать

Глупых вопросов не существует. Лучше спросить сейчас, чем допустить баг, который уйдёт в прод. Вопрос в 10:00 спасает вечер.

2️⃣ Заведите себе «тупой файл»

Да, именно так. Всё непонятное — термины, вопросы, фрагменты кода — записывайте в один файл. Потом разберётесь или зададите вопросы.

3️⃣ Следите за pull requests

Даже если пока не коммитите в прод, читайте чужие изменения. Это помогает понимать, как устроен проект и как принимаются технические решения.

Помните: у вас есть уникальное преимущество — вы только начинаете. У вас пока нет выгорания, нет рутины, и вы действительно хотите разобраться. Используйте это.

А вы уже работали в команде?
Пишите в комментариях 👇

🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#карьерныйкоммит
Please open Telegram to view this post
VIEW IN TELEGRAM
3
📝 Промпт для идеального рефакторинга кода

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

Вот несколько промтов для рефакторинга:

1. Предложи улучшения в рефакторинге для [язык] кода с целью повышения тестируемости: [фрагмент кода].

2. Выяви возможности применения [архитектурного паттерна] в данном [язык] коде: [фрагмент кода].

3. Оптимизируй следующий [язык] код для уменьшения использования памяти: [фрагмент кода].

4. Отрефакторь приведенный [язык] код для улучшения обработки ошибок и устойчивости к ним: [фрагмент кода].

5. Предложи такие изменения в приведенном [язык] коде, чтобы соблюдался [SOLID или другой принцип проектирования]: [фрагмент кода].


⚡️ ️Как вы обычно рефакторите свой код? Делитесь в комментариях!

🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#магиякода
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 Выжимаем максимум из код-ревью

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

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

👉 Читать статью

🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#ликбез
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🙏 На какой стороне ты?

❤️ — Страдаю от лени и нихрена не делаю
🌚 — Перерабатываю чуть-чуть

🔹
Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#небагафича
Please open Telegram to view this post
VIEW IN TELEGRAM
4🌚2
⚠️ «Гибкий график» и «возможность профессионального роста»: что работодатели на самом деле имеют в виду

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

🔗 Читать статью

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#карьерныйкоммит
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1🙏1
📝 Промпт для идеального документирования кода

Чтобы писать доку быстрее, используйте этот промпт для ChatGPT:


Include:
1. General denoscription of functionality
2. Denoscription of parameters and return values
3. Usage examples
4. Potential errors and how to fix them
5. Information about algorithm complexity, if applicableCode:[insert your code here]


Бонус: добавьте «Explain the logic in simple terms for a beginner developer», чтобы логику вашего кода понял даже новичок.

⚡️ Как вы обычно документируете свой код? Делитесь в комментариях!

🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#магиякода
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Команды дня: cброс коммитов

Предположим, вы сделали коммит в своём проекте. Однако после проверки вы понимаете, что вам нужно скорректировать или полностью отменить последний коммит. Для таких случаев Git предоставляет следующие команды:

🔹 Soft reset

git reset --soft HEAD^


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

🔹 Mixed reset

git reset --mixed HEAD^


Это поведение по умолчанию, когда вы используете git reset HEAD^ без указания --soft или --hard. Он сбрасывает последний коммит и удаляет изменения из области подготовки. Однако эти изменения остаются в рабочей директории. Это полезно, когда вы хотите отменить последий коммит и внести изменения с нуля, сохранив изменения в рабочей директории перед повторным коммитом.

🔹 Hard reset

git reset --hard HEAD^


Напоследок давайте поговорим о команде git reset --hard HEAD^. Она полностью стирает последний коммит вместе со всеми связанными с ним изменениями из вашей истории Git. Когда вы используете флаг --hard, пути назад уже не будет. Поэтому используйте его с особой осторожностью, только если хотите навсегда удалить последний коммит и все его изменения.

🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#синтаксическийсахар
Please open Telegram to view this post
VIEW IN TELEGRAM
Многие компании и фрилансеры до сих пор тратят часы на рутинные задачи — написание текстов, генерацию изображений, обработку данных😅А кто-то во всю уже использует ИИ и забирает клиентов и прибыль.

Тебе нужно всего лишь автоматизировать задачи с помощью ИИ: от генерации контента до анализа рынка. Освободишь время, повысишь скорость и качество работы, увеличишь доход без лишних усилий.

💼 Не упускай выгоду: каждый день без ИИ — это потенциальные клиенты и деньги, которых теряешь .

🔗 С экспертами по ИИ можно связаться здесь: https://news.1rj.ru/str/addlist/kVskgKnDYPEzZjFi
Благодарность людей или строгая защита прав?

❤️ — все для людей
🔥 — патент на все

🏃‍♀️ Азбука айтишника

#небагафича
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⚔️ Работать на удаленке или в офисе?

Понедельник, 9:00. Один разработчик в пижаме уже запустил IDE, держа в одной руке кота, а в другой — кофе. В это же время его коллега едет в офис, стоя в пробке и слушая подкаст с ускорением 1.5x. Две реальности современного разработчика. Но какая эффективнее?

Недавние исследования показывают, что продуктивность на удалёнке выше на 13%, НО... отчуждение и профессиональное выгорание тоже часто выше.

Где лучше писать код: дома с котом или в офисе с коллегами? Голосуйте и пишите свое мнение в комментариях 💬

❤️ — удалёнка навсегда, работаю в пижаме и счастлив
🤝 — только офис, нужны люди и границы
👾 — гибрид, ни нашим, ни вашим

🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#режимразраба
Please open Telegram to view this post
VIEW IN TELEGRAM
3👾2