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

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Подборка тренажёров для прокачки навыков вёрстки

Что делает из новичка крутого верстальщика? Правильно, практика, практика и ещё раз практика.

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

#подборка #вёрстка #веб
5 признаков неопытного разработчика: как избежать типичных ошибок и ускорить профессиональный рост

Начинающие разработчики часто сталкиваются с рядом типичных проблем, которые мешают им быстро расти профессионально.

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

#советы
Дорожная карта для фронтенд-разработчиков

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

#дорожнаякарта #веб #фронтенд
Как работает сетевой код в многопользовательских играх

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

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

#gamedev
Media is too big
VIEW IN TELEGRAM
Плохие практики ООП в Python, которых нужно избегать

В этом видео рассматриваются распространенные ошибках в ООП на Python, которые часто совершают разработчики. Вы узнаете:

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

#видео #ооп
Как разработать и выпустить продукт: инструкция от проджектов и руководителей

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

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

#советы #гайд
Forwarded from Метод утёнка
Media is too big
VIEW IN TELEGRAM
О сетях для несетевиков

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

Здесь и про OSI/ISO, TCP/IP, порты, ip-адреса, mac-адреса и NAT. Конечно же, шутка про TCP и UDP.

#видео #сети
Полное практическое руководство по Docker: с нуля до кластера на AWS

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

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

#docker #aws
Java для начинающих

Нашёл для вас небольшой плейлист из 18 уроков по Java. С помощью этих видео, вы сможете освоить программирование на java с нуля до Junior Java Developer. Также здесь множество полезной информации для подготовки к собеседованию.

Смотрим здесь.

#курс #java #видео
Media is too big
VIEW IN TELEGRAM
Проект по блокчейну для начинающих С++ разработчиков

Это увлекательное путешествие в мир программирования и криптографии, где сложные концепции преподносят простым и понятным языком.

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

#видео #блокчейн #cpp
Методы сжатия данных: алгоритмы и инструменты

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

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

Кстати, на идее сжатия данных даже построен сюжет сериала «Кремниевая долина». Рекомендую к просмотру, если ещё не смотрели.
Простыми словами: Полиморфизм в ООП

Вот мы и добрались до заключительной парадигмы в ООП. Напомню, что наследование, абстракцию и инкапсуляцию можно прочитать выше или по тегу #простымисловами

Давайте же разберём подробно концепцию полиморфизма в объектно-ориентированном программировании (ООП) с примерами кода.

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

Зачем нужен полиморфизм?

1. Унификация интерфейсов позволяет использовать один интерфейс для взаимодействия с различными типами объектов.
2. Гибкость и расширяемость упрощает добавление нового функционала, так как новые классы могут использовать существующие интерфейсы.
3. Упрощение кода позволяет писать более общий и универсальный код.

Как это выглядит в коде?

В Python полиморфизм часто достигается через методические перегрузки и наследование:
class Животное:
def издать_звук(self):
raise NotImplementedError("Этот метод должен быть реализован в подклассе")

class Кот(Животное):
def издать_звук(self):
print("Мяу!")

class Собака(Животное):
def издать_звук(self):
print("Гав!")

животные = [Кот(), Собака()]

for животное in животные:
животное.издать_звук() # Output: Мяу! Гав!


В этом примере метод издать_звук вызывается для объектов различных классов (Кот и Собака), и каждый объект реализует этот метод по-своему.

В Java полиморфизм достигается через интерфейсы и абстрактные классы:
abstract class Животное {
abstract void издатьЗвук();
}

class Кот extends Животное {
@Override
void издатьЗвук() {
System.out.println("Мяу!");
}
}

class Собака extends Животное {
@Override
void издатьЗвук() {
System.out.println("Гав!");
}
}

public class Main {
public static void main(String[] args) {
Животное[] животные = { new Кот(), new Собака() };

for (Животное животное : животные) {
животное.издатьЗвук(); // Output: Мяу! Гав!
}
}
}


Здесь абстрактный метод издатьЗвук реализуется в классах Кот и Собака, и тот же метод вызывает различные реализации в зависимости от объекта.

Давайте теперь посмотрим примеры кейсов, где может быть актуален полиморфизм:

1. Фигуры

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

class Фигура:
def площадь(self):
raise NotImplementedError("Этот метод должен быть реализован в подклассе")

class Круг(Фигура):
def __init__(self, радиус):
self.радиус = радиус

def площадь(self):
return 3.14159 * self.радиус ** 2

class Прямоугольник(Фигура):
def __init__(self, ширина, высота):
self.ширина = ширина
self.высота = высота

def площадь(self):
return self.ширина * self.высота

фигуры = [Круг(5), Прямоугольник(3, 4)]

for фигура in фигуры:
print(f"Площадь: {фигура.площадь()}")


2. Платежные системы

Используем полиморфизм для различных способов проведения платежей.

class Платеж(ABC):
@abstractmethod
def провести_платеж(self, сумма):
pass

class КредитнаяКарта(Платеж):
def провести_платеж(self, сумма):
print(f"Платеж проведён на сумму {сумма} с кредитной карты")

class PayPal(Платеж):
def провести_платеж(self, сумма):
print(f"Платеж проведён на сумму {сумма} через PayPal")

платежи = [КредитнаяКарта(), PayPal()]
for платеж in платежи:
платеж.провести_платеж(100)


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

#простымисловами #ооп #полиморфизм
Его боялись даже тестировщики
Знакомимся с Data Science и машинным обучением

Делать мы это будем с помощью бесплатного курса, который включает 30 уроков, 54 теста и 21 задачу. В рамках курса вы изучите основные теоретические понятия, а также познакомитесь с библиотеками Pandas и Scikit-learn — наиболее популярными инструменатами для анализа данных и машинного обучения, используя язык программирования Python.

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

#курс #datascience #ml
Media is too big
VIEW IN TELEGRAM
Архитектура ПО для маленьких и... не сообразительных

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

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

#видео
Простыми словами: Зерокодинг

Многие хотят в IT, но не всех привлекает написание кода. Таким людям можно попробовать себя в зерокодинге.

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

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

Сегодня профессии, связанные с зерокодингом, становятся всё более популярными. Зерокодеры работают с различными платформами: создают сайты на Tilda и Webflow, сборки опросов на Typeform, и даже приложения на Glide или Adalo. Их задача — понять, какие задачи нужно решить, и выбрать подходящий инструмент для этого.

Давайте немного поговорим о том, сколько такие специалисты могут зарабатывать.

Доход зерокодеров в России может варьироваться в зависимости от их навыков и опыта. В среднем, как показывает практика, начинающие могут зарабатывать от 50 000 до 80 000 рублей в месяц. Более опытные специалисты, которые могут интегрировать сложные составляющие и автоматизировать бизнес-процессы, могут получать от 100 000 рублей и выше.

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

Плюсы:

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

Минусы:

— ограниченная гибкость. Возможности платформ ограничены их функциями и шаблонами;
— сложности с масштабированием. Большие и сложные проекты могут потребовать перехода на полноценное программирование;
— зависимость от платформы. Если платформа изменяет условия или прекращает работу, можно потерять проект или данные.

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

А вы хотели бы попробовать себя в этом?

🗿 — только код, только хардкор
❤️ — выглядит интересно и не так сложно, как обычное программирование. Я бы попробовал
🤔 — а можно просто денег и не работать
?

#простымисловами #зерокодинг
8 неэффективных практик JavaScript, которых лучше избегать

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

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

#javascript #веб