Точка входа в программирование
21.4K subscribers
905 photos
163 videos
1 file
2.45K links
Фундаментальные знания по основам программирования

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

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

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

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

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

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

Функция должна быть короткой (хотя есть и исключения). Сложно сказать о норме, но ориентироваться можно на значение не более 10-20 строк.

Функция должна выполнять чётко одну операцию.

— Правило понижения: код должен читаться сверху вниз. Если в функции А вызывается функция Б, то Б должна следовать после А.

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

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

— Касательно комментариев к функциям от Роберта Мартина: "Комментарии должны компенсировать неудачу в выражении мыслей в коде. Комментарии — признак неудачи". Чистое именование функции и её реализация избавляет разработчика от необходимости написания для неё комментария. Конечно, есть и исключения: авторские права, TODO-листы, объяснения важности или предупреждения.

#чистимкод
Какие разработчики игр зарабатывают в 2024

В прошлом году начинающий разработчик Лука выпустил Vampire Survivors. Этот простой проект всего за несколько недель обогатил его на десятки миллионов. А Among Us был небольшим экспериментом от трёх инди-разработчиков. Несмотря на провальный релиз, разработчики продолжили работу. Спустя время игру случайно заметили стримеры. В итоге разработчики заработали на ней 100 млн долларов. Такие истории вдохновляют, но одновременно и искажают представление об индустрии.

Держите статью, где Роман Сакутин, эксперт в сфере геймдева, рассказывает о том, как действительно обстоят дела в релизе игр, а в частности — в Steam. Там вы узнаете про основные причины того, почему игры не продаются, как найти аудиторию своей игры и как правильно выбирать идеи.

#gamedev
​​5 ошибок Python-разработчиков, которые выдают новичка

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

Собрали для вас самые распространенные ошибки  в Python-разработке в этой статье. Особенно полезной будет тем, кто собирает портфолио для трудоустройства или хочет получить простые, но практичные советы.

#советы #python
Углубимся в историю?

В какой последовательности появлялись следующие языки программирования?

#викторина
Регулярные выражения для начинающих

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

Например, так выглядит регулярное выражение для телефонных номеров по типу 123-456-7890:

\d{3}-\d{3}-\d{4}

где \d — символ цифры, {3} — количество повторений, - необходимый разделитель.

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

#regexp
​​Old but gold: ​Android-разработка для новичков

Добротный материал с подборкой 20+ ресурсов для старта в карьере мобильного разработчика. Подборка хоть и 2023 года, но начинающим — самое то: https://habr.com/ru/companies/yandex_praktikum/articles/738638/

#android #начинающим
Как выучить язык программирования быстрее

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

В этом видео разработчик с 20-летним стажем даёт полезные советы, которые помогут пройти путь от «чайника» до уверенного разработчика.

Если очень кратко, то:

— Помните, что каждый следующий язык учить легче. Соответственно первый — самый сложный;
— Читайте чужой исходный код;
— Не стесняйтесь спрашивать на форумах (по типу Stack Overflow);
— Попробуйте начать обучения на платформе с геймификацией;
— Не давайте волю синдрому самозванца;
— Учите алгоритмы и структуры данных;
— Не торопите себя и дайте время, чтобы всё выучить;
— Используйте отладчик.

#general #советы
6 способов войти в ИТ без высшего образования и онлайн-курсов

Если курсы или высшее образование по каким-либо причинам не подходят вам, но развиваться в IT-сфере всё равно хочется, не беда — есть много других способов влиться в эту сферу. Вот парочка из вариантов, а в этой статье ещё больше и подробней:

— Роадмапы — готовые схемы со структурированными темами в нужной последовательности. Вот сайт-агрегатор таких карт обучения.

— Стажировки — есть компании, которые готовы брать совсем начинающих разработчиков, обучать их и трудоустроивать к себе.

— Геймификация обучения — есть игры, геймплей которых заточен на изучение азов программирования. Например CodinGame, CodeHero или CodeCombat.

#general
Обучение с подкреплением (RL) – это способ в машинном обучении, при котором компьютер учится принимать решения, действуя в окружающем мире и получая за это награду. Например, ИИ может учиться играть в компьютерные игры или управлять роботом, чтобы достичь победы или других целей.

