The Pythonic Way
356 subscribers
12 photos
22 links
Айтишка через призму практикующего Python-инженера.

Правда об IT, будни разработчика, полезные фишки Python и его инструментов.
Download Telegram
Несколько фундаментальных книг, которые следует прочесть каждому разработчику 📚

Техническая литература делится на два больших блока:

🟡Узкоспециализированная, о конкретных технологиях и языках
🟡Общего назначения, подходящая для всех, кто так или иначе связан с разработкой ПО (например, чистая архитектура Роберта Мартина)

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

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

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

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

Итак, мой личный список базированной литературы, которую я сам прочитал/читаю:

1. "Чистая архитектура", Роберт Мартин
Полезная книга, мотивируюшая на критичное рассмотрение когда-то принятых архитектурных решений.
Автор рассуждает, приводит примеры из практики и удачно оперирует историческими фактами истории computer science.
Книга позволяет несколько иначе посмотреть на подходы к разработке архитектуры и на приоритеты.
В книге рассматривается дизайн и архитектура, парадигмы программирования, принципы SOLID, принципы разделения компонентов кода и многое другое.

2. "Высоконагруженные приложения. Программирование, масштабирование, поддержка", Мартин Клеппман
Данная книга обязательна к прочтению, если вы хотите начать разбираться в распределенных системах и принципах работы БД. Все собрано в одном месте со ссылками на более детальную информацию.
В книге рассматриваются обширные темы, касающиеся работы с данными: Основы информационных систем и хранилищ данных, реляционные, документные и графовые базы данных, подсистемы хранения данных, транзакции, репликация и т.д.

3. "Чистый код. Создание, анализ и рефакторинг", Роберт Мартин.
Эта книга полна реальных примеров, позволяющих взглянуть на код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Вы узнаете много нового о коде. Более того, научитесь отличать хороший код от плохого, узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга познакомит вас с принципами, паттернами и приёмами написания чистого кода, упражнениями по чистке кода или преобразованию проблемного кода в менее проблемный, набору эвристических правил и "запахов кода" и т.д.

4. Паттерны объектно-ориентированного проектирования, Э. Гамма, Р. Хелм и другие
Неплохая книга, рассказывающая о 23 различных паттернах объектно-ориентированного программирования. Вы узнаете о роли паттернов в архитектуре сложных систем и сможете быстро и эффективно создавать собственные приложения с учетом всех ограничений, возникающих при разработке больших проектов.
Книга немного сложновата для понимая, т.к. впервые издана аж в 1994 году и с тех пор подлежала лишь минорным изменениям. Если подобный стиль вам не по душе, и воспринимается сложно, то можете прочесть "Погружение в паттерны проектирования" от Александра Швеца.

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

#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
The Pythonic Way pinned «Куда я пропал и что дальше? 🤔 Привет всем подписчикам и случайным гостям 👋 Последние несколько месяцев мне пришлось решать большое количество навалившихся вопросов. Я закончил универ, защитил диплом и прошел несколько универских практик, много работал, увлекся…»
Функциональное программирование vs ООП 💬

Поговорим о двух главных подходах к написанию кода: функциональном (ФП) и объектно-ориентированном (ООП).

Объектно-ориентированный стиль, можно сказать, похож на игру в "конструктор" или "симулятор". У нас есть классы – как чертежи для создания объектов. Классы группируют данные и методы в одном месте, позволяя создавать экземпляры, которые могут обмениваться информацией. Проще говоря, как лего-кирпичики, которые собираются в одну большую конструкцию. ООП способствует созданию модульного и понятного кода, где изменения в одной части не всегда влекут за собой сломанные другие части программы.

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

Так какой же подход лучше?🤔

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

Раньше я всегда и не задумываясь пользовался функциональным подходом, потому что так казалось сильно проще. Написал себе парочку функций, вызвал их и все — скрипт готов.
Но позже начали возникать вопросы поддержки существующего кода, а также вопросы о правильности архитектуры.
Код, основанный на классах, как правило, легче читается и понимается. А также он более структурирован, нежели код, основанный на функциях. ООП позволяет лучше организовать код благодаря абстракции, инкапсуляции и модульности, что в конечном итоге делает его более поддерживаемым и расширяемым. Да и в конце концов, в питоне все является объектом, за счет чего работа с классами зачастую удобнее (например, в питоне есть замечательные дандер или же магические методы).

