Системный аналитик с нуля | Альбина Гараева
1.1K subscribers
203 photos
46 videos
1 file
338 links
Авторский канал о том, как войти в IT сферу за 3,5 месяца и вырасти до senior-специалиста 🚀

Я Альбина Гараева - практик рынка, автор и спикер курса «Системный аналитик»

👩🏻‍💻 За плечами 26+ проектов

Для связи @ginfotech_manager
Download Telegram
Если выходить на рынок труда вы не хотите, но для вас важно понять ваш текущий уровень, приходите на демособеседование.

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

И, конечно, приглашаю тех, кто проходит собеседование, но не получает оффер.

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

Длительность: 2 часа
Стоимость: 5000 рублей

Для записи пишите менеджеру @ginfotech_manager
👍104🤩3
MS SQL Server

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

MS SQL Server — это реляционная СУБД, созданная Microsoft и широко используемая в корпоративных приложениях.

В целом MS SQL Server обладает такими же преимуществами, что и конкуренты:
высокая надежность и безопасность (поддержка шифрования, ролей и прав доступа)
высокая производительность
инструменты для резервного копирования и восстановления, а также для настройки и управления базами данных
инструменты для анализа данных и бизнес-аналитики, например SQL Server Analysis Services

В то же время MS SQL Server уступает Oracle DB в масштабировании и работе с огромными объемами данных. Но выигрывает в проектах, где требуется глубокая интеграция с экосистемой Microsoft, включая .NET и Windows Server.

Как писать запросы?
MS SQL Server использует T-SQL — расширенную версию SQL с дополнительными возможностями (хранимые процедуры, триггеры, джобы).

Для системного аналитика важно понимать разницу в синтаксисе с тем же PostgreSQL. Помните, я уже рассказывала про типы данных? Так вот, например, в MS SQL Server никаких timestamp-ов, вместо них DATETIME. А чтобы получить текущую дату мы писали now(), в MS SQL Server это будет SYSDATETIME()

На эту тему есть отличный материал на хабре, кому актуально делюсь ссылкой: Карманный справочник: сравнение синтаксиса MS SQL Server и PostgreSQL
🔥10👍4🤩3
Друзья, поделитесь, а с какими реляционными БД вы сталкивались чаще всего?
Anonymous Poll
76%
PostgreSQL
28%
Oracle DB
20%
MS SQL Server
2%
SQLite
25%
MySQL
MySQL

MySQL — реляционная СУБД, идеально подходящая для приложений, ориентированных на интенсивное чтение данных. Эта СУБД предлагает как открытые, так и платные коммерческие версии. MySQL изначально была создана в 1995 году, а сейчас входит в состав экосистемы Oracle. 

Преимущества MySQL:

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

Если говорить про недостатки, MySQL однозначно проигрывает PostgreSQL в сложных аналитических запросах и работе с большими объемами данных. 

Для очень больших и сложных систем выбирают более мощную СУБД, например, PostgreSQL или Oracle. Но скорость и простота использования делает MySQL популярным выбором для веб-приложений, сайтов, интернет-магазинов и CMS-систем. 

В целом эта СУБД проста в освоении и универсальна. Если вы умеете писать SQL запросы, то легко сможете с ней работать👍🏻
👍7🔥6🤩4
Что такое ACID и почему это важно для реляционных СУБД?

Давайте рассмотрим один из ключевых принципов, на которых строится работа практически всех реляционных СУБД, включая MySQL, PostgreSQL, Oracle и MS SQL Server.

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

Итак, расшифровываем ACID:

1. Atomicity (Атомарность)
Все действия в рамках транзакции выполняются либо полностью, либо не выполняются вообще.
Пример: Если вы переводите деньги с одного счета на другой и при этом произошел сбой в сети, то изменения не будут применены.

2. Consistency (Согласованность)
После выполнения транзакции база данных остается в согласованном состоянии. Это означает, что все правила, ограничения и зависимости данных соблюдаются.
Пример: Если есть правило, что сумма на счетах клиентов не может быть отрицательной, транзакция, нарушающая это правило, не будет выполнена.

3. Isolation (Изолированность)
Транзакции не влияют друг на друга и выполняются так, как будто они происходят последовательно.
Пример: Если два пользователя одновременно пытаются изменить одни и те же данные, система гарантирует, что одна транзакция завершится первой, а другая выполнится с учетом изменений.

4. Durability (Надежность)
После успешного завершения транзакции изменения данных сохраняются в базе, даже если произошел сбой системы.
Пример: Если база данных подтверждает успешное завершение транзакции, данные не исчезнут при неожиданной перезагрузке сервера.

