prog_point | Неотсортированное

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

-

Фундаментальные знания по основам программирования. Правила общения — https://tprg.ru/jafv

Подписаться на канал

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

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

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

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

#советы #python

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

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

​​Чистим код: Функции

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

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

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

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

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

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

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

#чистимкод

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

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

Про дефолтные утилиты в Go и чистоту кода

В Go есть Go fmt — готовый инструмент для форматирования кода на Go. А также Golangci-lint — линтер для поиска ошибок.

Какие ещё утилиты есть в Go и как они делают код чище и проще для ревью и чтения — смотрите в новом выпуске avito.code. Инженер PaaS AvitoTech Павел Агалецкий рассказывает о полезных командах на примере живого кода.

Реклама ООО «Авито Тех», LjN8JtHrs

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

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

Продолжаем изучать SQL: Индексы

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

Держите статью, где подробно и простым языком объясняют принцип работы индексов и их необходимость в базах данных.

#sql

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

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

Шпаргалка по Markdown в одной картинке

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

Разметка простая и местами даже интуитивная. Например, вот так пишется # Заголовок, вот так *жирный текст*, а так список:

1. элемент 1
2. элемент 2

Всё самое необходимое по Markdown можно найти в шпаргалке выше (источник). Там же для лучшего понимания приведён аналог на HTML каждого из элемента.

#markdown #шпаргалка

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

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

Дорожная карта для изучения Rust

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

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

#rust #roadmap

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

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

Что такое MVP простыми словами

MVP (Minimum Viable Product) — это базовая версия продукта с минимальным набором функций, необходимых для решения основной проблемы целевой аудитории.

Зачем это нужно?

MVP позволяет проверить продукт на аудитории, собрать фидбек и скорректировать план, затратив при этом минимум финансов и времени.

Пример MVP:

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

Ошибочное представление MVP:

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

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

#теория

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

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

Что такое хэш-таблицы и как они работают

Хэш-таблица — это одна из самых популярных структур данных. Про неё любят спрашивать на собеседованиях и в целом использовать в программировании. И вот почему:

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

Если интересно, как именно работают хэш-таблицы и функции "под капотом", то держите видео на эту тему.

#теория

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

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

​​React Native vs. Flutter: что лучше?

Если только планируете вливаться в мобильную разработку, то можете стать перед выбором стека. Flutter и React Native — два основных инструмента для создания кроссплатформенных мобильных приложений. Оба позволяют разрабатывать приложения для iOS, Android и веб из одной кодовой базы.

Flutter предоставляет обширную библиотеку виджетов и плагинов, в то время как React Native — сторонние библиотеки и базовые компоненты.

Держите на заметку статью, где автор на практическом примере показывает разницу этих двух инструментов. Он создал чат-приложение с использованием Firebase в качестве бэкенда. React Native использует JavaScript и TypeScript, в то время как Flutter — язык Dart, оптимизированный для компиляции на разные платформы.

#mobile #react #flutter

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

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

Сделайте свой пет-проект в индустрии туризма! 
  
Открыта регистрация на Московский туристический хакатон — соревнование по цифровизации индустрии туризма. Он пройдёт в два этапа: отборочный онлайн-этап и очный финал в Москве. 
  
Общий призовой фонд: 7 500 000 рублей. 
  
Ждём IT-специалистов, продуктологов, разработчиков, дизайнеров, аналитиков, креаторов и других специалистов, создающих прорывные технологические и продуктовые решения. 
  
Вас ждут пять задач на стыке TravelTech и одной из дополнительных сфер: 
  
— BookingTech; 
— FinTech; 
— RoadTech; 
— ServiceTech; 
— E-Com. 
  
Окончание приёма заявок 11 марта, поторопитесь! Больше деталей на сайте
  
Заполняйте заявку на хакатон и выигрывайте!

Реклама АНО "Проектный Офис по Развитию Туризма и Гостеприимства Москвы" ИНН 7703468243, LjN8K43ay

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

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

​​Чистим код: советы по именованию

Записываем в блокнотик:

— Все сущности должны иметь понятные и удобнопроизносимые имена (т.е. никаких a1, a2, a3, temp, foo). Не бойтесь потратить на придумывание названия переменной более 5 секунд. В будущем вы от этого только выиграете.