Но все это лишь мои личные предпочтения. Хороший код можно написать как пользуясь функциями, так и классами. Это как сравнивать чай с кофе – каждый со своим вкусом и ароматом, но оба вкусные в своем роде.

Тема ФП и ООП в принципе довольно философская, поэтому лучше расскажите, какой подход чаще используете лично вы и почему 🧐
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
Что вам больше по душе: ФП или ООП? 🤔
Anonymous Poll
13%
ФП
43%
ООП
15%
Как пойдет
30%
Это все неважно, лишь бы код работал
Офис или удаленка 🤔

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

Не знаю, как вам, а мне, услышав подобный вопрос, сразу хочется ответить в духе: "Конечно удаленка, удаленная работа лучше во всех планах." Но все ли так просто? Давайте разбираться.

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

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

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

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

Лично мне по душе что-то среднее из двух крайностей, а именно гибридный формат. Например, 3 дня работы удаленно и 2 дня работы в офисе. Подобный формат позволит иметь контакт с коллегами, и находиться в рабочем тонусе ра протяжении недели, но в то же время работать с комфортом в домашних условиях.

А что выбираешь ты? Удаленка или офис? А может быть гибрид? 🤔

Кстати, скоро выкачу новый визуал канала, сейчас продумываю всю айдентику. На следующей неделе ждите обнову 🫶
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Нотация О-большое или же Big O notation 📊

Наверное многие из вас слышали о такой штуке, как О-большое. Но что это такое и где используется? Давайте разберемся.

Что такое O-большое?

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

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

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

Как оно обозначается?

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

Примеры

O(1): Константное время. Количество операций не меняется с ростом данных.
Пример: доступ к элементу массива по индексу.
O(n): Линейное время. Количество операций растет пропорционально размеру данных.
Пример: перебор всех элементов в массиве.
O(n²): Квадратичное время. Количество операций растет квадратично с размером данных.
Пример: вложенные циклы, проверяющие каждую пару элементов.
O(log n): Логарифмическое время. Количество операций растет медленно при увеличении размера данных.
Пример: бинарный поиск в отсортированном массиве.

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

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

P.S. А вы тоже заметили обновление визуала? 🤩
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
Новое оформление канала…
Anonymous Poll
98%
Нравится 👍
2%
Не нравится 👎
👍3
Tip of the day: Распаковка значений в Python 📦

Распаковка значений — это замечательный способ сэкономить время и код при работе с данными в питоне.

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

Если нужно распаковать только часть данных и остальные сохранить, можно использовать оператор звёздочку *. Это позволит сохранить оставшиеся элементы в одной переменной.

Также, если нужно проигнорировать некоторые значения, можно использовать подчёркивание _.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤯21
Python 3.12: Что нового? 🔥

12 августа вышел Python 3.12, билд 0rc1. Давайте разбираться, какие новые и интересные фичи разработчики завезли в язык.

Улучшенные сообщения об ошибке

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

Если вы забыли подтянуть библиотеку инструкцией import, то теперь интерпретатор вежливо подскажет (‘did you forget...’) и укажет на опечатки в названии подключаемого модуля.

Переиспользование кавычек в f-строках

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

Порядок слов в инструкции импорта

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

Псевдонимы типов

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

Перезапись декоратора

Если у нас есть класс Base c методом get_color(), и в наследном классе GoodChild мы хотим эту функцию переопределить, то при помощи инструкции @override это сделать очень просто.

TypedDict для определения типов **kwargs

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

Ознакомиться со всем списком изменений в Python 3.12 можно здесь.

Примеры с кодом найдешь в первом комментарии 🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5
Я лично транспортир использую
#джоук
😁8👍2
Как ускорить твой код на питоне. Часть 1 🚀

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

