Фундаментальные знания по основам программирования Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/zrgj
Над презентациями больше не прокрастинируем
Для тех, кто испытывает творческое напряжение во время верстки слайдов, разработали Tome — конструктор с ИИ, который:
— создаст типовую структуру презентации по коротком промпту (например, «напиши питч IT-стартапа в области медицины»);
— раскидает буллит-поинты, картинки по слайдам и даст их перегенерить при уточнении промпта;
— сгенерирует картинки, видео и анимирует переходы и многое другое.
How To
#нейросети
Как работает тёмная тема и как правильно её создать
В мире приложений тёмные темы стали не просто трендом, а хорошим тоном. Так интерфейс не нагружает глаза пользователя в тёмное время суток и экономит энергию на устройствах с OLED-экраном.
Держите статью о создании таких тем с учётом особенностей человеческой физиологии глаза. Тут обсуждают изменение цветовой гаммы в зависимости от времени суток и особенностей сумеречного зрения. Расскажут про теорию цвета и контраста, а главное — как правильно тестировать интерфейс с тёмной темой инженерным путём. И всё это на примерах картинок с уточками.
#ux #ui
Про ООП в картинках и с трансформерами
В программировании объектно-ориентированный подход подобен работе с конструктором, где вы создаёте сложные системы, собирая их из меньших, но более понятных частей — объектов. Каждый объект — это своего рода строительный блок, который хранит данные и действия, специфичные для него. Например, объект "автомобиль" может иметь свойства скорости и цвета, а также методы для езды и остановки.
Тема ООП очень распространена в IT и является своего рода "базой", которую должен понимать разработчик.
Держите лонгрид, в котором все понятия ООП объясняют не стандартными формулировками, а на примере строения трансформеров. Тут же разбирают работу геттеров/сеттеров, перегрузки и немного SOLID. Всё с примерами кода, чтоб легче было усвоить.
#теория
Учимся анимировать в CSS за 20 минут
CSS предлагает два метода анимирования: переходы (transitions) и анимации (animations). Переходы плавно изменяют свойства, а анимации контролируются по ключевым кадрам.
Для создания перехода используются свойства transition: duration
, timing
function
, delay
. Анимации создаются с помощью @keyframes
и параметров, таких как имя и длительность.
Также есть утилитарные классы, которые упрощают использование анимаций: slideInLeft
, slideInRight
, rotate
и bounce
.
Держите статью, где подробно разбирают процесс создания различных анимаций и объясняют принцип их работы.
#css #frontend
Что лучше использовать: PyTorch или TensorFlow?
Хотите разобраться в инструментах машинного обучения? Давайте разберём в сравнении PyTorch и TensorFlow:
PyTorch — это простой инструмент, который хорошо дружит с Python и создан на базе библиотеки Torch.
TensorFlow — это большая система от Google Brain, поддерживающая различные платформы и языки программирования. Есть множество предварительно обученных моделей.
У первого из преимуществ простота, гибкость, удобство с Python. Но есть ограничения с визуализацией и сервированием моделей. А TensorFlow хорошо может в производительность и масштабируемость, но иногда подводит с обратной совместимостью и скоростью.
Эта статья поможет определиться с выбором из двух инструментов для конкретной задачи.
#pytorch #tensorflow #ml
Участник Open Source — как им стать и зачем
Многие приложения и технологии, которыми мы пользуемся, содержат большое количество ПО с открытым исходным кодом. Это когда над кодом продукта могут работать не только непосредственно его разработчики, но и любые желающие программисты — всё бесплатно и доступно.
Работа с open source может помочь эффективно учиться и наращивать практические навыки. Также это отличный вариант для портфолио.
В этой статье рассказывают, зачем становиться участником OS, как это сделать и какие есть варианты работы (помимо написания кода).
#general
Паттерны MVC, MVP и MVVM — что это
Семейство MV*-паттернов — популярная тема у программистов. Про неё любят спрашивать на собеседованиях и указывать в вакансиях. Давайте разберёмся, что это:
MV*-паттерны — паттерны для организации архитектуры кода. Они улучшают его строение, читаемость и обеспечивают эффективную работу приложения. Каждый из них разделяет программную логику на 3 составляющих:
MVC — Model-View-Controller. Тут модель хранит в себе данные, представление отвечает за отображение этих данных, а контроллер реагирует на ввод пользователя, оповещая об этом модель.
MVP — Model-View-Presenter. Тут модель хранит бизнес-логику, представление отображает данные, а презентер реализует взаимодействие между моделью и представлением.
MVVM — Model-View-ViewModel. Модель отвечает за хранение данных и бизнес-логику. Представление — отображает данные и обрабатывает пользовательский ввод. Модель представления преобразует данные из модели для представления и уведомляет модель о вводе.
Подробнее в статье.
Что такое .gitignore-файл?
gitignore — это файл конфигурации, который используется в системе контроля версий Git для указания файлов и директорий, которые должны быть проигнорированы Git при отслеживании изменений в репозитории.
Зачем он нужен?
— Исключение временных файлов. Игнорирует файлы, создаваемые в процессе разработки, такие как *.pyc
и node_modules/
.
— Платформозависимый код. Игнорирует файлы, специфичные для ОС, например, .DS_Store
и Thumbs.db
.
— Защита чувствительных данных. Предотвращает случайное добавление паролей и ключей API в репозиторий.
Пример синтаксиса файла:# Игнорирование временных файлов Java (файлы с указанным расширением)
*.class
# Игнорирование настроек проекта IntelliJ IDEA (все файлы в указанной папке)
.idea/
Чтобы вручную не составлять .gitignore-файл, можно воспользоваться сервисами с готовыми конфигами. Например gitignore.io — указываете используемые в проекте технологии и получаете заполненный файл.
#git
Тест — Хорошо ли вы знаете принципы SOLID?
В прошлом посте рассказывали про принципы SOLID. Они помогают писать и поддерживать гибкий, читаемый и масштабируемый код.
Теперь предлагаем проверить усвоенные знания на нашем тесте. Всего в нём 10 вопросов. Результатами можно поделиться в комментариях.
#solid
Устроим викторину. Какой из следующих форматов чаще всего используется при обмене данными между веб-сервером и клиентом?
#викторина
Как программисту сохранить своё здоровье
Сидячий образ жизни программиста со временем сильно сказывается на его здоровье. Поэтому крайне важно как можно раньше начать бороться с этим, не дожидаясь каких-либо симптомов. Вот некоторые простые, но эффективные советы:
— Практика "20-20-20": Каждые 20 минут работы смотрите на объект, находящийся на расстоянии 20 футов (6 метров), в течение 20 секунд. Это поможет снизить усталость глаз.
— Используйте стол для стояния: Разнообразьте рабочий процесс, используя стол для стояния. Это поможет улучшить осанку и уменьшить проблемы со спиной.
— Метод Помодоро: 25 минут фокусированной работы, затем 5 минут перерыва. После каждого цикла делайте короткую физическую активность, например, приседания или отжимания.
— Гаджеты для улучшения осанки: Рассмотрите использование гаджетов, например, устройств для коррекции осанки, которые помогут поддерживать правильное положение тела.
— Используйте массажные коврики для стоп, чтобы стимулировать точки на стопах и улучшить кровообращение.
— Изучите простые упражнения для рук и запястий, которые можно выполнять прямо за рабочим столом, чтобы предотвратить туннельный синдром.
#советы #здоровье
Какую IT-профессию выбрать для старта
Планируете вливаться в IT, но ещё не определились с подходящим направлением? Тогда держите статью, где разобрали 11 самых распространённых IT-профессий и рассказали об их особенностях. Каждую оценили по критериям зарплаты, лёгкости первого трудоустройства и перспективам. Спектр направлений широкий: от программиста и тестировщика, до HR и UX/UI-дизайнера. Поэтому каждый сможет подобрать для себя подходящее направление.
#general
AvitoTech приглашает на Avito Android meetup #2
В программе много цифр и интересных кейсов по Android-разработке. А также три доклада про:
— сценарии сборки и их связь с Git Workflow;
— нюансы потребления памяти Android-сборками;
— автоматизацию генерации Baseline Profile.
Событие пройдёт 6 февраля в 19:00 в московском офисе Авито. Чтобы попасть на мероприятие офлайн, зарегистрируйтесь здесь.
Если вы не сможете прийти на встречу, то смотрите прямую трансляцию митапа на ютуб-канале AvitoTech.
Реклама ООО «Авито Тех» LjN8JuNsQ
Тренды и новинки в мире CSS и веб-дизайна
Если включать “режим Ванги” и попытаться предсказать, что изменится в веб-дизайне в течение 2024 года, нелишним будет оглянуться на события 2023. Тренды, наметившиеся в минувшем году, так или иначе лежат в трёх основных плоскостях — это технологии, стиль и организация труда.
В этой статье веб-дизайнер анализирует растущие тренды, которые есть смысл прокачать как начинающим разработчикам, так и опытным. Если кратко, то двигаться стоит в этих направлениях:
— Инструменты для создания сайтов на основе AI;
— Инструменты для ускорения рядовых задач на основе AI;
— Интерфейсы для смешанной реальности;
— Интеграция 3D-иллюстраций;
— Работа в распределённой команде, селф- и тайм-менеджмент;
#web #frontend
Станьте профессионалом в области Data Science за два года в академии от Центрального университета!
Получите диплом магистра в области математики и компьютерных наук и обучайтесь на основе реальных бизнес-задач и кейсов ведущих ИТ-компаний c преподавателями-практиками.
Также помимо образования и практики студенты получают:
— современный кампус в центре Москвы;
— личного ментора по обучению;
— оплачиваемую стажировку в Тинькофф или других партнерах программы с первого семестра;
— помощь с трудоустройством после первого года обучения.
Ознакомиться более подробно можно здесь
Реклама АО «Тинькофф Банк» erid:2VtzqvWM7pJ
Что такое хэш-таблицы и как они работают
Хэш-таблица — это одна из самых популярных структур данных. Про неё любят спрашивать на собеседованиях и в целом использовать в программировании. И вот почему:
Хэш-таблица позволяет очень быстро находить и организовывать данные в ней — количество элементов в таблице не влияет на время поиска по этой таблице (даже если их миллионы). Это возможно благодаря тому, что для каждого элемента, помещаемого в таблицу, специальной хэш-функцией вычисляется ключ, по которому этот элемент будет находиться. И в дальнейшем для поиска элемента, чтобы не делать перебор всего массива, нужно лишь заново вычислить ключ хэш-функцией и по нему получить искомое значение.
Если интересно, как именно работают хэш-таблицы и функции "под капотом", то держите видео на эту тему.
#теория
React Native vs. Flutter: что лучше?
Если только планируете вливаться в мобильную разработку, то можете стать перед выбором стека. Flutter и React Native — два основных инструмента для создания кроссплатформенных мобильных приложений. Оба позволяют разрабатывать приложения для iOS, Android и веб из одной кодовой базы.
Flutter предоставляет обширную библиотеку виджетов и плагинов, в то время как React Native — сторонние библиотеки и базовые компоненты.
Держите на заметку статью, где автор на практическом примере показывает разницу этих двух инструментов. Он создал чат-приложение с использованием Firebase в качестве бэкенда. React Native использует JavaScript и TypeScript, в то время как Flutter — язык Dart, оптимизированный для компиляции на разные платформы.
#mobile #react #flutter
Сделайте свой пет-проект в индустрии туризма!
Открыта регистрация на Московский туристический хакатон — соревнование по цифровизации индустрии туризма. Он пройдёт в два этапа: отборочный онлайн-этап и очный финал в Москве.
Общий призовой фонд: 7 500 000 рублей.
Ждём IT-специалистов, продуктологов, разработчиков, дизайнеров, аналитиков, креаторов и других специалистов, создающих прорывные технологические и продуктовые решения.
Вас ждут пять задач на стыке TravelTech и одной из дополнительных сфер:
— BookingTech;
— FinTech;
— RoadTech;
— ServiceTech;
— E-Com.
Окончание приёма заявок 11 марта, поторопитесь! Больше деталей на сайте.
Заполняйте заявку на хакатон и выигрывайте!
Реклама АНО "Проектный Офис по Развитию Туризма и Гостеприимства Москвы" ИНН 7703468243, LjN8K43ay
Чистим код: советы по именованию
Записываем в блокнотик:
— Все сущности должны иметь понятные и удобнопроизносимые имена (т.е. никаких a1, a2, a3, temp, foo
). Не бойтесь потратить на придумывание названия переменной более 5 секунд. В будущем вы от этого только выиграете.
— Длина названия должна быть пропорциональна области видимости сущности. Вот почему итераторы в маленьких циклах можно называть i
, j
, k
, а какие-то глобальные константы лучше по типу MAX_REQUEST_COUNT
.
— Имена классов должны представлять собой существительные или их комбинации.
— Методы в своём названии должны содержать глагол, описывающий действие метода. Если глагол не подобрать — задумайтесь, точно ли эта сущность должна быть методом?
— Стоит избегать названий со словами And
, With
, т.к. они нарушают принцип единой ответственности (хотя бывают и исключения).
— Если есть группа переменных с общим префиксом, то его ставим в конце, а различные части — вначале: StartButton, StopButton
, а не ButtonStart, ButtonStop
. Так проще находить нужное в группе нескольких переменных.
#чистимкод
Игры, помогающие прокачать логику и понимание алгоритмов
Держите целую подборку игр (более 20 штук), которые отлично подойдут начинающим в программировании. Вот некоторые из них:
Colobot — знакомая многим игра для простого изучения программирования. Язык C-подобный. По сюжету нужно найти новую планету для жизни.
The Nand Game — бесплатная браузерка, где вы собираете компьютер, начиная с самых базовых элементов.
Screeps — ММО стратегия, где вы программируете поведение своих «юнитов».
The Signal State — игра в стиле постапокалипсиса, где вы играете за техника и должны решить 40 головоломок (это она на превью).
BOX-256 — 8-битный компьютер с 256 памяти и 16-цветным дисплеем. Для настоящих олдов.
Oh My Git! — игра для обучения Git. Там визуализируются внутренние структуры репозиториев. Игра опенсорс, так что можно покопаться в исходниках.
Топ-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: freecodecamp" rel="nofollow">https://www.youtube.com/@freecodecamp
— LeetCode: https://leetcode.com/explore
— Developer Roadmaps: https://roadmap.sh
#инструменты #курс
Кондиционеры и принтеры чинятся таким же способом
Читать полностью…Как стать айтишником — ответы на популярные вопросы
Какой язык изучать, как мотивировать себя, где начинать начинающему — эти вопросы задаёт практически каждый айтишник на старте своего обучения.
В данной статье руководители IT-компаний отвечают на эти и другие вопросы, а также делятся полезными советами на старте. Разбирают темы общего плана, поэтому ответы будут полезны специалистам любого стека.
SOLID в картинках
SOLID — распространённая тема у программистов. Если кратко, то это набор правил и подходов к разработке, при которых архитектура приложения получается и остаётся лёгкой, гибкой и читаемой. Знание SOLID можно встретить в требованиях почти к каждой вакансии разработчика.
Всего этих правил 5. Смысл каждого описан на картинках выше — на примерах разбирают проблему в ООП и принцип, который эту проблему решает. А в этой статье детальней рассказывают про каждый из них. Если кратко:
S — Single Responsibility — Каждый программная сущность должна отвечать только за одну операцию.
O — Open-Closed — Классы должны быть открыты для расширения, но закрыты для модификации.
L — Liskov Substitution — Объекты дочерних классов должны быть способны заменить объекты родительских классов.
I — Interface Segregation — Не следует ставить клиента в зависимость от методов, которые он не использует.
D — Dependency Inversion — Сущности должны зависеть от абстракций, а не от конкретных деталей.
#solid #теория
Как писать чистый код
В современной разработке ПО одним из ключевых аспектов является создание чистого кода. Этот подход не только улучшает совместную работу команды разработчиков, но и способствует лёгкой поддержки и долгосрочной устойчивости продукта.
Держите серию видео, где разбирают простые, но эффективные советы по поддержанию чистоты кода — про именование, комментарии, реализацию функций и многое другое. Большинство советов универсальны и не зависят от определённого языка программирования, поэтому актуальны для всех программистов.
Хотели бы отдельную рубрику с разборами советов по чистому коду?
🍌 Да
🌭 Нет
#чистыйкод
Developer Roadmap обновили дорожные карты на 2024
Ребята здорово прокачали дорожные карты. Теперь шпаргалками можно пользоваться как чек-листом и узнавать подробности по каждому пункту прямо на сайте: https://roadmap.sh/android
#android #инструменты
Rest API для начинающих. HTTP, Клиент-Сервер, проектирование, разработка
Rest API — это способ, которым веб-приложения обмениваются информацией через интернет, подобно разговору на определённом "языке". Такой способ позволяет приложениям запрашивать и отправлять данные, такие как текст или изображения, чтобы работать вместе и обеспечивать взаимодействие в удобном формате.
В этом видео на простых примерах объясняют принцип работы Rest API. Тут разбирают теорию RESTful, расскажут, как это всё правильно проектировать, создавать и документировать.
#restapi
Разница между переменными значимого и ссылочного типа
Понимание различий между переменной значения (value variable) и ссылочной переменной (ref variable) считается фундаментальными знаниями практически в любом стеке. Также эта тема может подниматься на собеседованиях на позицию junior-разработчика. И вот в чем разница:
Когда мы оперируем переменной значимого типа (присваиваем, передаём аргументом в функцию, кешируем и т. д.), то мы оперируем непосредственным значением переменной (например, числом или буленом). То есть когда переменной А присваивается значение переменной Б, то переменной А назначается копия Б, которая никак не зависит от оригинала. Если же потом переменная Б изменяется, это никак не отражается на значении переменной А. Пример из жизни: подруга попросила у вас книгу, вы отдаёте ей ксерокопию книги. Если потом подруга решит разрисовать свою копию, на вашем оригинале книги это никак не отразится.
Когда мы оперируем переменными ссылочного типа, то мы оперируем лишь указателем на переменную, а не его непосредственным значением. Если переменной А присваивается Б, то в А никакого значения не хранится, а хранится лишь ссылка на Б. В таком случае, если меняется значение Б, то и значение А тоже изменяется. Пример: подруга попросила у вас книгу и вы даёте ей номер нужной книги в библиотеке — она может пользоваться оригиналом. Если она решит разрисовать книгу — она разрисует оригинал.
Это далеко не единственное отличие между этими типами, но крайне важное.
#теория
Такой ошибке все возрасты покорны
Читать полностью…SQL-запросы — основные команды для работы с базами данных
SQL — это язык запросов для работы с базами данных (создание/изменение таблиц, добавление и редактирование записей в них). По синтаксису SQL-запросы похожи на обычные предложения:SELECT (Name, Age) FROM Clients WHERE Age > 20
Что можно перевести как
Выбрать Имя и Возраст из Таблицы клиентов, где Возраст больше 20.
Ниже рассмотрим базовые SQL-запросы. Первые две команды обязательны, а другие четыре используются по необходимости.
— SELECT
— выбирает отдельные столбцы или всю таблицу целиком;
— FROM
— указывает из какой таблицы получить данные;
— WHERE
— условие, по которому выбираются данные;
— GROUP BY
— параметр, по которому будут группироваться данные;
— HAVING
— условие, по которому сгруппированные данные будут отфильтрованы;
— ORDER BY
— параметр, по которому данные будут отсортированы;
Детальней про эти и другие команды, а также ещё много полезного читайте в этой статье.
#sql #db