Точка входа в программирование
20.6K subscribers
1.14K photos
203 videos
2 files
2.67K links
Фундаментальные знания по основам программирования

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Задача: ищем кота в коробках

Кот прячется в одной из 5 коробок. Коробки пронумерованы от 1 до 5 и расположены в ряд по порядку.

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

Как нужно играть в эту игру, чтобы вычислить коробку с котом?

Оставляйте свои ответы в комментариях, решение опубликуем через 2 часа.

#задачи
Ответ на задачу про кота в коробках

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

Предположим, что кот начал с чётной коробки (№2 или №4):

1. В первый день проверяем коробку №2. Если нашли кота — выиграли. Если нет — кот прыгнул в коробку №4. Следовательно, на следующий день кот прыгнет в коробку №3 или №5.
2. Во второй день проверяем коробку №3. Если нашли кота — победа. В противном случае кот находится в коробке №5 и сможет перепрыгнуть только в коробку №4.
3. На следующий день проверяем коробку №4 — кот должен быть в ней.

Теперь предположим, что кот начал с нечётной коробки (№1, №3 или №5). Следуем той же стратегии до четвёртого дня, когда кот окажется в коробке №2 или №4:

1. В первый день – кот в коробке №1, №3 или №5.
2. Во второй день – кот в коробке №2 или №4.
3. В третий день – кот снова в нечётной коробке.

Следовательно, в 4-й день кот будет во 2-й или 4-й коробке.

Ситуация аналогична предыдущему случаю. Мы можем проверять коробки в порядке «2, 3 и 4» и так найти кота.

Итоговая последовательность: 2, 3, 4, 2, 3, 4
Другой вариант: 2, 3, 4, 4, 3, 2.
Основы криптографии: от математики до физики

Криптография изучает шифрование. О том, какие шифры бывают и какие из них используются в современных программах, читайте в статье:

https://tprg.ru/D8cw

#математика
Делаем игру с динозавриком из Chrome на JavaScript

Наверняка вы сталкивались в Chrome с динозавром, когда пропадала связь с Интернетом. В качестве упражнения предлагаем написать свою реализацию этой игры на JavaScript, CSS и HTML.

Как это сделать, пошагово объясняется в видео:

https://youtu.be/Av53VJI-UiE

#js #веб
Я изучаю программирование по графику 5/2:

5 строчек пишу и 2 часа отдыхаю.
Хочу стать айтишником. С чего начать?

Если вы только решили войти в IT, то эта статья поможет вам разобраться:

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

Статья: https://tprg.ru/b4vu

#советы
Что почитать: «Карьера программиста» Г. Макдауэлла

Чтобы успешно пройти собеседование в крупную IT-компанию, недостаточно владеть технологиями, перечисленными в описании вакансии.

Книга «Карьера программиста» помогает составить резюме, которое не пропустит рекрутёр, ознакомиться с процедурами прохождения собеседования, а также подготовиться к вопросам и задачам.

Обзор на книгу: https://tprg.ru/TSQK

P.S. Перед собеседованием в определённую компанию будет не лишним пообщаться с её сотрудниками, чтобы узнать больше про работу в компанию и процедуры найма.

#книги
This media is not supported in your browser
VIEW IN TELEGRAM
Нет, это не кадры из голливудского фильма. Один разработчик всего лишь сделал красивую анимацию алгоритма шифрования SHA-256 в терминале.

Подробнее о том, как это работает: https://github.com/in3rsha/sha256-animation
В чём минусы профессии программиста?

Быть программистом — это здорово. Однако как у медали есть две стороны, так и у профессии программиста есть недостатки, которые, на первый взгляд, неочевидны.

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

https://tprg.ru/aFgu

#советы
Надо было копировать код со StackOverflow
Для чего хорош Python?

Язык Python достаточно лёгок в освоении и имеет большое сообщество. Поэтому язык нашел применение во множестве областей. Где именно — читайте в статье:

https://tprg.ru/zuoQ

#python
Задача про минимальное количество самолётов