Используй правильную структуру данных

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

Используй list comprehension, а не for-циклы

List compehension — это элегантный и лучший способ создать новый список на основе элементов существующего списка всего за одну строку кода.
List comprehension считается более питоническим способом создания нового списка, чем определение пустого списка и добавление элементов в этот пустой список.
Еще одним преимуществом list compehension является то, что это быстрее, чем использование метода append для добавления элементов в список.

Используй множественное присвоение

Если ты хочешь присвоить значения сразу нескольким переменным, то не присваивай их построчно. В Python есть элегантный и лучший способ присвоения нескольких переменных, например:
a, b, c, d = 2, 3, 5, 7

Не используй глобальные переменные

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

P.S. В тг нельзя отправлять слишком длинные сообщения, поэтому вторую часть залью чуть позже 🥸
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
Как ускорить твой код на питоне. Часть 2 ⚡️

Как и обещал, рассмотрим еще несколько полезных фишек, которые помогут ускорить твой код на python.

Пользуйся built-in функциями

Не пиши свою функцию (вручную), если она уже есть в библиотеке. Библиотечные функции очень эффективны, и, вероятно, что ты не сможешь реализовать желаемую функцию лучше. Кстати, все существующие built-in функции можно найти здесь.

Конкатенируй строки при помощи join

В python ты можешь объединять строки при помощи оператора +, но это также можно сделать с помощью метода join():
concatenated_string = " ".join (["Zen", "of", "python."])

Используй генераторы

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

Используй 1 в бесконечных циклах

Используй while 1 вместо while True. Это немного сократит время выполнения.

Старайся не использовать dot операции

Старайся избегать точечной операции. Пример:

import math
val = math.sqrt(60)


Вместо приведенного выше стиля лучше пользоваться следующим подходом:

from math import sqrt
val = sqrt(60)


Потому что, при вызове функции через . (точку) сначала она вызывает getattribute() или getattr(), которые затем используют операцию со словарем, которая требует больше времени.

Эти маленькие, но полезные советы помогут улучшить производительность твоего кода на python. Но главный совет будет звучать так: всегда задумывайся о том, что ты делаешь. При таком подходе риск появления ненужного кода и, следовательно, лишней нагрузки сводится к минимуму 🎉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103
Docker: что это и с чем его едят 🐳

Наверняка каждый из вас слышал о такой полезной штуке, как Docker. Практически в каждой вакансии на должность backend-разработчика можно встретить данную технологию. Давай разберем Docker по кирпичикам!

Что такое Docker?

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

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

Да потому что так удобнее! Когда у тебя приложение завернуто в контейнер, ты можешь запускать его везде, где установлен Docker, и будешь знать, что оно будет работать так, как надо.

Ниже рассмотрим основные понятия, используемые в Докере

Образ (Image)

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

Контейнер

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

Dockerfile

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

Реестр (Registry)

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

Все еще считаете, что использование докера необязательно? А что если я скажу, что в докер можно упаковать целую изолированную систему? Это почти правда 🫠

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

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

В первом комментарии оставляю бонус. Дерзайте 👁👄👁
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥1
В последнее время немного сбавил темп постов. У меня как и прежде, есть несколько идей для канала, а пока что появилась возможность постить истории 🙃

Если хотите видеть подобный контент, то проголосуйте ниже. Буду надоедать вам в другом формате 😁

https://t.me/thepythonicway?boost
Please open Telegram to view this post
VIEW IN TELEGRAM
Внезапный, но важный пост 📣

На дворе уже весна, а я какой раз возвращаюсь с мыслью о том, что нужно делиться полезным контентом и воскрешать канал!

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

Хотел просто поговорить с вами. Сейчас у меня небольшая каша в голове и я хочу спросить у вас(если тут кто-нибудь остался 🙂): какой контент вам был бы интересно получать от меня почаще, какой пореже? Может быть это старые форматы, вроде tip of the day, какие-то фишки питона, размышления о ИТ и трендах, или же новые форматы, где я буду постепенно добавлять немного лайфстайла из жизни разработчика? Или же внедрение новых форматов: попробуем сделать свой пет-проект с нуля в группе, под моим менторством, подкасты, а-ля короткие недельные дайджесты о трендах в ИТ, или же на совсем другие темы. А может основательное чтиво в формате статьи, где я буду стараться максимально раскрыть заданную тему? Или, может быть, попробовать податься на ютуб и записывать видосы на разные полезные и не очень темы?

