Точка входа в программирование
21.3K subscribers
948 photos
172 videos
1 file
2.49K links
Фундаментальные знания по основам программирования

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
SOLID в картинках

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

Всего этих правил 5. Смысл каждого описан на картинках выше — на примерах разбирают проблему в ООП и принцип, который эту проблему решает. А в этой статье детальней рассказывают про каждый из них. Если кратко:

S — Single ResponsibilityКаждый программная сущность должна отвечать только за одну операцию.

O — Open-ClosedКлассы должны быть открыты для расширения, но закрыты для модификации.

L — Liskov Substitution — Объекты дочерних классов должны быть способны заменить объекты родительских классов.

I — Interface SegregationНе следует ставить клиента в зависимость от методов, которые он не использует.

D — Dependency Inversion — Сущности должны зависеть от абстракций, а не от конкретных деталей.

#solid #теория
​​Тест — Хорошо ли вы знаете принципы SOLID?

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

Теперь предлагаем проверить усвоенные знания на нашем тесте. Всего в нём 10 вопросов. Результатами можно поделиться в комментариях.

#solid
Как стать айтишником — ответы на популярные вопросы

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

В данной статье руководители IT-компаний отвечают на эти и другие вопросы, а также делятся полезными советами на старте. Разбирают темы общего плана, поэтому ответы будут полезны специалистам любого стека.
​​Что такое .gitignore-файл?

gitignore — это файл конфигурации, который используется в системе контроля версий Git для указания файлов и директорий, которые должны быть проигнорированы Git при отслеживании изменений в репозитории.

Зачем он нужен?
Исключение временных файлов. Игнорирует файлы, создаваемые в процессе разработки, такие как *.pyc и node_modules/.

— Платформозависимый код. Игнорирует файлы, специфичные для ОС, например, .DS_Store и Thumbs.db.

— Защита чувствительных данных. Предотвращает случайное добавление паролей и ключей API в репозиторий.

Пример синтаксиса файла:

# Игнорирование временных файлов Java (файлы с указанным расширением)
*.class

# Игнорирование настроек проекта IntelliJ IDEA (все файлы в указанной папке)
.idea/

Чтобы вручную не составлять .gitignore-файл, можно воспользоваться сервисами с готовыми конфигами. Например gitignore.io — указываете используемые в проекте технологии и получаете заполненный файл.

#git
Кондиционеры и принтеры чинятся таким же способом
Паттерны MVC, MVP и MVVM — что это

Семейство MV*-паттернов — популярная тема у программистов. Про неё любят спрашивать на собеседованиях и указывать в вакансиях. Давайте разберёмся, что это:

MV*-паттерны — паттерны для организации архитектуры кода. Они улучшают его строение, читаемость и обеспечивают эффективную работу приложения. Каждый из них разделяет программную логику на 3 составляющих:

MVC — Model-View-Controller. Тут модель хранит в себе данные, представление отвечает за отображение этих данных, а контроллер реагирует на ввод пользователя, оповещая об этом модель.

MVP — Model-View-Presenter. Тут модель хранит бизнес-логику, представление отображает данные, а презентер реализует взаимодействие между моделью и представлением.

MVVM — Model-View-ViewModel. Модель отвечает за хранение данных и бизнес-логику. Представление — отображает данные и обрабатывает пользовательский ввод. Модель представления преобразует данные из модели для представления и уведомляет модель о вводе.

Подробнее в статье.
Forwarded from Веб-страница
​​Топ-12 ресурсов для бесплатного изучения веб-разработки и программирования

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

Сохраните, чтобы изучать то, что нужно вам:
— W3School: https://www.w3schools.com
— Современный учебник JavaScript: https://learn.javascript.ru
— Codewars: https://www.codewars.com
— Refactoring Guru: https://refactoring.guru
Web.dev: https://web.dev
— Harvard CS50 (2023): https://www.youtube.com/watch?v=LfaMVlDaQ24
— Geeks for geeks: https://www.geeksforgeeks.org
— Дока: https://doka.guide
— Egghead: https://egghead.io
— Freecodecamp: https://www.youtube.com/@freecodecamp
— LeetCode: https://leetcode.com/explore
— Developer Roadmaps: https://roadmap.sh