Именно ACID-принципы позволяют реляционным СУБД:
✔️обеспечивать надежность, ведь данные всегда остаются в корректном состоянии, даже при сбоях
✔️давать гарантию, что в базе данных не появится противоречивых данных
✔️обеспечивать безопасность - система защищена от одновременного некорректного доступа к данным

Реляционные СУБД изначально разрабатывались с учетом ACID-принципов, так как они необходимы для работы с транзакционными данными. Однако NoSQL-базы данных часто отказываются от полного соответствия ACID в пользу более высокой производительности и масштабируемости (например, они могут следовать модели BASE).

Тем не менее, в критически важных системах, где ошибки недопустимы, ACID остается золотым стандартом👍🏻
🔥14👍5🤩5
Реляционные СУБД

Подведем небольшой итог рассмотренных СУБД, напомню, что рассмотрели:

• PostgreSQL
• Oracle DB
• MS SQL Server
• MySQL

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

Где можно встретить каждую из этих СУБД?

▫️PostgreSQL — в проектах со сложными аналитическими задач, большими данными и строгими требованиями к соответствию SQL.
▫️Oracle DB — в корпоративных системах с большими объемами данных и высокими требованиями к надежности и безопасности.
▫️MS SQL Server — в приложениях, интегрированных в экосистему Microsoft.
▫️MySQL — в веб-приложениях и проектах с небольшими или средними объемами данных, где важна скорость.

Жду ваших реакций, если разбор данной темы оказался полезным! И переходим дальше - к нереляционным СУБД.
🔥15👍5👏3
Собеседования: дайджест постов

За 2 года ведения канала, у меня накопилась база знаний, которая несомненно поможет подготовиться к собеседованиям и обрести мотивацию! 
Изучайте и сохраняйте:

Составляющие продающего резюме - прямой эфир
ТОП 3 ошибки в резюме
• Оформляем резюме правильно: часть 1, часть 2
Последний штрих перед выходом на рынок труда
Как убедиться в том, что ты готов к росту
Подготовка к собеседованию и поиск работы: реальная история
Что спрашивают о модели OSI на собеседованиях 
В чем отличие синхронного от асинхронного запроса?
Рынок переполнен? Смотря как посмотреть 
Подробный гайд - 10 советов по поиску работы
Подкаст: Как быть профи, за которым охотятся работодатели

🔥А также получите гайд ТОП 10 технических вопросов на собеседовании у менеджера @ginfotech_manager, просто напишите в ЛС «10 вопросов для собеса»
🔥96🤩3
NoSQL 

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

Да, у реляционных БД много преимуществ, но есть и недостатки:

Сложность масштабирования для обработки больших объемов данных. Горизонтальное масштабирование может быть сложным и дорогим.

Жесткая структура и ограниченная гибкость: реляционные БД требуют определения строгой схемы данных, но что делать в случае с данными нестандартного формата (JSON, XML или графикой)?

Тут то и появились нереляционные БД - они предлагают более гибкие и масштабируемые решения для хранения и обработки данных. На самом деле NoSQL СУБД вокруг нас - в соцсетях, в e-commerce… в любой области, где требуется обрабатывать большие объемы данных с высокой скоростью.

Из преимуществ NoSQL можно выделить:

✔️Гибкость: здесь не нужна строгая табличная структура, а данные могут храниться в разных форматах.
✔️Легкое масштабирование, как горизонтально (добавление серверов), так и вертикально (увеличение мощности серверов).
✔️Простой язык запросов, который позволяет быстро обрабатывать запросы на огромные объемы неструктурированных данных.

Одна из самых популярных NoSQL баз данных, использующая формат JSON для хранения данных - MongoDB, ее мы и на курсе изучаем, по ней есть и подробные посты в канале:

▫️MongoDB
▫️Запросы MongoDB в примерах

А с другими (самыми популярными между прочим) познакомимся в следующих постах. С вас - реакции🔥
🔥124🤩3👍2
Redis

Расскажу сегодня о еще одной нереляционной СУБД, с которой мне удалось поработать на нескольких проектах.

Итак, Redis (REmote DIctionary Server) — одна из самых популярных in-memory NoSQL СУБД, предназначенная для сверхбыстрого взаимодействия с данными. Ее основная особенность — хранение информации в оперативной памяти, что обеспечивает невероятную производительность. Если вы работаете на проекте, где важна скорость обработки данных или планируется работа с высоконагруженными системами, то вы с большой долей вероятности можете встретиться с этой СУБД!