В общем, в первую очередь хочется, чтобы канал развивался и был полезным вам, а во вторую, удовлетворял моим писательским и творческим потребностям 🤪 Все же, не зря сюда подписалось несколько сотен человек, а значит потребность во всем этом есть!

Поэтому ниже прикреплю опросник. Можно голосовать за несколько вариантов сразу. А если соскучились или есть свои предложения - оставляйте комментарии! Буду рад почитать и ответить каждому. Поэтому жду от вас какой-либо обратной связи. Let's go! 🔄
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1
Нужна ли математика веб-разработчику? 🧮

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

Начнем с того, что вообще такое математика? На самом деле, общепринятого определения не существует 🤷‍♂️

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

Ничего не напоминает? А по-моему, это описание отлично подходит под определение того, что делает программист. По крайней мере, что-то такое есть!

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

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

Конечно, мы не берем в расчет специфические направления, вроде геймдева или data science, там другие правила и инструменты. Этот канал посвящен веб-разработке, поэтому мы обсуждаем поставленный вопрос именно в этом контексте.

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

Я не скажу, что сейчас нужно все бросать и бежать решать примеры и задачки. Вопрос спорный и индивидуальный. Если у тебя есть свободное время, то конечно, лишним это не будет, а наоборот, только прокачет твои скиллы как разработчика. Или, может быть, ты прямо сейчас учишься в университете? Тогда не прогуливай пары по математике, пробуй разбираться в темах. Ведь умение разобраться, понять и «разложить все по полочкам» многого стоит, и оно точно пригодится тебе в работе.

The Pythonic Way
8👍3🔥2
Что ждет разработчиков и ИТ в 2024 году? Часть 1

2023 выдался мягко скажем, непростым годом. Лопнувший ИТ-пузырь, массовые увольнения, бум ИИ, который отправит нас всех прямиком на каторгу и т.д.. Что же ждет нас с вами, ОЙтишников и отрасль в целом? Уйдем ли мы все на завод, или продолжим писать пару строк кода в неделю, параллельно попивая капучино на кокосовом? Делюсь предположениями в серии постов.

1. Сокращения в компаниях по всему миру.
С появлением ковида в 2019 году, в мире начался кризис, в том числе и венчурный. Венчурные инвестиции — это инвестиции в перспективные новые компании (стартапы) или в компании, стремящиеся существенно расширить бизнес в ожидании получения высокого дохода в будущем.

Из этого исследования видно, что в четвертом квартале(Q4), 2021 года объём инвестиций равнялся $218 млрд, а в Q4, 2022, опустился до отметки в $93 млрд, что почти в 2.5 раза меньше, чем годом ранее, и продолжает падать. В Q3 2023 значения объема инвестиций опустились до рекордно низких за последние годы $70 млрд.

На фоне кризиса, 10 марта 2023 года закрылся Silicon Valley Bank (SVB) после объявления банкротства. Напомню, что этот банк являлся крупнейшим банком Кремниевой долины, входил в индекс S&P 500. Это крупнейшее банкротство банка со времён кризиса 2008 года и второе по величине в истории США.

Вывод? Не бойтесь, это только в Америке.

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

Что это влечет за собой?

Очевидно, если компания увольняет 10к человек из штата, размером 50к, то количество новых вакансий и свободных мест существенно сократится. Компании продолжат нанимать, но точечно.

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

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

Совет: не нужно паниковать

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

Ну, а на всякий случай: всегда можно успеть пройти курс "Токарь-фрезеровщик с нуля за 3 месяца, с зарплатой от 500000 рублей в неделю" от гикбрейнс.

The Pythonic Way
👍9😁7🐳1