Фундаментальные знания по основам программирования Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/zrgj
Частное мнение о том, как «вкатиться» в IT
Это частное мнение молодого 62-летнего программиста с опытом работы чуть менее 40 лет. В отличие от уже стандартных советов из многих статей такого рода, здесь он делится своим опытом. Возможно, кому-то это покажется устаревшим, но обязательно найдутся те, кому это мнение окажется полезным. Поэтому не ленитесь и прочитайте статью!
REST API на Java без фреймворков
REST API — это архитектурный подход, который устанавливает определенные правила для API. Он позволяет стандартизировать работу программных интерфейсов, сделать их более удобными и производительными.
Конечно, для разработки такого API есть множество готовых фреймворков и библиотек под разные языки. Но попробуйте использовать REST API с чистым Java — это потребует больше кода, чем с фреймворком, но даст глубокое понимание механики и поможет закрепить навыки.
Если решились попробовать, то эта статья вам поможет.
#java #restapi #бэкенд
Визуализация алгоритмов сортировки
Визуализатор, создан с использованием React для того, чтобы помочь понять работу основных алгоритмов сортировки.
Что он может:
— сортировать массив из любых трехзначных натуральных чисел;
— менять скорость выполнения;
— запускать, приостанавливать и сбрасывать выполнение;
— генерировать массив из случайных чисел.
Подробнее на GitHub.
Пишем простое расширение для браузера
Ещё один туториал, который поможет вам изучить новые технологии и прокачать свои навыки. На этот раз мы с вами попробуем создать простое расширение для браузера, которое будет управлять куками на сайте. Для простоты в проекте используются только ванильные технологии без сложных библиотек и фреймворков.
#туториал
As Code: очередной тренд или будущее разработки ПО?
Обычная практика в IT-командах: все решения, договоренности живут ОТДЕЛЬНО от кода — в чатах, документах, головах. Со временем происходит масштабирование и всё это превращается в такой хаос, что проще снести и написать с нуля.
Тут на помощь приходит As Code.
Это не просто методология, а философия, где все — от инфраструктуры до документации и политик безопасности — становится кодом.
Области видимости в JavaScript
Мы используем переменные, чтобы хранить в них временные значения, а потом в нужный момент получать к ним доступ. Но не все переменные в нашем коде одинаково доступны. Доступна ли переменная и как получить к ней доступ, определяет область видимости.
Область видимости — это часть программы, в которой мы можем обратиться к переменной, функции или объекту. Этой частью может быть функция, блок или вся программа в целом — то есть мы всегда находимся как минимум в одной области видимости.
А более детально узнать что это такое и на примерах рассмотреть то, как работает эта область, вы сможете в этой статье.
#javascript
Гайд: что такое хеш-таблицы
Представьте, что вам нужно мгновенно находить нужные данные среди миллионов записей — например, определять, есть ли пользователь в базе, или быстро подсчитывать количество посещений страницы. Обычный массив или список справится с этим за O(n), а хэш-таблица — за O(1) в среднем.
Что бы стать программистом — программируйте
Сейчас есть тысячи разных курсов по программированию. Однако, после выхода с этих курсов многие ребята никому не нужны и их не берут на работу.
В чем может быть проблема? Ответ на этот вопрос есть в этой статье.
cobalt | Скачиватель видео с откуда угодно с API
Хорошо отлаженный инструмент, умеющий качать с YouTube, Twitter, Instagram, вКонтакте и кучи других сайтов, без регистрации и СМС. Сохраните, админы сами пользуются уже не первый месяц и очень довольны. А благодаря API процесс можно поставить на поток.
Цена: бесплатно
Репозиторий проекта
Попробовать скачать в GUI
@prog_tools
Разбираемся, на чём держится интернет: самые популярные протоколы и принципы их работы
Как передаются данные и устройства находят друг друга: ARP, ICMP, IGMP, TCP, UDP, SCTP, DNS, DHCP
Как соединяются удалённые сети (туннелирование и маршрутизация): GRE, IPsec, L2TP, L2VPN, L3VPN, MPLS, OSPF, BGP.
Как передаётся веб-трафик и обеспечивается его защита: HTTP, HTTPS, SSL, TLS.
#интернет
«Ты должен был бороться со злом, а не примкнуть к нему!»
Читать полностью…Зачем разработчику знать И SQL И NoSQL? Разбираемся на примерах
Рассказываем в статье:
— Разницу между SQL и NoSQL;
—Сценарии применения БД;
— Почему будущее не за чистыми системами, а за гибридными.
#sql #nosql
Изучаем SQL в формате игры: SQL Murder Mystery
Детективная игра на знание SQL, с которой можно освежить в памяти основы SQL и интересно провести досуг. Примерьте на себя роль детектива, выясняя обстоятельства с помощью SQL-запросов:
https://mystery.knightlab.com/
#sql
ReactJS на изи: что реально нужно знать фронтенд-разработчику в 2025 году
У это библиотеки есть много нюансов, которые упускают новички. И часто это выливается в ошибки. В этой статье мы рассмотрим концепции React, которые упускают во время обучения: процесс рендеринга, предотвращение избыточных обновлений, работу с concurrent-режимом и приоритетами.
#react
Ожидание vs реальность: какие меняются взгляды разработчика за 10 лет в профессии
Старший инженер-программист в Amazon Крис Киль (Chris Kiehl), автор книги по дата-ориентированному программированию на Java поделился заметкой о том, как изменились его взгляды за 10 лет пребывания в индустрии разработки ПО. Перевод его заметки предлагаем почитать и вам.
Топ-60 лучших инструментов для разработки ПО в 2025
В подборке собрали редакторы кода, системы контроля версий, инструменты для CI/CD, средства тестирования и много другое.
Сохраняйте или отправляйте тем, кто ищет надежные тулзы
#инструменты
Бесплатное обучение фулстек-разработке веб-сервиса с нуля по видео-урокам с исходным кодом и поддержкой
Нет, это не реклама очередного курса с гарантией трудоустройства и постоплатой. Автор этой статьи создал свой полноценный курс из 141 урока. Подошёл он к делу ответственно и потратил около года на это, охватив кучу важных технологий, включая React, TS, Vite, Docker и прочее.
Цель была — продавать курс. Но с этим автору не повезло, зато повезло нам, потому что теперь этот курс доступен всем абсолютно бесплатно.
Подробности программы и ссылка на курс в статье.
#курс #фуллстэк
Чем отличаются реляционные БД от нереляционных
Реляционные и нереляционные базы данных — это два разных способа хранения и организации информации. Давайте разберём их отличия простыми словами.
Реляционные базы данных похожи на шкаф с ящиками, где всё упорядочено. Каждый ящик — это как таблица (представьте Excel), в которой:
— Есть чёткие столбцы, например, «Имя», «Фамилия», «Телефон».
— Каждая строка — это данные об одном объекте, например, о клиенте.
— Таблицы связаны между собой. Например, можно соединить таблицу «Клиенты» с таблицей «Заказы», чтобы узнать, кто что заказал.
В реляционных БД, например, MySQL или PostgreSQL, всё организовано и легко искать информацию даже с помощью сложных запросов вроде «покажи клиентов, купивших товар X». Но если данные часто меняются или их структура нечёткая, нужно «перестраивать шкаф», а при больших объёмах такие БД могут тормозить
Нереляционные базы, например, MongoDB или Redis — это как большая коробка, куда можно кидать вещи без строгого порядка. Здесь данные хранятся не в таблицах, а в разных форматах:
— Документы (как файлы с информацией).
— Ключ-значение (как словарь).
— Графы (для связей, например, в соцсетях).
— Колонки (для больших данных).
Такой подход даёт нам гибкость для хранения любых данных, даже если они часто меняются. А также позволяют быстро работать с большими объёмами и легко масштабируются. Взамен на эти преимущества они усложняют нам создание сложных запросов, а также поиск чего-то конкретного.
Другими словами, если у вас чёткие данные и нужно их связывать (например, для магазина), берите реляционную базу. Если данные хаотичные, их много и они часто меняются, подойдёт нереляционная.
#простымисловами #бд
Можно ли уместить игру Minecraft всего в один QR-код?
Короткий ответ: да, можно.
Доказательство: на картинке выше.
Подробности: в статье.
#java #gamedev #неормальноепрограммирование
Весна — повод разобраться в своих чувствах, особенно к Java
Перед вами как раз возможность это сделать в небольшом квизе. Здесь предстоит разработать устойчивую систему, которая выдержит любую нагрузку: https://tprg.ru/ynl5
Event loop для чайников: простыми словами о сложном механизме браузера
Event Loop — механизм, который управляет асинхронными операциями в JavaScript. Он позволяет обрабатывать задачи, не блокируя основной поток выполнения программы.
В этой статье простыми словами разберем, как работает цикл событий в браузере, что такое макрозадачи и микрозадачи, и как они влияют на выполнение кода. С примерами, схемами и лайфхаками для лучшего понимания.
Каждый раз, когда изучаешь новый инструмент:
Читать полностью…Сможете ли вы написать калькулятор?
Вам может показаться, что написать калькулятор — это задача для совсем неопытного новичка. Но вы ошибаетесь. Взгляните на картинку выше. Это калькулятор из iOS и он показывает неверный ответ. (10100) + 1 − (10100)
равно 1
, а не 0
.
Как же Apple наговнокодила допустила ошибку в «простейшем» приложении и почему для Android такую же проблему решал именитый разработчик? Разобрались в статье.
🐝Гексагональная архитектура — необычный подход к организации кода
Паттерн отделяет логику приложений от внешних интерфейсов, тем самым обеспечивая автономность и модульность компонентов системы. Как работает, где применяется и какие плюсы/минусы имеет данный подход: https://tprg.ru/lBcg
#архитектура
Что такое утиная типизация
Простыми словами, утиная типизация — это когда в программировании нас интересует не то, как называется объект или к какому классу он относится, а то, что он умеет делать. Если объект ведет себя как утка — например, умеет крякать и плавать, — то для программы он и есть утка, даже если это совсем другой объект. Ведь, если оно выглядит как утка, плавает как утка и крякает как утка, то это, наверное, утка.
В Python типы объектов проверяются не заранее (как в некоторых других языках), а прямо во время работы программы за счет динамической типизации. Утиная типизация в Python означает, что вы можете использовать любой объект в коде, если у него есть нужные вам методы или свойства. Python не заставляет вас говорить: «Это должна быть утка». Ему достаточно, что объект умеет делать то, что вы от него хотите.
Представьте, что у вас есть функция:
def заставить_крякать(объект):
объект.крякать()
крякать()
. Теперь создадим два класса:class Утка:
def крякать(self):
print("Кря-кря!")
class Человек:
def крякать(self):
print("Эээ... Кря-кря?")
утка = Утка()
человек = Человек()
заставить_крякать(утка) # Вывод: Кря-кря!
заставить_крякать(человек) # Вывод: Эээ... Кря-кря?
заставить_крякать
работает и с Утка
, и с Человек
, потому что у обоих есть метод крякать()
. Python не проверяет, утка это или человек, — ему важно только, что метод есть.Конвейер Devops, часть 1: как организовать рабочее место и настроить облако из KVM+libvirt
Совместно с Эйч Навыки открываем серию материалов о том, как устроен конвейер DevOps и как шаг за шагом построить полный CI/CD пайплайн. Вы изучите ключевые инструменты, которые помогают автоматизировать разработку, тестирование и развертывание приложений.
Сегодня на повестке — развертывание собственного облака с помощью KVM и libvirt.
#kubernetes #devops
Шпаргалки по SQL, которые помогут ничего не забыть
Порой из головы может выпасть, что конкретно делает определенное ключевое слово и как совершить операцию побитового исключения с присваиванием.
Именно для таких случаев и существует данная статья с множеством полезных шпаргалок. С ними можно не бояться, что в ответственный момент вы что-то забудете. Сохраняйте в закладки и используйте в работе с реляционными базами данных.
#sql #шпаргалка
История создания и развития языка программирования Go
Язык программирования Go (или Golang) был разработан компанией Google в 2007 году и впервые представлен в 2009 году. Go был создан как ответ на ряд проблем, с которыми сталкивались разработчики при использовании существующих языков, таких как C++ и Java.
Давайте сегодня немного окунемся в историю и посмотрим с чего всё начиналось и как развивалось до настоящего момента.
Начало истории здесь.
#golang #историяit
Работаем с текстовыми файлами, как с БД
TextQL позволяет нам выполнять SQL-запросы над структурированным текстом, например, CSV или TSV. Такой инструмент поможет вам удобнее работать с текстовыми файлами, выбирая из них только то, что нужно.
#инструменты