Точка входа в программирование
21.3K subscribers
946 photos
172 videos
1 file
2.49K links
Фундаментальные знания по основам программирования

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
​​«Каждому разработчику нужно знать»

Так называется репозиторий, в котором собрана теоретическая база, необходимая разработчику (по мнению автора). В подборке действительно можно найти много полезного: дорожные карты, курсы, статьи и видео по разным аспектам разработки. А также по SEO, UX, карьере и многому другому.

В общем, лишним в ваших сохранёнках точно не будет этот репозиторий.

#репозиторий #general #en
Моё кунг-фу лучше твоего кунг-фу: ключевые парадигмы программирования

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

Императивное программирование

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

Основные элементы: переменные, циклы, условия.
Примеры: for циклы, if-else конструкции.

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

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

Основные элементы: выражения, правила.
Примеры: SQL, регулярные выражения.

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

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

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

Объектно-ориентированное программирование (ООП)

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

Основные элементы: классы, объекты, наследование, инкапсуляция, полиморфизм.
Примеры: создание класса Car, экземпляры my_car, your_car.

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


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

Основные элементы: факты, правила, запросы.
Примеры: базовые логические операции и запросы в Prolog.

Реактивное программирование

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

Основные элементы: абстракции потоков данных, операторы трансформации.
Примеры: обработка событий пользовательского интерфейса, стриминг данных.

Компонентно-ориентированное программирование

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

Основные элементы: компоненты, интерфейсы.
Примеры: создание виджетов для пользовательского интерфейса.

Заключение
Каждая парадигма программирования имеет свои сильные стороны и подходящие случаи использования. Зачастую в реальных проектах используются сразу несколько парадигм, чтобы использовать их преимущества в разных частях программы. Понимание различных парадигм помогает разработчикам выбирать наиболее подходящие инструменты и методы для решения конкретных задач. Ещё более подробно можно почитать в статье: https://doka.guide/tools/programming-paradigms/

#советы #основы
Подборка курсов и видео для изучения Kotlin

Не знаете с чего начать для изучения этого языка? Благодаря этой подборке вы сможете не просто начать учить Kotlin, но и подобрать для себя наилучший вариант с точки зрения подачи, детализации учебного плана и способа обучения:

https://habr.com/ru/companies/timeweb/articles/586804/

#подборка #kotlin
15 сайтов, экономящих время разработчика

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

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

https://nuancesprog.ru/p/21287/
Как в Kotlin объявить неизменяемую переменную?
Anonymous Quiz
13%
var
59%
const
22%
val
6%
let
Большой курс по разработке ботов для Telegram на Python с AIOGRAM

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

Здесь вы найдёте 12 видеоуроков, которые дадут вам все необходимые знания, чтобы начать заниматься разработкой ботов:

https://www.youtube.com/playlist?list=PLV0FNhq3XMOJ31X9eBWLIZJ4OVjBwb-KM

#python #telegram #видео #курс
И сколько фич так добавлено?

#кек
Zed: Для тех кому надоел VS Code

Новый опенсорсный редактор кода Zed, работающий на Rust раньше был доступен только на MacOS, но с недавнего времени работает и на Linux.

Zed разработали создатели Atom и Tree-sitter. Ключевой особенностью являются легковесность, производительность и открытость кода. Если хотите протестировать, то переходите по ссылке и скачивайте свою версию: https://zed.dev/

#инструменты #ide
Простыми словами: Основные концепции ООП

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

Для начала разберёмся с тем, что же такое объекты, а затем пройдёмся по основным концепциям — наследованию, абстракции, инкапсуляции и полиморфизму:

Классы и объекты

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

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

class Кот:
def __init__(self, имя):
self.имя = имя

def мяукать(self):
print(f"{self.имя} говорит: Мяу!")

мой_кот = Кот("Мурзик")
мой_кот.мяукать()


1. Наследование

Наследование позволяет создавать новый класс на основе существующего. Это как брать основу от одного рецепта и добавлять свои изменения.

class Животное:
def дышать(self):
print("Дышу")

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

кот = Кот()
кот.дышать()
кот.мяукать()


2. Абстракция

Абстракция — это концепция, позволяющая скрыть сложность системы, выделяя только ключевые аспекты и упрощая взаимодействие с объектами. Это как пользоваться телевизором: вы знаете, какие кнопки нажимать, но не обязаны понимать, как работает вся электроника внутри.

3. Инкапсуляция

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

class Кот:
def __init__(self, имя):
self.__имя = имя # сокрыто (private)

def получить_имя(self):
return self.__имя

def мяукать(self):
print(f"{self.__имя} говорит: Мяу!")

кот = Кот("Мурзик")
print(кот.получить_имя())
кот.мяукать()


4. Полиморфизм

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

class Животное:
def издать_звук(self):
pass

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

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

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

for животное in животные:
животное.издать_звук()


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

Если вам понравился пост, поставьте ❤️ и мы обязательно расскажем о чём-то ещё.

#простымисловами #ооп
Команда Tproger (это мы) ищет менеджера по продажам (это вы)

Нужно будет всё то, что обычно делают «продажники»: искать клиентов, вести коммерческие переговоры и восстанавливать коннект с нашими старыми клиентами. Мы предлагаем хорошую зарплату, гибрид и причастность к крутому медиа о программировании. 

Отклик оставляйте тут: https://tprg.ru/l1rP

#вакансии #работа
8 советов работы с JavaScript, которые повысят ценность вашего кода

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

Об этих моментах в статье:

https://nuancesprog.ru/p/15712/

#советы #javascript
Как произносят С++ на разных уровнях

#кек
Варианты ответ, как обычно, ниже.

#викторина #java
Какой из следующих классов Java эффективно работает с изменяемыми строками и обеспечивает потокобезопасность?
Anonymous Quiz
12%
String
42%
StringBuilder
35%
StringBuffer
11%
CharSequence
Forwarded from Метод утёнка
Не существует не решаемых задач. Нужно только подобрать правильный способ решения. Ведь иногда нужно просто перевести дух и позволить себе отдохнуть, чтобы всё разрешилось как будто само собой.

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

#советы