Точка входа в программирование
20.3K subscribers
1.25K photos
216 videos
2 files
2.77K 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 #теория
22🔥7👍3🍌2
​​Тест — Хорошо ли вы знаете принципы SOLID?

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

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

#solid
🫡7🍌3👍1
Как стать айтишником — ответы на популярные вопросы

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

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

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

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

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

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

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

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

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

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

#git
🔥82❤‍🔥2👍2🍌2
Кондиционеры и принтеры чинятся таким же способом
😁29🍌4
Паттерны MVC, MVP и MVVM — что это

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

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

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

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

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

Подробнее в статье.
10🍌3❤‍🔥1
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

#инструменты #курс
❤‍🔥13👍5🍌3
​​Участник Open Source — как им стать и зачем

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

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

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

#general
👍5🍌211
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. Там визуализируются внутренние структуры репозиториев. Игра опенсорс, так что можно покопаться в исходниках.
❤‍🔥105👍3🔥3🍌2
​​Что лучше использовать: PyTorch или TensorFlow?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#css #frontend
🌭5👍3🍌3
​​Про ООП в картинках и с трансформерами

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

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

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

#теория
👍43👾3🍌1
​​React Native vs. Flutter: что лучше?

Если только планируете вливаться в мобильную разработку, то можете стать перед выбором стека. Flutter и React Native — два основных инструмента для создания кроссплатформенных мобильных приложений. Оба позволяют разрабатывать приложения для iOS, Android и веб из одной кодовой базы.

Flutter предоставляет обширную библиотеку виджетов и плагинов, в то время как React Native — сторонние библиотеки и базовые компоненты.

Держите на заметку статью, где автор на практическом примере показывает разницу этих двух инструментов. Он создал чат-приложение с использованием Firebase в качестве бэкенда. React Native использует JavaScript и TypeScript, в то время как Flutter — язык Dart, оптимизированный для компиляции на разные платформы.

#mobile #react #flutter
🥰3🍌21😁1
Все через это проходили
🤣33🔥7👍3😁1🎉1
​​Как работает тёмная тема и как правильно её создать

В мире приложений тёмные темы стали не просто трендом, а хорошим тоном. Так интерфейс не нагружает глаза пользователя в тёмное время суток и экономит энергию на устройствах с OLED-экраном.

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

#ux #ui
❤‍🔥7🍌2👍1
Что такое хэш-таблицы и как они работают

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

Хэш-таблица позволяет очень быстро находить и организовывать данные в ней — количество элементов в таблице не влияет на время поиска по этой таблице (даже если их миллионы). Это возможно благодаря тому, что для каждого элемента, помещаемого в таблицу, специальной хэш-функцией вычисляется ключ, по которому этот элемент будет находиться. И в дальнейшем для поиска элемента, чтобы не делать перебор всего массива, нужно лишь заново вычислить ключ хэш-функцией и по нему получить искомое значение.

Если интересно, как именно работают хэш-таблицы и функции "под капотом", то держите видео на эту тему.

#теория
🔥6👍3🍌21
Forwarded from Типичный программист
This media is not supported in your browser
VIEW IN TELEGRAM
Над презентациями больше не прокрастинируем

Для тех, кто испытывает творческое напряжение во время верстки слайдов, разработали Tome — конструктор с ИИ, который:

— создаст типовую структуру презентации по коротком промпту (например, «напиши питч IT-стартапа в области медицины»);
— раскидает буллит-поинты, картинки по слайдам и даст их перегенерить при уточнении промпта;
— сгенерирует картинки, видео и анимирует переходы и многое другое.

How To

#нейросети
👀7🍌4❤‍🔥1🔥1
Что такое MVP простыми словами

MVP (Minimum Viable Product) — это базовая версия продукта с минимальным набором функций, необходимых для решения основной проблемы целевой аудитории.

Зачем это нужно?

MVP позволяет проверить продукт на аудитории, собрать фидбек и скорректировать план, затратив при этом минимум финансов и времени.

Пример MVP:

Простое мобильное приложение для заметок, которое позволяет создавать, редактировать и удалять записи. Это основная функциональность, необходимая для удовлетворения потребностей пользователей — без перегруженного интерфейса и сторонних фич.

Ошибочное представление MVP:

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

Если хотите глубже познакомиться с концепцией MVP с советами и примерами, то держите эту статью.

#теория
👍17🍌3