Какие задачи решает Redis:

Кэширование: Redis часто применяют для временного хранения данных, чтобы снизить нагрузку на основную БД. Например, кэширование результатов сложных SQL-запросов.

Управление сессиями: используется для хранения информации о сессиях пользователей в веб-приложениях.

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

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

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

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

Нужно понимать, что из-за того, что данные хранятся в оперативной памяти, Redis лучше всего подходит для временного хранения данных, но не для критически важных транзакционных операций. Поэтому часто данная СУБД используется вместе с другими, например, PostgreSQL. Таким образом происходит оптимизация производительности системы. 

Кстати, Redis часто сравнивают с другими NoSQL СУБД, однако, благодаря своей стабильности и широкой поддержке, Redis остается одним из лидеров.

Технических деталей тут достаточно много, и как говорится, «лучше один раз увидеть, чем сто раз услышать», поэтому оставляю ссылку на подробную статью на хабре - изучайте https://habr.com/ru/amp/publications/841792/
🔥12👏4👍3
Начало года выдалось очень насыщенным! И на рабочих проектах большая загрузка, и выпускники выпускаются, и демособеседования провожу… А знаю, что есть те, кто ждёт свободные слоты на консультации! 

Напомню, что провожу консультации, которые особенно актуальны для тех, кто хочет:

понять, как построить план развития и двигаться по карьерной лестнице,
узнать, что сейчас востребовано на рынке труда,
понять, куда двигаться дальше (если достигли потолка на текущем месте) и нужно ли для этого получить знания, а может вы уже готовы к росту, просто не знаете об этом!

Формат: видеозвонок
Длительность: 30 минут
Стоимость: 1000 руб
Ценность:
бесценно!

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

🔥Кому актуально, записывайтесь у @ginfotech_manager - сориентируем вас по свободным слотам
🔥9👍4💯32
Как раз и навсегда перестать бояться собесов

Сходить на 100 собесов без ожиданий

Ну ладно, хотя бы на 20-30😉
Что при этом происходит?

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

Мало собесов (штук 5-6) - значит ты будешь сильно переживать на каждом, думать «хоть бы получить оффер». Эти переживания повлияют на твое поведение - не позволишь себе ошибиться, будешь бояться выглядеть глупым, покажешь, что нервничаешь и т.д.

Понятно дело, что нервничать это нормально. Но давай представим другую ситуацию - не тебя выбирают, а ты выбираешь. Реально. Ты смотришь, какие HR задает вопросы, узнаешь, какая вообще внутри корпоративная культура, какие будут задачи, какой график работы.

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

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

Так что не бойтесь завалить собес, и даже наоборот - парочка заваленных собесов даст понимание, что ничего страшного в этом случае не произойдет - конечно, если вы не перестанете проходить их дальше!
👍14🔥7💯42🤩2
Продолжим про NoSQL СУБД и сегодня поговорим о Cassandra - одной из самых мощных NoSQL баз данных. Cassandra используется там, где реляционные базы данных не справляются из-за высоких нагрузок, распределенной архитектуры или необходимости масштабирования в режиме реального времени.

Вы можете столкнуться с этой СУБД в следующих случаях:
• если требуется обработка данных в реальном времени 
• если используются хранилища с высокой нагрузкой (социальные сети, стриминговые сервисы)
• в IoT-платформах (требуют надежного хранения информации с множества устройств)
• в системах, работающих на нескольких дата-центрах

Как устроена Cassandra?
• Децентрализованная структура: нет главного узла, все узлы равноправны и могут обрабатывать запросы.
• Данные хранятся в виде пар ключ-значение, но поддерживается и колоночная структура.
• Данные автоматически копируются между узлами, а система продолжает работать даже при выходе из строя отдельных серверов.
• Кластер Cassandra масштабируется без простоев.

Что важно знать?

▫️Модель данных:
Данные группируются в keyspace (аналог схемы БД в реляционных СУБД).
• В keyspace хранятся колоночные семейства (аналог таблиц).
• Колонки объединяются в строки, но их структура может быть разной для каждой записи.

▪️Распределение данных:
Используется согласованное хеширование (consistent hashing) — ключ определяет, на каких узлах кластера будут храниться данные.
• Поддерживается репликация данных для обеспечения отказоустойчивости.

Итак, если говорить про плюсы и минусы Cassandra:
Высокая масштабируемость и отказоустойчивость.
Отлично подходит для распределенных систем с огромными объемами данных.
Гибкая настройка согласованности данных.

