prog_point | Unsorted

Telegram-канал prog_point - Точка входа в программирование

21410

Фундаментальные знания по основам программирования Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/zrgj

Subscribe to a channel

Точка входа в программирование

Простыми словами: Какие стили программирования существуют

Кроме объектно-ориентированного программирования (ООП), существует несколько других видов программирования, каждое из которых применяется в различных областях и имеет свои особенности.

1. Процедурное программирование

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

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

Минусы:
— сложность управления большими проектами;
— меньшая гибкость и повторное использование кода по сравнению с ООП.

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

2. Функциональное программирование

Оно используется для работы с вычислениями, которые можно описать как набор математических функций. В таком стиле часто пишут на Haskell, Lisp, Erlang, Scala, и даже JavaScript.

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

Минусы:
— меньшая распространённость и сложность освоения для новичков;
— ограниченность инструментов и библиотек в сравнении с ООП.

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

3. Логическое программирование

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

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

Минусы:
— сложность понимания и отладки;
— ограниченные области практического применения.

Такой стиль можно встретить при программировании искусственного интеллекта, а также при автоматическом доказательстве теорем.

4. Декларативное программирование

Используется для описания желаемого результата, а не шага к его достижению. Используется в SQL (для запросов к базам данных), HTML (для веб-разметки), XSLT (для трансформации XML).

Плюсы:
— ясность и простота синтаксиса;
— фокус на описании задачи, а не способе её решения.

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

Применение: Встроенные системы управления данными, веб-разработка, трансформация данных.

5. Мультипарадигменное программирование

Этот стиль предполагает объединение нескольких парадигм программирования (например, ООП и функционального программирования) в одном языке или приложении. Может быть реализовано на многих языках, включая Python, JavaScript, Kotlin, Scala, Swift и т.д.

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

Минусы:
— потенциальная сложность освоения всего спектра возможностей языка;
— возможность несогласованных паттернов кода.

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

Какая парадигма сейчас более популярна?

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

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

🤯 — не знал, что их так много
🤔 — а можно теперь подробнее про каждую?
❤️ — зачем что-то придумывать, если есть ООП?


#простымисловами

Читать полностью…

Точка входа в программирование

Как найти нужный алгоритм для вашей задачи

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

На сайте the-algorithms.com собрана огромная коллекция алгоритмов с открытым исходным кодом. Это крупнейшая библиотека алгоритмов, которая предлагают готовый код для самых разных языков программирования по различным категориям: от сортировки до шифрования.

Сохраняйте пост в избранное, чтобы не забыть.

#инструменты #алгоритмы

Читать полностью…

Точка входа в программирование

Самая странная шпаргалка по Git

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

Колоду можно приобрести за 25 евро на Kickstarter.

Как вам идея?

❤️ — хочу на Новый Год
🗿 — если карты, то с голыми женщинами

#кек

Читать полностью…

Точка входа в программирование

Yandex Scale 2024 уже в самом разгаре, а вы всё никак не подключаетесь

Прямо сейчас идёт прямая трансляция конференции для тех, кто создаёт цифровые решения.

Вас ждут 5 треков: Infra & Devtools, Data Platform, Security, Serverless и ML & AI. На них вы можете узнать про AI-инструменты для разработчиков, как создавать AI-ассистентов, что такое хаос-инжиниринг и многое-многое другое.

Полная программа и трансляция ждут вас по ссылке: https://tprg.ru/ihOr

Это #партнёрский пост

Читать полностью…

Точка входа в программирование

Решение головоломки из университетского квеста с помощью Python

Black and White — это головоломка Мельбурнского университета, где вам необходимо распределить 25 диаграмм по цветам, соблюдая особые условия.

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

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

#задача #python

Читать полностью…

Точка входа в программирование

Инструмент для решения главной проблемы новичков в IT

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

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

Как вам? Кажется, достойно ❤️ и сохранения в избранном.

#инструменты #roadmap

Читать полностью…

Точка входа в программирование

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

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

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

#javascript #веб

Читать полностью…

Точка входа в программирование

Архитектура ПО для маленьких и... не сообразительных

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

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

#видео

Читать полностью…

Точка входа в программирование

Его боялись даже тестировщики

Читать полностью…

Точка входа в программирование

Простыми словами: Полиморфизм в ООП

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

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

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

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

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)


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

#простымисловами #ооп #полиморфизм

Читать полностью…

Точка входа в программирование

Проект по блокчейну для начинающих С++ разработчиков

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

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