— Длина названия должна быть пропорциональна области видимости сущности. Вот почему итераторы в маленьких циклах можно называть i, j, k, а какие-то глобальные константы лучше по типу MAX_REQUEST_COUNT.

— Имена классов должны представлять собой существительные или их комбинации.

— Методы в своём названии должны содержать глагол, описывающий действие метода. Если глагол не подобрать — задумайтесь, точно ли эта сущность должна быть методом?

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

— Если есть группа переменных с общим префиксом, то его ставим в конце, а различные части — вначале: StartButton, StopButton, а не ButtonStart, ButtonStop. Так проще находить нужное в группе нескольких переменных.

#чистимкод

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

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

Игры, помогающие прокачать логику и понимание алгоритмов

Держите целую подборку игр (более 20 штук), которые отлично подойдут начинающим в программировании. Вот некоторые из них:

Colobot — знакомая многим игра для простого изучения программирования. Язык C-подобный. По сюжету нужно найти новую планету для жизни.

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

Screeps — ММО стратегия, где вы программируете поведение своих «юнитов».

The Signal State — игра в стиле постапокалипсиса, где вы играете за техника и должны решить 40 головоломок (это она на превью).

BOX-256 — 8-битный компьютер с 256 памяти и 16-цветным дисплеем. Для настоящих олдов.

Oh My Git! — игра для обучения Git. Там визуализируются внутренние структуры репозиториев. Игра опенсорс, так что можно покопаться в исходниках.

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

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

​​Топ-12 ресурсов для бесплатного изучения веб-разработки и программирования

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

Сохраните, чтобы изучать то, что нужно вам:
— W3School: https://www.w3schools.com
— Современный учебник JavaScript: https://learn.javascript.ru
— Codewars: https://www.codewars.com
— Refactoring Guru: https://refactoring.guru
— Web.dev: https://web.dev
— Harvard CS50 (2023): https://www.youtube.com/watch?v=LfaMVlDaQ24
— Geeks for geeks: https://www.geeksforgeeks.org
— Дока: https://doka.guide
— Egghead: https://egghead.io
— Freecodecamp: freecodecamp" rel="nofollow">https://www.youtube.com/@freecodecamp
— LeetCode: https://leetcode.com/explore
— Developer Roadmaps: https://roadmap.sh

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

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

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

Кондиционеры и принтеры чинятся таким же способом

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

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

Как стать айтишником — ответы на популярные вопросы

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

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

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

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

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

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

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

#gamedev

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

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

Держите огромную подборку инструментов для веба

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

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

#web #frontend

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

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

Как минимум ещё один раз

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

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

​​На чём писать сайт в 2024?

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

Если кратко, то: JS — основной язык для фронтенда, также остаются актуальными React, Angular и Vue. Для бэкенда выбор зависит от сайта: маленькие — WordPress, большие — PHP/Laravel, Python/Django, Ruby on Rails. Крупные компании выбирают Java/C#. Важными остаются SEO и мобильная адаптивность.

#web #backend #frontend

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

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

​​Гайд по подготовке к собеседованию по Kubernetes

Kubernetes (K8s) — это открытая платформа для автоматизации развёртывания, масштабирования и управления приложениями в контейнерах. Она предлагает инструменты для упрощения работы с контейнерами, например, Docker, и позволяет легко управлять приложениями в распределённой среде.

В этой статье исполнительный директор по разработке Газпромбанка делится обширным списком частых вопросов с собеседований на тему k8s. Среди них есть и базовые темы на понимание инструмента, и специфичные вопросы, по типу управления ресурсами, best practices и Kubernetes Service.

#собеседование #devops #k8s

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

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

​​Продолжаем изучать SQL — выбор данных и их сортировка

Сегодня разберём два популярных оператора в SQL — SELECT и ORDER BY.

Первый — оператор выбора. Он используется для извлечения каких-то конкретных данных из таблицы. Например, в таблице есть данные о именах студентов, их курсе и оценках. Чтобы получить только имена студентов, используем SELECT name FROM students. Выбирать можно также сразу несколько параметров через запятую. Вот небольшая шпаргалка по этому оператору.

Второй — оператор сортировки. Вместе с ним используется оператор ASC для сортировки от меньшего к большему, и DESC — от большего к меньшему. Например, если нужно отсортировать имена учеников по их оценкам, начиная с самых высоких, то используем: ORDER BY score DESC. По этому оператору тоже есть небольшая статья.