На удалённом острове находится аэропорт. Этот аэропорт является базой для неограниченного количества одинаковых самолётов.

Топливная ёмкость каждого самолёта позволяет облететь ровно 1/2 земного шара вдоль большого круга. Самолёты имеют возможность дозаправки в воздухе без потери скорости и горючего. Хотя количество топлива тоже не ограничено, единственным его источником является этот остров.

Какое минимальное количество самолётов нужно, чтобы облететь земной шар? При этом:

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

Решение задачи опубликуем через 2 часа.

#задачи
Какое минимальное количество самолётов нужно, чтобы облететь земной шар?
Anonymous Quiz
28%
2
35%
3
23%
4
13%
5
Решение задачи про минимальное количество самолётов

Представим 3 самолёта (A, B и C). А собирается облететь вокруг Земли. Все три самолёта стартуют в одно время и в одном направлении. После 1/6 пути В передает 1/3 топлива С и возвращается домой, где заправляется и снова взлетает следом за А и С.

С продолжает лететь рядом с А, пока они не пройдут 1/4 всей дистанции. В этой точке С заправляет А до полного бака, так что А теперь может долететь до 3/4 окружности Земли. У С теперь осталось лишь 1/3 своего бака, и этого недостаточно, чтобы вернуться на базу. Но В будет в нужной точке для дозаправки C, и оба вспомогательных самолета смогут безопасно долететь до базы.

Таким же образом полностью заправленные В и С вылетают навстречу А. В снова дозаправляет С и возвращается на базу, чтобы пополнить бак. С встречает А в точке, когда А пролетел 3/4 дистанции.

Все три самолёта долетят до аэропорта, если дозаправка будет проводиться аналогично первой части полёта.
Онлайн-учебник по JavaScript

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

Весь материал разделён на 3 условные части:

1. Язык программирования JavaScript (упор делается только на сам язык).
2. Браузер: документ, события, интерфейсы (здесь изучается работа со страницей).
3. Полезные статьи.

Кроме того, на сайте есть специальные тесты, в которых вы можете проверить себя.

Ссылка: learn.javascript.ru

#js
Как одной формулой посчитать количество дней в месяце по его номеру?

Если посмотреть на количество дней в каждом месяце, то никакой закономерности поначалу найти не удаётся. Однако представим задачу как функцию f(x), где x — номер месяца, то есть функция получает номер месяца (от 1 до 12) и выдаёт количество дней в нём (високосные года в расчёт не берём).

Как можно решить:

https://tprg.ru/MZJ2

#задачи
А за занавеской скрывается JVM
Шпаргалка по Bash

Оболочка Bash принимает команды пользователя из терминала и передаёт их операционной системе на базе Linux.

С основными командами для работы с файлами, сетью и системой вы можете ознакомиться в статье:

https://tprg.ru/EftW

#linux
Шаблоны проектирования на Java

Шаблоны проектирования (design patterns) представляют собой некоторые правила, установленные сообществом программистов. Они помогают решить общие проблемы при проектировании и разработке программ.

На GitHub есть репозиторий, в котором собрано множество design patterns, реализованных на языке Java. К каждому шаблону есть описание, а сам код хорошо прокомментирован.

Если вы ещё полноценно не освоили Java, добавьте страницу в закладки — пригодится:

https://github.com/iluwatar/java-design-patterns

#java #паттерны #алгоритмы
Веб-разработка для начинающих: бесплатный видеокурс, который поможет оценить свои силы

Если вы не можете определиться с тем, стоит ли изучать фронтенд-разработку, обратите внимание на видеокурс по основам HTML, CSS и JavaScript. Темы курса объясняются на реальных примерах кода, поэтому вы получите примерное представление, с чем сталкивается в работе фронтенд-разработчик.

Весь курс выполнен в формате большого 11-часового видео. В описании к видео есть все необходимые таймкоды:

https://youtu.be/Xm4BObh4MhI

#веб #js
Обязательно ли поступать в институт, чтобы сделать себе карьеру в программировании? Оставляйте ваши мнения в комментариях.