#видео #блокчейн #cpp

Читать полностью…

Точка входа в программирование

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

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

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

#docker #aws

Читать полностью…

Точка входа в программирование

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

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

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

#советы #гайд

Читать полностью…

Точка входа в программирование

Плохие практики ООП в Python, которых нужно избегать

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

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

#видео #ооп

Читать полностью…

Точка входа в программирование

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

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

#дорожнаякарта #веб #фронтенд

Читать полностью…

Точка входа в программирование

Object.freeze и Object.seal в JavaScript

При работе с объектами важно сохранять полный контроль над ними, ограничивая от ненужного и допуская необходимое. В JavaScript для этого есть два метода: Object.freeze предотвращает любые изменения объекта, а Object.seal позволяет вам запечатать объект, что предотвращает добавление или удаление свойств, но не мешает изменению значений существующих свойств.

Подробнее можно узнать в этой статье. После неё вы будете лучше понимать, где это можно использовать, а главное, зачем.

#javascript

Читать полностью…

Точка входа в программирование

Менеджер продукта: какие навыки нужны «многорукому Шиве»

Ни один продукт сегодня не может обойтись без продакт-менеджера. Он объединяет в себе сразу несколько функций: взаимодействует с заказчиком и собирает обратную связь от пользователей, определяет развитие продукта и порядок внедрения новых фич, отвечает за экономические показатели, который отвечает за его развитие. И это не всё.

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

Читать полностью…

Точка входа в программирование

​​Гарвардский курс по веб-разработке на Python и JS

Курс HarvardX: CS50's Web Programming продолжает легендарный CS50, фокусируясь на разработке веб-приложений с Python, JavaScript и SQL. Тут разбирают дизайн БД, масштабируемость, безопасность и UI.

В процессе обучения есть и практические проекты, среди которых создание API, интерактивных интерфейсов и использование облачных сервисов GitHub и Heroku.

Одним словом — годнота

#курс #web #js #python #en

Читать полностью…

Точка входа в программирование

Графы в Swift: Поиск в Глубину и Поиск в Ширину

Граф — это математическая структура, состоящая из множества вершин (или узлов) и множества рёбер (или граней), которые соединяют пары вершин. Графы используются для моделирования отношений и связей между объектами.

В этой статье вы сможете познакомиться с графами, методами поиска в ширину (BFS) и поиска в глубину (DFS). Причём с упором на язык Swift.

#swift

Читать полностью…

Точка входа в программирование

Главное верьте в себя и свой код

Читать полностью…

Точка входа в программирование

Как создать настольное приложение с помощью Electron. Руководство для начинающих

Эта статья в первую очередь будет полезна веб-разработчикам. Electron позволяет превращать проекты, написанные с помощью HTML, CSS и JavaScript в полноценные приложения для разных платформ. Многие такие приложения вы знаете: Skype, Discord, ваш любимый VS Code и так далее.

Как создать такое же приложение, вы можете узнать в этом руководстве.

#javascript #electron #руководство

Читать полностью…

Точка входа в программирование

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

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

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

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

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

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

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

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

Плюсы:

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

Минусы:

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

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

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

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

#простымисловами #зерокодинг

Читать полностью…

Точка входа в программирование

Знакомимся с Data Science и машинным обучением

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

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

#курс #datascience #ml

Читать полностью…

Точка входа в программирование

Варианты ответа ниже.

#викторина #ооп

Читать полностью…

Точка входа в программирование

Методы сжатия данных: алгоритмы и инструменты

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

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

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

Читать полностью…

Точка входа в программирование

Java для начинающих

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

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

#курс #java #видео

Читать полностью…

Точка входа в программирование

О сетях для несетевиков

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

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

#видео #сети

Читать полностью…

Точка входа в программирование

Как прототипное наследование может улучшить ваши навыки разработки на JavaScript?

Узнаете на открытом вебинаре 18 сентября в 20:00 мск, где вместе с экспертом разберёте:

— что такое прототипное наследование в JavaScript и как оно работает;
— как прототипное наследование помогает при разработке программ;
— как лучше понять объектную модель JavaScript;
— как писать ООП код с экономией памяти.

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

Встречаемся в преддверии старта курса «JavaScript Developer. Basic». Все участники вебинара получат специальную цену на обучение! 

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/Tiey/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Точка входа в программирование

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

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

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

#gamedev

Читать полностью…

Точка входа в программирование

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

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

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

#советы

Читать полностью…
Subscribe to a channel