Держите подборку курсов и книг, которые помогут с нуля развиться в этой теме:
Forwarded from Нейроканал
Курсы:
Курс от Hugging Face: баланс теории и практики, вы познакомитесь с основными библиотеками, получите сертификат по окончанию и сможете пообщаться с другими участниками в Discord.

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

Курс на Coursera: даст понимание ключевых идей обучения с подкреплением. Вы сможете реализовать полноценное RL-решение и научитесь применять инструменты ИИ для решения реальных задач.

Книги: 
— «Грокаем глубокое обучение с подкреплением» Моралес Мигель;

— «Обучение с подкреплением [2-е изд.]» Ричард С. Саттон, Эндрю Дж. Барто;

— «Алгоритмы принятия решений» Кохендерфер М., Уинлер Т., Рэй К.

Дайте знать, если хотите видеть больше подобных подборок!

#rl #deeplearning
This media is not supported in your browser
VIEW IN TELEGRAM
Бинарный поиск — что за алгоритм

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

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

1. Берём центральный элемент массива и сравниваем его с искомым числом.

2. Если искомое число больше серединного элемента — значит нас интересует первая половина массива. Если меньше — вторая.

3. Повторяем п. 1 и п. 2 с выбранной половиной до тех пор, пока не дойдём до искомого элемента. Каждый раз отсеивается половина элементов.

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

На картинке разница простого и бинарного поиска.

#теория
This media is not supported in your browser
VIEW IN TELEGRAM
*Когда попросили объяснить твой код, который написал ChatGPT*
Учить Git, да так, чтоб было ещё и интересно

Да, такое возможно. Один из вариантов — Learning Git — интерактивный тренажёр. В нём вы можете с нуля изучить Git и сразу же практиковаться с визуальной демонстрацией. Благодаря этому можно будет разобраться даже в самых трудных командах, ведь всё будет отображаться в схеме.

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

#git
Интерактивный курс по SQL

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

Также каждый учащийся может предложить свои задания по SQL. Лучшие из них публикуются в отдельном модуле.

#sql
​​Тест на отличие Java и JavaScript

Из-за своих названий, сравнение JavaScript и Java стало своего рода мемом. Но по факту общее у них только название — это результат сотрудничества двух компаний: Netscape, которая занималась развитием собственного браузера Netscape Navigator, и Sun Microsystems, которая до этого разработала Java.

Но действительно ли вы можете отличить два этих языка в мелочах? Предлагаем пройти тест на отличие JS от Java. Можете скидывать тому самому «специалисту в IT».

За кого голосуете?

🍌 JavaScript
🌭 Java

#meta
Что такое TCP/IP — объясняют на пальцах

TCP/IP — это способ, с помощью которого компьютеры обмениваются информацией друг с другом в интернете. Он важен для того, чтобы данные могли безопасно и правильно передаваться. TCP/IP работает так, что данные разбиваются на маленькие кусочки (пакеты), отправляются через сеть с указанием адреса получателя, и затем собираются обратно в исходный файл или сообщение. Этот способ обмена данными является практически фундаментом работы интернета. Поэтому разработчику полезно знать, как работает этот протокол.

Держите видео, где наглядно и простыми словами разбирают принцип работы TCP/IP в деталях: рассказывают про порты, сокеты, DNS, маски сети и многое другое.

@prog_point #интернет #теория
Хватайте полезные сайты для создания резюме:

1. Novoresume — простой в использовании резюме-билдер. Шаблоны на сайте помогают создать резюме для иностранных компаний.

2. Resumake.io — на сайте можно сразу загрузить резюме в формате JSON-файла или заполнить только нужные поля, т.к. Resumake создаёт поля по шаблону автоматически.

3. Canva — бесплатный графический редактор, который подходит для создания не только презентаций или сторис, но и резюме. Если вам не хватает идей, то в каталоге можно найти более 100 вариантов шаблонов.

@prog_point #трудоустройство
Forwarded from IT Юмор
​​Я: Глянь мой Git, у меня там уйма крутых проектов!

Крутые проекты:
Курс по C# для начинающих

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

Держите отличный видео-курс, в котором обучают с нуля всем основным аспектам этого языка программирования. Курс будет полезен и тем, кто уже знаком с C# — в конце разбирают более сложные темы, по типу сборки мусора, сериализации и атрибутов.

@prog_point #csharp