Точка входа в программирование
20.4K subscribers
1.2K photos
208 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
Что послушать: подкаст о том, как учить языки программирования

Гостем 200 выпуска подкаста Podlodka стал Виталий Брагилевский, который за свою карьеру преподавал суммарно 20 языков. В подкасте он обсудил различные языки программирования, их использование и популярность:

tprg.ru/Dwsy

#подкасты
Прикладные языки приходят и уходят, а Ассемблер вечен
Подборка 11 инструментов, облегчающих разработку на Java

Для языка Java существует множество удобных и полезных инструментов, которые упрощают тестирование и ускоряют разработку проектов.

В подборке собраны наиболее популярные инструменты для Java среди систем сборки, сред разработки и фреймворков :

tprg.ru/K6Vh

#java
Что такое язык Go: объяснение за 5 минут

Язык Go используется в разработке бэкенда веб-приложений и ценится за его минималистичность и безопасность.

Если вы решили стать бэкенд-разработчиком, но не совсем понимаете, в чём Go превосходит Java и C++ для бэкенда, то рекомендуем посмотреть короткое видео. В нём нет разбора синтаксиса, но зато хорошо объяснены ключевые концепции языка, которые могут вдохновить на знакомство с этим языком:

youtu.be/wBxOKQpdESg

#go #бэкенд
Всё о сортировке в Python: исчерпывающее руководство

Как работает встроенная сортировка в Python? В статье разобраны основные возможности сортировки через sorted() для итерируемых объектов и list.sort() для списков:

tprg.ru/Kqta

#python #сортировки
Сервисы Windows смеются над жалкими попытками программ получить немного оперативной памяти
Как найти сумму и количество чётных и нечётных чисел в диапазоне на C#

Если вы только начали изучать C#, то решение этой задачи поможет разобраться, как работают циклы и конструкции if-else.

Разбор задачи на YouTube:

youtu.be/bJ4DtsojdrI

#csharp
История входа в IT: из инженера-химика в Java-разработчики

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

Почитайте его историю тернистого пути в Java-разработчики:

tprg.ru/Kjuk

#советы
Логические задачки, мемы и не только в нашем боте

Мы обновили раздел развлечений бота и добавили рассылку случайных мемов и задачек с нашего сайта. И теперь вы можете получить их прямо в Telegram-чате. Удобно, не правда ли?

У бота есть ещё несколько крутых фишек, попробуйте:

t.iss.one/tproger_official_bot?start=entertainments
Динамическое выделение памяти в C++

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

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

Подробнее о динамическом выделении памяти:

tprg.ru/U9FV

#cpp
Задача про деление бактерий

Раз мы коснулись сегодня темы перехода из химиков в программисты, то предлагаем решить тематическую задачу.

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

Известно, что 1 бактерия делится на 2 бактерии один раз в конце каждой секунды.

Через сколько секунд заполнится пробирка, если в неё положить 3 бактерии?

Ответ опубликуем через 2 часа.

#задачи
Через сколько секунд заполнится пробирка, если в неё положить 3 бактерии?
Anonymous Quiz
37%
30
20%
45
20%
58
22%
59
Решение задачи про деление бактерий

Задачу удобно решать, если представить её как битовую маску std::uint64_t, ведь каждая бактерия удваивается в конце каждой секунды.

Рассмотрим заполнение пробирки одной бактерией. В первую секунду заполнен ровно 1 младший бит (нулевой бит) 000...0001. Через 60 секунд у нас будет заполнен 60-й бит, то есть 60-й бит является условием заполнения колбы.

Если положить три бактерии, то битовая маска примет вид 000...0011 (двоичное представление числа 3 — 11). Через 59 секунд сдвигом будет заполнен 60-й бит. Однако 59-ый бит тоже будет равен 1, и часть бактерий вывалится из пробирки.

Если рассмотреть пробирку через 58 секунд, то она не заполнится до конца, поскольку будут заняты 58-й и 59-й бит.

Ответ: 59 секунд.

Мы показали решение задачи с точки зрения программиста, но её можно решить и математически через степени двойки, что, по сути, аналогично предложенному решению.

Источник
Вводный курс по машинному обучению с использованием TensorFlow

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

Для обучения моделей используется популярный фреймворк TensorFlow, поэтому перед погружением в курс следует знать основы языка Python.

Введение: youtu.be/qu_WEHvGXWk

Основы компьютерного зрения: youtu.be/cjSI3gcC2IA

Введение в свёрточные нейронные сети: youtu.be/lthIsMLaq1Q

Создание классификатора изображений: youtu.be/WzxkhTxKZcs

#ml #python #курсы
Еженедельный #чат снова открыт. Сегодня предлагаем вам обсудить, с какого языка стоит начать программировать.

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

Напишите в комментариях, согласны ли вы с тем, что C++ подойдёт в качестве первого языка. А если нет, то расскажите, с какого языка стоит начать.
Есть компромисс — перенести закрывающую скобку на следующую строчку
10 JavaScript-фреймворков, которые стоит выучить в 2021 году

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

Чтобы новички не потерялись в обилии инструментов, мы подготовили подборку наиболее актуальных JavaScript-фреймворков:

tprg.ru/9jh8

#js #веб #фронтенд
Массивы в Java: объявление, создание, инициализация и вывод

В Java синтаксис массивов в целом схож с C++, но имеет и свои «плюшки». Например, в Java есть встроенный класс Arrays, в котором присутствуют методы по сортировке, поиску элемента и приведению к строке String.

Подробнее о массивах в Java:

tprg.ru/itfP

#java
Плюсы и минусы Go, а также его использование в инфраструктуре «Вконтакте»

Недавно мы делились видео, которое поясняет основную идею языка Go (Golang).

Если вас зацепил этот язык, то посмотрите доклад о преимуществах и недостатках языка Go. Также в видео рассматривается синтаксис Go и его применение:

youtu.be/2fxNbhy2gt0

#go
7 логико-математических задач: от простого к сложному

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

tprg.ru/QkNI

#задачи