#инструменты #курс
​​Участник Open Source — как им стать и зачем

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

Работа с open source может помочь эффективно учиться и наращивать практические навыки. Также это отличный вариант для портфолио.

В этой статье рассказывают, зачем становиться участником OS, как это сделать и какие есть варианты работы (помимо написания кода).

#general
This media is not supported in your browser
VIEW IN TELEGRAM
Игры, помогающие прокачать логику и понимание алгоритмов

Держите целую подборку игр (более 20 штук), которые отлично подойдут начинающим в программировании. Вот некоторые из них:

Colobot — знакомая многим игра для простого изучения программирования. Язык C-подобный. По сюжету нужно найти новую планету для жизни.

The Nand Game — бесплатная браузерка, где вы собираете компьютер, начиная с самых базовых элементов.

Screeps — ММО стратегия, где вы программируете поведение своих «юнитов».

The Signal State — игра в стиле постапокалипсиса, где вы играете за техника и должны решить 40 головоломок (это она на превью).

BOX-256 — 8-битный компьютер с 256 памяти и 16-цветным дисплеем. Для настоящих олдов.

Oh My Git! — игра для обучения Git. Там визуализируются внутренние структуры репозиториев. Игра опенсорс, так что можно покопаться в исходниках.
​​Что лучше использовать: PyTorch или TensorFlow?

Хотите разобраться в инструментах машинного обучения? Давайте разберём в сравнении PyTorch и TensorFlow:

PyTorch — это простой инструмент, который хорошо дружит с Python и создан на базе библиотеки Torch.

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

У первого из преимуществ простота, гибкость, удобство с Python. Но есть ограничения с визуализацией и сервированием моделей. А TensorFlow хорошо может в производительность и масштабируемость, но иногда подводит с обратной совместимостью и скоростью.

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

#pytorch #tensorflow #ml
​​Чистим код: советы по именованию

Записываем в блокнотик:

— Все сущности должны иметь понятные и удобнопроизносимые имена (т.е. никаких a1, a2, a3, temp, foo). Не бойтесь потратить на придумывание названия переменной более 5 секунд. В будущем вы от этого только выиграете.

— Длина названия должна быть пропорциональна области видимости сущности. Вот почему итераторы в маленьких циклах можно называть i, j, k, а какие-то глобальные константы лучше по типу MAX_REQUEST_COUNT.

— Имена классов должны представлять собой существительные или их комбинации.

— Методы в своём названии должны содержать глагол, описывающий действие метода. Если глагол не подобрать — задумайтесь, точно ли эта сущность должна быть методом?

— Стоит избегать названий со словами And, With, т.к. они нарушают принцип единой ответственности (хотя бывают и исключения).

— Если есть группа переменных с общим префиксом, то его ставим в конце, а различные части — вначале: StartButton, StopButton, а не ButtonStart, ButtonStop. Так проще находить нужное в группе нескольких переменных.

#чистимкод
Учимся анимировать в CSS за 20 минут

CSS предлагает два метода анимирования: переходы (transitions) и анимации (animations). Переходы плавно изменяют свойства, а анимации контролируются по ключевым кадрам.

Для создания перехода используются свойства transition: duration, timing function, delay. Анимации создаются с помощью @keyframes и параметров, таких как имя и длительность.

Также есть утилитарные классы, которые упрощают использование анимаций: slideInLeft, slideInRight, rotate и bounce.

Держите статью, где подробно разбирают процесс создания различных анимаций и объясняют принцип их работы.

#css #frontend
​​Про ООП в картинках и с трансформерами

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

Тема ООП очень распространена в IT и является своего рода "базой", которую должен понимать разработчик.

Держите лонгрид, в котором все понятия ООП объясняют не стандартными формулировками, а на примере строения трансформеров. Тут же разбирают работу геттеров/сеттеров, перегрузки и немного SOLID. Всё с примерами кода, чтоб легче было усвоить.

#теория