Точка входа в программирование
21.3K subscribers
945 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
Разработка веб-приложений с помощью .NET и Visual Studio: серия практических уроков

Этот проект из 6 частей, который поможет научиться создавать веб-приложения на C#. На примере создания простого сайта для пиццы автор объясняет Razor Page, API и Azure:

https://github.com/dotnet/intro-to-dotnet-web-dev

#c
This media is not supported in your browser
VIEW IN TELEGRAM
Объясняем Kotlin Multiplatform на крестиках-ноликах

KMM позволяет разработчикам объединить всю бизнес-логику в единые модули и запускать один и тот же код на разных платформах. За последние несколько лет эту модель обсуждают всё чаще.

Разработчик Тихон Устинов рассказал о плюсах и минусах работы с KMM в проекте, а также на примере создания игры «крестики-нолики» на Android, iOS и JS продемонстрировал, как применять KMM:

https://habr.com/ru/company/rostelecom/blog/682160/

#kmm #android #ios
Браузерные игры, которые помогут легко изучить CSS

1. Flexbox Froggy — с помощью подсказок нужно помочь группе лягушек добраться до их кувшинок. На каждом уровне нужно выбрать какое свойство CSS использовать.

2. CSS Diner — в игре даётся таблица блюд, HTML форма и таблица с элементами. Игроку нужно подготовиться к ужину и разместить все предметы. Эта игра отлично подойдёт для изучения CSS селекторов.

3. Flexbox Defense — классическая игра жанра Tower Defense. Вам нужно отбить свою базу от врагов, расставляя защитные башни с помощью знаний в CSS.

#css
JIT-компилятор на Python в 300 строк

По сравнению с C++, стандартная реализация на Python достаточно медленная. Одним из решений этой проблемы является библиотека Numba, которая переводит подмножество Python и NumPy в быстрый машинный код.

Однако автор статьи решил написать свой JIT-компилятор и посоревноваться с Numba. Созданный компилятор был протестирован на простых алгоритмических задачах и, с помощью timeit() и repeat() автор сравнил время выполнения задач.

Читаем здесь: https://habr.com/ru/post/674206/

#python
Полезные библиотеки, которые помогут при работе с исключениями на C#

Polly — библиотека, которая позволяет разработчикам свободно и потокобезопасно использовать политики Retry, Circuit Breaker, Timeout, Bulkhead Isolation, Rate-limiting и Fallback.

Xeption добавляет дополнительную информацию к Exception, что помогает при отладке. Для этого нужно просто добавить модель Xeption к Exception вашего проекта.

Ben.Demystifier помогает создать более простые и понятные stack-trace.

#c
StatelessSession: что это такое и как использовать

StatelessSession — это командно-ориентированный API для контроля над SQL-запросами в Hibernate. StatelessSession используется для вставки или обновления огромных наборов данных.

В этой статье рассматривается, как внедрить экземпляр и методы StatelessSession в приложение:

https://struchkov.dev/blog/hibernates-statelesssession/

#hibernate
Подборка актуальных вакансий

Frontend-разработчик
Где: Москва
Опыт: можно без опыта

Golang-разработчик
Где: удалённо
Опыт: от 1 года

Golang-разработчик
Где: Москва, можно удалённо
Опыт: от 1 года

Старший разработчик в команду IaaS
Где: Москва
Опыт: от 1 года

iOS-разработчик
Где: Москва
Опыт: можно без опыта

Разработчик DWH / ETL
Где: Москва, можно удалённо
Опыт: от 1 года

Auto QA-инженер
Где: удалённо
Опыт: от 1 года

DevOps-инженер
Где: Москва, можно удалённо
Опыт: от 1 года

Системный аналитик
Где: Москва
Опыт: от 1 года

Специалист группы дежурных администраторов выноса изменений
Где: Москва
Опыт: от 1 года

#вакансии #работа
This media is not supported in your browser
VIEW IN TELEGRAM
В чём различия между Data Science, машинным обучением, ИИ, глубоким обучением и Data Mining

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

Эта статья поможет разобраться в различиях и связях между ними, а также изучить, в каких сферах применяются эти дисциплины:

https://habr.com/ru/post/682932/

#datascience
Курс по Jetpack Compose для начинающих Android-разработчиков

В августе вышло обновление по изучению Jetpack Compose. Пакет состоит из 6 тем с уроками по архитектуре, Layout, анимации и т.д.

В конце каждой темы вас ожидает квиз на закрепление знаний. Если вы давно хотели изучить JetPack Compose, то это руководство как раз поможет в этом:

https://developer.android.com/courses/jetpack-compose/course

#compose #android
Как работают движки JS и зачем они нужны

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

Для улучшения производительности браузеры начали использовать компилятор Just-In-Time (JIT) , который представляет собой комбинацию интерпретатора и компилятора.

В этой статье подробно разбирается механизм работы V8, SpiderMonkey, JavaScriptCore движков и парсинг на различных движках:

https://nuancesprog.ru/p/15991/

#js
This media is not supported in your browser
VIEW IN TELEGRAM
Почему ваш веб-сайт должен быть меньше 14 КБ

Если следовать рекомендациям Google, то оптимальное время загрузки страницы составляет менее трёх секунд.

Чем меньше размер страницы, тем быстрее загружается веб-сайт, но почему 14 КБ? Несмотря на небольшую разницу в размере между 14 КБ и 15 КБ, страница на 14КБ будет загружаться быстрее из-за алгоритма медленного старта TCP.

Transmission Control Protocol (TCP) — это протокол управления передачи пакетов данных. Серверы используют алгоритм медленного старта, чтобы определить, сколько пакетов можно отправить за раз.

Изначально сервер не знает, сколько данных может обработать соединение, поэтому сначала отправляет только 10 TCP-пакетов.

Подробнее о TCP и о правиле 14 КБ в этой статье:

https://habr.com/ru/post/684836/

#web
Сборник шпаргалок для фронтенд-разработчика

В этих шпаргалках собраны не просто методы, функции и базовый синтексис, но и их подробное объяснение с примерами.

Шпаргалка по тегам HTML5
Шпаргалка по методам JavaScript для работы с DOM
Шпаргалка по работе с медиа в браузере
Шпаргалка по HTTP-заголовкам, связанным с безопасностью
Шпаргалка по доступности веб-приложений
Шпаргалка по Internationalization API
Шпаргалка по Temporal API и Dayjs

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

#js #html #фронтенд
Three.js: создаём игру Тетрис

Если вы давно хотели разработать свой тетрис, то автор этой статьи покажет вам, как с помощью Three.js можно создать 3D Тетрис с цветными блоками.

В статье детально разобраны функции для создания фигур и их вращения, методы для обработки коллизии,
и Audio API для добавления звука в игру:

https://habr.com/ru/company/ruvds/blog/680666/

#js
Как закачивать файлы на сервер с помощью Retrofit

Библиотека Retrofit используется для работы с REST API и отправки запросов на удалённый сервер в Android.

Этот видеоурок поможет разобраться начинающим, как загружать файл на сервер, используя Retrofit:

https://youtu.be/fEYhQOUe0g0

#android
Полное руководство по работе с терминалом на Mac OS

В этом гайде вы найдёте как:
— работать с командной строкой, файлами и каталогами,
— загрузить файлы с помощью curl,
— установить пользовательскую тему и шрифт,
— изменить настройки .zshrc,
—работать с Github с помощью git.

Подробнее: https://tprg.ru/of1F

#ios
Telegram-бот на Java и Spring Boot

Простой видеоурок для начинающих по созданию Telegram бота с помощью Spring Boot. Автор подробно объясняет, как создать Maven проект, зарегистраровать бота в Telegram и реализовать базовый функционал.

Ссылка на видео: https://youtu.be/t9OTDHuF7_M

#java #бэкенд
Какой проект реализовать для практики навыков программирования?

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

Мы собрали для вас варианты реализации календаря на разных языках программирования, которые вы можете скачать или добавить в закладки на GitHub.

1. Экономический календарь для трейдинга на Python. Для его реализации вам понадобятся сторонние библиотеки, например Zipline.

2. Календарь задач на день, неделю и месяц на JS. Простой календарь, дизайн которого похож на Full Calendar.

3. Приложение календарь для бронирования на PHP (Laravel). Это более сложный проект, поэтому для реализации, вы должны понимать Bootstrap, jQuery и
Moment.js.

4. Календарь с расписанием уроков на С# для детей и учеников (вы можете выбрать любую другую сферу).

#python #js #c
Уроки Flutter и Dart для начинающих

Курс по изучению фреймворка Flutter и языка программирования Dart для начинающих. В ходе уроков вы изучите построение проектов на основе Dart и к концу курса разработайте несколько проектов с функционалом.

Посмотреть можно тут:

https://youtu.be/YPRaA6KhyXc

#flutter #dart #курс
Что такое WebSocket и для чего он нужен

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

WebSocket — это протокол, предназначенный для обмена данными между сервером и клиентом в реальном времени. Данный протокол часто используют сервисы, которые нуждаются в постоянном обмене данными. Например: чат-приложения, онлайн-игры или торговые площадки.

В этом руководстве рассматривается, как открыть веб-сокет-соединение и настроить поток данных на примере чата:

https://learn.javascript.ru/websocket#primer-chata

#фронтенд #бэкенд
Разбираем Java 19: что нового?

Совсем недавно вышла 17 версия, однако Oracle уже готовит новый релиз. Станет ли Java 19 переломной версией или нет, разбирается в этом видео: https://youtu.be/dHNr9tzPZhc

#java
This media is not supported in your browser
VIEW IN TELEGRAM
Создание анимированного эффекта набора текста на React

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

Подробнее: https://tprg.ru/ZpGb

#react