Точка входа в программирование
20.4K subscribers
1.19K photos
207 videos
2 files
2.72K links
Фундаментальные знания по основам программирования

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Состояние гонки (race condition)

Когда несколько потоков программы пытаются одновременно получить доступ к данным, и при этом хотя бы один поток выполняет операцию записи, может возникнуть непредсказуемая ситуация. В программировании она зовётся состоянием гонки или race condition.

Например, один поток выполняет над общей переменной x операцию x = x + 6, а второй поток - операцию x = x + 3. В общем случае потоки выполняют три операции:

1. вытащить значение x из памяти;
2. прибавить 3 или 6;
3. записать результат обратно в x.

Когда потоки выполняют эти операции одновременно, то результат в x может быть непредсказуемым и отличаться от ожидаемого на 3, 6 или 9.

Учитывайте состояние гонки в многопоточных программах.

#кратко_о_важном
Казалось бы, что может пойти не так
В чём разница между шифрованием, кодированием и хешированием?

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

https://tprg.ru/me3t
Сборник задач для практики в языке C++

Если вы изучаете C++, то подборка задач поможет вам отточить свои навыки в программировании на C++. Для удобства все задачи разделены на пять уровней сложности:

https://cppstudio.com/cat/285/

#cpp #задачи
Компьютеры страдают из-за наших багов
Выбираем дистрибутив Linux для новичка

Под Linux существует огромное количество полезных утилит, и поэтому программисты часто делают выбор в пользу Linux-дистрибутивов.

Мы собрали все «за» и «против» для трёх дружелюбных к новичку дистрибутивов — Fedora, Manjaro и Ubuntu:

https://tprg.ru/8rlE

#советы
Введение в криптографию и шифрование

Когда-то материал из этой лекции читали в МГУ целых полгода. Поэтому в статье автор не углублялся в работу шифров и рассказал об общих терминах в криптографии и шифровании, а также разобрал простым языком несколько алгоритмов шифрования:

https://tprg.ru/KCPw

Лекция на YouTube: https://youtu.be/mE_s-R5wvpw

#алгоритмы
Интенсив по машинному обучению для начинающих

Убеждены, что data science — это не для всех? На бесплатном интенсиве вам покажут, что для разработки искусственного интеллекта достаточно только базовой арифметики. Уроки пройдут 12−14 апреля в 21:00 по МСК.

Регистрация: https://clc.am/Mo6aLw

Что вас ждёт:

— Введение в анализ данных и основные инструменты.
— Погружение в машинное обучение.
— Простое объяснение сложной математики в data science.
— ML и нейросети.
— «Обогащение» данных с помощью feature engineering.
— Grid Search и кросс-валидация.

Участвуйте в интенсиве и убедитесь, что стать специалистом machine learning может каждый.
Как заменить все одинаковые подстроки в строке на JavaScript

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

https://tprg.ru/zf3o

#js
И записывает ролики с дешёвым микрофоном без монтажа
Парсинг сайтов на Python

Парсинг сайта представляет собой сбор информации с этого ресурса. Собранные путём парсинга данные можно «очистить» от лишней информации и затем использовать, например, для аналитики.

В этих уроках рассказано, как реализовать парсинг реального сайта с помощью Python и библиотек Requests и BeautifulSoup.

Часть 1: https://youtu.be/zKuBDil5dlw

Часть 2: https://youtu.be/J5sqWAqDPyE

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

Подписывайтесь: @tproger_web
7 логико-математических задач про бегемотов, которые заставят поломать голову

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

https://tprg.ru/znFB
Отличия Junior от Senior: 6 главных признаков мудрого разработчика

У Senior-разработчика за спиной большой багаж опыта. Причём этот опыт выражается не только в написании качественного кода, но и более широком кругозоре.

Для прокачки своих навыков Junior-разработчику стоит перенять несколько лайфхаков от синьоров. О некоторых из них мы рассказали в статье:

https://tprg.ru/9DFG

#советы
Media is too big
VIEW IN TELEGRAM
Нейросеть научили генерировать картинки в такт музыке

Такая красота реализована на Python. Если захотите поиграться с нейросетью, то автор подробно расписал в статье, как это работает (на английском языке):

https://tprg.ru/WXv8

#python
Защита данных в Java-классе при помощи геттеров и сеттеров

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

Сеттер принимает и проверяет данные, и если они допустимы, то записывает их внутрь класса. Геттер же возвращает значение внутренней переменной класса. Так внутренние данные класса надёжно защищены от случайного изменения.

Подробнее о геттерах и сеттерах в языке Java:

https://tprg.ru/YAKv

#java
Установка Android Studio и создание проекта

Если вы решили разрабатывать Android-приложения, то среда разработки Android Studio — ваш лучший друг. А друзьям важно взаимопонимание.

Поэтому держите гайд, как установить Android Studio (да, есть подводные камни) и настроить свой первый проект:

https://youtu.be/t6wO0jLlKdY
Было ли у вас подобное?
Подборка сред разработки и редакторов кода для Python

Чтобы быстро писать код и не отвлекаться на рутину, Python-разработчику нужен мощный инструмент — среда разработки или редактор кода.

В статье разобраны преимущества и недостатки популярных IDE и редакторов кода. Найдите себе идеальный инструмент по удобству и функциональности:

https://tprg.ru/mkG0

#python