#sql

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

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

Над презентациями больше не прокрастинируем

Для тех, кто испытывает творческое напряжение во время верстки слайдов, разработали Tome — конструктор с ИИ, который:

— создаст типовую структуру презентации по коротком промпту (например, «напиши питч IT-стартапа в области медицины»);
— раскидает буллит-поинты, картинки по слайдам и даст их перегенерить при уточнении промпта;
— сгенерирует картинки, видео и анимирует переходы и многое другое.

How To

#нейросети

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

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

​​Как работает тёмная тема и как правильно её создать

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

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

#ux #ui

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

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

​​Про ООП в картинках и с трансформерами

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

Тема ООП очень распространена в IT и является своего рода "базой", которую должен понимать разработчик.

Держите лонгрид, в котором все понятия ООП объясняют не стандартными формулировками, а на примере строения трансформеров. Тут же разбирают работу геттеров/сеттеров, перегрузки и немного SOLID. Всё с примерами кода, чтоб легче было усвоить.

#теория

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

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

Учимся анимировать в CSS за 20 минут

CSS предлагает два метода анимирования: переходы (transitions) и анимации (animations). Переходы плавно изменяют свойства, а анимации контролируются по ключевым кадрам.

Для создания перехода используются свойства transition: duration, timing function, delay. Анимации создаются с помощью @keyframes и параметров, таких как имя и длительность.

Также есть утилитарные классы, которые упрощают использование анимаций: slideInLeft, slideInRight, rotate и bounce.

Держите статью, где подробно разбирают процесс создания различных анимаций и объясняют принцип их работы.

#css #frontend

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

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

​​Что лучше использовать: PyTorch или TensorFlow?

Хотите разобраться в инструментах машинного обучения? Давайте разберём в сравнении PyTorch и TensorFlow:

PyTorch — это простой инструмент, который хорошо дружит с Python и создан на базе библиотеки Torch.

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

У первого из преимуществ простота, гибкость, удобство с Python. Но есть ограничения с визуализацией и сервированием моделей. А TensorFlow хорошо может в производительность и масштабируемость, но иногда подводит с обратной совместимостью и скоростью.

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

#pytorch #tensorflow #ml

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

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

​​Участник Open Source — как им стать и зачем

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

Работа с open source может помочь эффективно учиться и наращивать практические навыки. Также это отличный вариант для портфолио.

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

#general

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

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

Паттерны MVC, MVP и MVVM — что это

Семейство MV*-паттернов — популярная тема у программистов. Про неё любят спрашивать на собеседованиях и указывать в вакансиях. Давайте разберёмся, что это:

MV*-паттерны — паттерны для организации архитектуры кода. Они улучшают его строение, читаемость и обеспечивают эффективную работу приложения. Каждый из них разделяет программную логику на 3 составляющих:

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

MVP — Model-View-Presenter. Тут модель хранит бизнес-логику, представление отображает данные, а презентер реализует взаимодействие между моделью и представлением.

MVVM — Model-View-ViewModel. Модель отвечает за хранение данных и бизнес-логику. Представление — отображает данные и обрабатывает пользовательский ввод. Модель представления преобразует данные из модели для представления и уведомляет модель о вводе.

Подробнее в статье.

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

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

​​Что такое .gitignore-файл?

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

Зачем он нужен?
Исключение временных файлов. Игнорирует файлы, создаваемые в процессе разработки, такие как *.pyc и node_modules/.

— Платформозависимый код. Игнорирует файлы, специфичные для ОС, например, .DS_Store и Thumbs.db.

— Защита чувствительных данных. Предотвращает случайное добавление паролей и ключей API в репозиторий.

Пример синтаксиса файла:

# Игнорирование временных файлов Java (файлы с указанным расширением)
*.class

# Игнорирование настроек проекта IntelliJ IDEA (все файлы в указанной папке)
.idea/

Чтобы вручную не составлять .gitignore-файл, можно воспользоваться сервисами с готовыми конфигами. Например gitignore.io — указываете используемые в проекте технологии и получаете заполненный файл.

#git

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

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

​​Тест — Хорошо ли вы знаете принципы SOLID?

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

Теперь предлагаем проверить усвоенные знания на нашем тесте. Всего в нём 10 вопросов. Результатами можно поделиться в комментариях.

#solid

Читать полностью…
Подписаться на канал