Точка входа в программирование
20.2K subscribers
1.26K photos
218 videos
2 files
2.78K links
Фундаментальные знания по основам программирования

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Что такое задача коммивояжёра?

В математике и программировании задача коммивояжёра является классической. Суть её проста:

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

С малым количеством городов задача кажется простой, но её сложность растёт быстрыми темпами при увеличении числа городов. Разбираемся, почему так:

https://telegra.ph/CHto-takoe-zadacha-kommivoyazhyora-03-31

#алгоритмы
Теория вероятностей для самых маленьких

Чтобы попасть в Data Science или стать специалистом по машинному обучению, необходимо хорошо знать математическую статистику. А начать стоит с основ теории вероятности:

https://tprg.ru/gWC4

#data_science #математика
10 шпаргалок для веб-разработчика

В шпаргалках собрана основная информация по HTML, CSS, JavaScript, PHP, Django и Spring Boot. Всё необходимое в одном месте — то, что нужно для новичков:

https://tprg.ru/mlnJ

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

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

https://tprg.ru/OwCm

#книги
Forwarded from Типичный программист
Начинаем розыгрыш подарков за игру в «Быки и Коровы»!

Правила просты:
1. Нужно зайти в нашего бота и просто играть — против бота, против друзей, против соперников в онлайне (если коротко — вам нужно отгадать загаданное ботом число с помощью его подсказок, подробные правила — в боте).
2. За игры вам будут начисляться очки.
3. Спустя неделю мы подведём итоги розыгрыша и наградим лучших игроков.

Что за призы?
1. Игрок, который займёт 1 место, получит один из двух наборов мыши и клавиатуры на выбор — Microsoft Wireless Desktop 900 или Bloody B2100.
2. 10 следующих за ним игроков получат мерч от Tproger — настенные календари, майки, карты для planning poker, наклейки.
3. А каждому, кто одержит хотя бы одну победу в онлайн-режиме, мы отправим электронную версию нашего фирменного календаря.

Заходите в бота и начинайте зарабатывать очки: t.iss.one/tproger_official_bot?start=bcgame
Что такое лямбда-выражения: объяснение на примере Java

Видели когда-нибудь подобный пример?

StringConcat s = (str1, str2) -> str1 + str2;

Это лямбда-выражение или анонимная функция. В данном случае она объединяет две строки.

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

https://tprg.ru/lEJB

#java
Учимся печатать вслепую

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

Обучиться технике можно на сервисе Klavarog. На нём есть упражнения не только по русской и английской раскладке, но и по языкам программирования. Например, попробуйте быстро напечатать код на Python:

https://klava.org/delta/#eng_code_python

#советы
Видеокурс по основам CSS

Язык разметки CSS используется для оформления внешнего вида веб-страницы. С помощью CSS можно задать границы и скругления, тени, градиенты, фильтры, трансформации, анимации, плавные переходы и т.д.

О том, как работать с CSS, объясняется в курсе CSS Basics.

Первый урок: https://youtu.be/qxAnaoPI8cE

Плейлист курса: https://tprg.ru/hETF

#веб #фронтенд
Тест: что реально, а что создала нейросеть?

Уверены, что можете найти среди изображений те, которые сгенерировала нейросеть? Попробуйте свои силы в нашем тесте:

https://tprg.ru/R7I2
Docker для начинающих за 200 секунд

Если программу нужно запустить на разных системах, то в конкретной системе могут отсутствовать необходимые библиотеки. Решить проблему поможет упаковка программы со всей периферией из библиотек в контейнер, управлением которого и занимается Docker.

Подробнее о Docker смотрите в ролике: https://youtu.be/HqhgsmThmwA

Или его текстовой версии: https://tprg.ru/fQxK
Интерфейсы в Java: объяснение простым языком

В Java интерфейсы используются для создания абстракции, которую затем реализуют классы.

Например, нам нужно нарисовать фигуру. В интерфейсе будут определены методы draw(), рисующий фигуру, и getArea(), возвращающий площадь фигуры. А классы уже реализуют этот интерфейс для конкретных фигур, например круга и прямоугольника.

Подробнее об интерфейсах:

https://tprg.ru/dNoz

#java
Состояние гонки (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 может каждый.