Запись быстрее, чем чтение (из-за особенностей работы с диском).
Не поддерживает транзакции в классическом понимании реляционных БД.

Подводя итог всему вышесказанному, можно сказать, что Cassandra — это не просто NoSQL-база, а мощный инструмент для аналитики, Big Data и высоконагруженных распределенных систем.

Кто уже поработал с этой СУБД, что добавите по плюсам и минусам?
🔥13❤‍🔥4👍2
Как прокачать коммуникабельность?

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

Кому знакомо? 

Я по своей сути интроверт, но! Общение - это база моей жизни. Причем онлайн - это одно, оффлайн - совсем другое. Я периодически устраиваю себе вылазки в обществе друзей, какие-то мастер-классы, сообщества и новые знакомства. 

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

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

Прокачивая коммуникабельность, вы в любом случае остаетесь в плюсе - такие софтскилы еще никому не помешали! 

P.S. А с теми, кто в Казани, с удовольствием сыграю в мафию 😉
🔥153😁2
Java Memes gold
Photo
Ничего более жизненного вы сегодня не увидите 😅

А для тех, кто пропустил - я подробно разбирала основные модели разработки ПО, а про Scrum можно почитать тут и тут
👍11😁4💯3
Memcached: что нужно знать системному аналитику

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

В 2003 году Брэд Фицпатрик, работая над LiveJournal, решил эту проблему, создав Memcached — лёгкую и быструю систему кэширования, которая хранила часто используемые данные в оперативной памяти и тем самым разгружала базу данных. Позже технология вышла за пределы LiveJournal и стала применяться в других крупных веб-сервисах (YouTube, Twitter и пр.)

Memcached — это in-memory key-value хранилище с открытым исходным кодом. Оно используется для временного хранения данных, чтобы снизить нагрузку на базу данных и ускорить обработку запросов.

Как это работает?

1. Приложение запрашивает данные → Memcached проверяет, есть ли они в кэше.
2. Если данные есть — возвращает их мгновенно.
3. Если нет — обращается к БД, получает данные и кэширует их в памяти.
4. В следующий раз те же данные будут браться из кэша, а не из БД.

Где применяется?

• Кэширование результатов запросов к базе данных, API и веб-сервисам.
• Хранение пользовательских сессий в высоконагруженных системах.
• Оптимизация загрузки страниц в веб-приложениях.
• Снижение нагрузки на БД в сложных аналитических системах.

Плюсы и минусы Memcached
Высокая скорость благодаря работе в оперативной памяти.
Простота в установке и использовании.
Горизонтальное масштабирование (можно легко добавить новые серверы).
Нет встроенной персистентности (при перезапуске сервера данные теряются).
Ограничение на размер данных (один ключ — до 1 МБ).

Memcached vs Redis

Memcached часто сравнивают с Redis. Оба инструмента выполняют схожие задачи, но:
▪️Memcached быстрее, если нужны простые key-value операции.
▪️Redis мощнее, если важны сложные структуры данных и персистентность.

Итак, Memcached — это отличный инструмент для кэширования, который снижает нагрузку на базу данных и ускоряет работу систем. Особенно в высоконагруженных веб-приложениях, где важны скорость и масштабируемость👍🏻
🔥15👍4
NoSQL: подводим итоги

Мы подробно разобрали разные NoSQL СУБД:

▪️MongoDB
▪️Redis
▪️Cassandra
▪️Memcached

Говорили о том, как они работают, какие задачи решают и чем отличаются от реляционных баз данных.

Главные выводы:

• NoSQL — это не про отказ от SQL, а про гибкость и масштабируемость.

• Разные NoSQL СУБД подходят для разных задач: MongoDB — для документов, Memcached и Redis — для кэширования, Cassandra — для распределённых систем.

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

NoSQL не заменит классические PostgreSQL, MySQL или Oracle, но даёт крутые инструменты для высоконагруженных и распределённых систем, поэтому в проектах они встречаются достаточно часто.

На курсе Cистемный аналитик наряду с реляционными БД мы изучаем и нереляционные - это помогает выпускникам легко сориентироваться на реальных проектах и быть готовыми влиться в рабочие задачи🔥
🔥13👍3❤‍🔥2
В преддверии женского праздника предлагаю вспомнить тех, кто доказал: технологии — не только для мужчин.

Женщины внесли огромный вклад в развитие IT, и без них мир цифровых технологий был бы совершенно иным. Здесь и первая в истории программистка, и «мать интернета».

А кого бы в этот список добавили вы? 
19👍2🤩2