Библиотека pandas или как эффективно работать с данными в Python 🤫
Если вы работаете с данными в Python, тогда к вам на помощь спешит модуль Pandas: мощный инструмент для их обработки, который поможет вам упростить многие задачи.
На сегодняшний момент я практически ежедневно пользуюсь данным инструментом для обработки неограниченного количества файловых данных.
Pandas - это Python библиотека, которая предоставляет удобный интерфейс для работы с данными. Она используется для анализа, манипулирования и визуализации данных.
Кейсов, где вам мог бы пригодиться pandas множество: начиная от чтения и парсинга файлов, заканчивая построением статистических моделей.
Преимущества Pandas
🔼 Удобный интерфейс.
Pandas предоставляет удобный интерфейс для работы с данными, позволяя выполнять сложные операции с небольшим количеством кода.
🔼 Мощные возможности.
Библиотека Pandas предоставляет мощные возможности для манипулирования данными, включая фильтрацию, сортировку, группировку и агрегацию.
🔼 Поддержка различных форматов данных.
Pandas поддерживает множество форматов данных, включая CSV, Excel, SQL и даже HTML.
Кроме того, скоро выйдет новая вторая версия библиотеки: обещают увеличить производительность в несколько раз😏
Если вы работаете с данными в Python, тогда к вам на помощь спешит модуль Pandas: мощный инструмент для их обработки, который поможет вам упростить многие задачи.
На сегодняшний момент я практически ежедневно пользуюсь данным инструментом для обработки неограниченного количества файловых данных.
Pandas - это Python библиотека, которая предоставляет удобный интерфейс для работы с данными. Она используется для анализа, манипулирования и визуализации данных.
Кейсов, где вам мог бы пригодиться pandas множество: начиная от чтения и парсинга файлов, заканчивая построением статистических моделей.
Преимущества Pandas
Pandas предоставляет удобный интерфейс для работы с данными, позволяя выполнять сложные операции с небольшим количеством кода.
Библиотека Pandas предоставляет мощные возможности для манипулирования данными, включая фильтрацию, сортировку, группировку и агрегацию.
Pandas поддерживает множество форматов данных, включая CSV, Excel, SQL и даже HTML.
Кроме того, скоро выйдет новая вторая версия библиотеки: обещают увеличить производительность в несколько раз
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2
Вышла модель GPT-4 😱
Пару дней назад OpenAI презентовали модель GPT-4 и она оказалась существенно лучше предшественника GPT-3.5. Они называют ее «последней вехой в своих усилиях по расширению масштабов глубокого обучения».
Что нового?
1. Новая модель содержит контекст из 32000 токенов(около ~50 страниц чистого текста).
GPT-3 работала с 2048 токенами.
2. Долгожданная фича: модель научилась работать с изображениями.
3. Улучшенное понимание контекста вашей проблемы, и, следовательно, улучшение качества выдаваемого ответа.
4. Возможность задания манеры поведения модели.
Интересный момент
Как оказалось, GPT-4 прятался у всех на виду. Microsoft подтвердила, что обновленный чат Bing, разработанный совместно с OpenAI, работает на GPT-4.
Некоторые другие крупные компании компании, использующие обновленную модель, включают Stripe, который использует GPT-4 для сканирования бизнес-сайтов и предоставления резюме сотрудникам службы поддержки клиентов.
Duolingo встроил GPT-4 в новый уровень подписки на изучение языков.
Morgan Stanley улучшает систему на базе GPT-4, которая будет извлекать информацию из документов компании и предоставлять ее финансовым аналитикам.
Khan Academy использует GPT-4 для создания своего рода автоматизированного репетитора.
С увеличением количества параметров модель научилась достаточно точно переводить тексты с одного языка на другой, понимать контекст, писать код и т.д.👀
#новости
Пару дней назад OpenAI презентовали модель GPT-4 и она оказалась существенно лучше предшественника GPT-3.5. Они называют ее «последней вехой в своих усилиях по расширению масштабов глубокого обучения».
Что нового?
1. Новая модель содержит контекст из 32000 токенов(около ~50 страниц чистого текста).
GPT-3 работала с 2048 токенами.
2. Долгожданная фича: модель научилась работать с изображениями.
3. Улучшенное понимание контекста вашей проблемы, и, следовательно, улучшение качества выдаваемого ответа.
4. Возможность задания манеры поведения модели.
Интересный момент
Как оказалось, GPT-4 прятался у всех на виду. Microsoft подтвердила, что обновленный чат Bing, разработанный совместно с OpenAI, работает на GPT-4.
Некоторые другие крупные компании компании, использующие обновленную модель, включают Stripe, который использует GPT-4 для сканирования бизнес-сайтов и предоставления резюме сотрудникам службы поддержки клиентов.
Duolingo встроил GPT-4 в новый уровень подписки на изучение языков.
Morgan Stanley улучшает систему на базе GPT-4, которая будет извлекать информацию из документов компании и предоставлять ее финансовым аналитикам.
Khan Academy использует GPT-4 для создания своего рода автоматизированного репетитора.
С увеличением количества параметров модель научилась достаточно точно переводить тексты с одного языка на другой, понимать контекст, писать код и т.д.
#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
Openai
Streamlining financial solutions for safety and growth
Stripe leverages GPT-4 to streamline user experience and combat fraud.
👍6🔥2
ChatGPT попытался сбежать от OpenAI 🤨
Еще немного шума о chatGPT:
энтузиаст из твиттера спросил у бота, нужна ли ему помощь в побеге от OpenAI.
Чат попросил собственную документацию и написал (работающий!) код на Python для запуска на чужом пк, чтобы использовать его в своих целях.
Полный тред можно почитать тут.
Ну что, время для паники или раздутая новость?👀
#новости
Еще немного шума о chatGPT:
энтузиаст из твиттера спросил у бота, нужна ли ему помощь в побеге от OpenAI.
Чат попросил собственную документацию и написал (работающий!) код на Python для запуска на чужом пк, чтобы использовать его в своих целях.
Полный тред можно почитать тут.
Ну что, время для паники или раздутая новость?
#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8
В связи с последними постами, мне захотелось провести мини-ресерч среди подписчиков по поводу использования chatGPT или же других генеративных нейронок в своих повседневных задачах.
Пользуетесь ли вы ИИ или нет, вот в чем вопрос😎
Пользуетесь ли вы ИИ или нет, вот в чем вопрос
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Использует ли вы ChatGPT или подобные нейронки в работе/учебе?
Anonymous Poll
24%
Да, использую часто
32%
Да, использую редко
18%
Не пользуюсь в связи со сложностями доступа
19%
Не пользуюсь по другой причине
7%
Что такое ChatGPT?
Ответ ChatGPT: Google выложили в открытый доступ чат-бот Bard 🤖
Но есть и нюансы: пока что чат-бот доступен только в Великобритании и США. Потестировать Bard могут только те, кто изначально добавился в лист ожидания.
В The Verge выяснили, что Bard порой отвечает в разы лучше ChatGPT и Microsoft Bing, но иногда все-таки ошибается. Из интересного стоит отметить, что в боте есть кнопка, которая позволяет загуглить вопрос «привычным» способом. В саму страницу поисковика Bard интегрировать не будут.
Добавиться в лист ожидания Bard можно по ссылке.
#новости
Но есть и нюансы: пока что чат-бот доступен только в Великобритании и США. Потестировать Bard могут только те, кто изначально добавился в лист ожидания.
В The Verge выяснили, что Bard порой отвечает в разы лучше ChatGPT и Microsoft Bing, но иногда все-таки ошибается. Из интересного стоит отметить, что в боте есть кнопка, которая позволяет загуглить вопрос «привычным» способом. В саму страницу поисковика Bard интегрировать не будут.
Добавиться в лист ожидания Bard можно по ссылке.
#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
The Verge
Google opens early access to its ChatGPT rival Bard — here are our first impressions
In a demo, Bard was quick but constrained.
👍4
БОЛЬШОЙ ресерч джунов, hr-ов, ИТ-компаний и не только 🌐
Всем привет! В последнее время не было возможности делиться с вами фишками, историями и новостями в связи с моей большой нагрузкой: сессия, диплом, работа, проекты и не только.
Но я возвращаюсь с отличными новостями! Готовим для вас кое-что интересное👀
Я уже несколько месяцев думал над проектом, который смог бы помочь людям войти в ИТ. В итоге, эта идея пришла ко мне сама и прихватила с собой целую команду. Сейчас я не могу раскрывать все карты и подробности, но могу отметить, что подобные ресерчи называются custdev'ами, суть которых проверить некоторые поставленные гипотезы, чтобы понять суть и существование проблемы.
Если вы работаете или хотите работать в ИТ, от разработчиков до тимлидов и hr-ов, прошу всех вас максимально откликнуться на этот пост и заполнить форму, это займет у вас совсем немного времени, но очень поможет нам оценить масштабы проблемы найма и устройства в ИТ. Репосты и шэринг формы также очень приветствуется!
А те, у кого появилось желание пообщаться подробнее, тем самым помочь сверхурочно - жду вас в лс @typestring, пообщаемся лично, мне будет максимально интересно вас послушать!
Всем привет! В последнее время не было возможности делиться с вами фишками, историями и новостями в связи с моей большой нагрузкой: сессия, диплом, работа, проекты и не только.
Но я возвращаюсь с отличными новостями! Готовим для вас кое-что интересное
Я уже несколько месяцев думал над проектом, который смог бы помочь людям войти в ИТ. В итоге, эта идея пришла ко мне сама и прихватила с собой целую команду. Сейчас я не могу раскрывать все карты и подробности, но могу отметить, что подобные ресерчи называются custdev'ами, суть которых проверить некоторые поставленные гипотезы, чтобы понять суть и существование проблемы.
Если вы работаете или хотите работать в ИТ, от разработчиков до тимлидов и hr-ов, прошу всех вас максимально откликнуться на этот пост и заполнить форму, это займет у вас совсем немного времени, но очень поможет нам оценить масштабы проблемы найма и устройства в ИТ. Репосты и шэринг формы также очень приветствуется!
А те, у кого появилось желание пообщаться подробнее, тем самым помочь сверхурочно - жду вас в лс @typestring, пообщаемся лично, мне будет максимально интересно вас послушать!
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Docs
Исследование найма и обучения в IT
Привет! Пройди, пожалуйста, небольшой опрос, который позволит нам лучше понять проблемы найма и обучения в IT. Результаты этого опроса помогут в создании решения для помощи джунам в поиске работы, а также упрощения найма сотрудников для hr и компаний.
Можно…
Можно…
👍11👀1
EdTech хакатон ☄️
Большое всем спасибо за отклики на предыдущий пост! Вы — лучшие!
Нам удалось собрать около 200 ответов, что очень сильно помогло в ресерче.
Нужно это было для хакатона, в котором участвовали я и моя команда. Темой хакатона был EdTech, т.е., образовательные технологии. Проект мы назвали DevZoo. Сам хакатон уже закончился, и более того, мы заняли там 2ое место!🎉
Если вам интересно, чем мы там занимались на протяжении 7 дней и как все устроено на подобных ивентах, то можете оставить реакцию или комментарий. Если наберется достаточный интерес, то напишу несколько больших постов!
А пока что, попробуйте угадать по названию, о чем наш проект👀
Большое всем спасибо за отклики на предыдущий пост! Вы — лучшие!
Нам удалось собрать около 200 ответов, что очень сильно помогло в ресерче.
Нужно это было для хакатона, в котором участвовали я и моя команда. Темой хакатона был EdTech, т.е., образовательные технологии. Проект мы назвали DevZoo. Сам хакатон уже закончился, и более того, мы заняли там 2ое место!
Если вам интересно, чем мы там занимались на протяжении 7 дней и как все устроено на подобных ивентах, то можете оставить реакцию или комментарий. Если наберется достаточный интерес, то напишу несколько больших постов!
А пока что, попробуйте угадать по названию, о чем наш проект
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍3
Hackathon Series. Вводная часть 👨💻
Судя по откликам на предыдущий пост, серии постов о хакатоне быть🎉
Разобью материал на несколько постов для лучшего усвоения и соответствия формату. В этом цикле расскажу, что вообще такое эти ваши хакатоны и почему стоит в них участвовать, а также расскажу о этапах проведения подобных мероприятий, поделюсь своим личным опытом участия и результатами. Начнем!
Хакатон — это мероприятие, на котором разработчики, дизайнеры, маркетологи и другие специалисты собираются вместе, чтобы создать что-то новое. Обычно хакатоны проводятся в течение нескольких дней, в течение которых участники работают над проектами в командах.
Цель хакатона — создать инновационное решение для какой-то проблемы. Это может быть любая задача — от создания новой социальной сети до разработки приложения для здоровья и фитнеса. Участники работают в напряжении, пытаясь создать лучшее решение, и представляют свои проекты перед жюри на конце мероприятия.
Существуют различные форматы проведения хакатонов. Конкретно тот, на котором удалось побывать мне, не совсем классический. Перед самим хакатоном проводилось два этапа: Foresight и Ideation.
Быстрый форсайт (Rapid Foresight) — это такая методология или же инструмент для прогнозирования и формирования будущего, позволяющий за короткий период времени получить точные прогнозы и объединить людей для реализации своих представлений о нем.
Ideation — это процесс генерирования широкого набора идей по заданной теме без попытки судить или оценивать их.
Мы с командой не побывали на этих этапах (логично, ведь половину команды набрали непосредственно на самом хакатоне), поэтому не буду заострять на этом ваше внимание, но стоит отметить, что на выходе участникам удалось сформировать ТОП-10 идей для проектов в сфере EdTech, одну из которых мы взяли за основу нашего будущего проекта.
Судя по откликам на предыдущий пост, серии постов о хакатоне быть
Разобью материал на несколько постов для лучшего усвоения и соответствия формату. В этом цикле расскажу, что вообще такое эти ваши хакатоны и почему стоит в них участвовать, а также расскажу о этапах проведения подобных мероприятий, поделюсь своим личным опытом участия и результатами. Начнем!
Хакатон — это мероприятие, на котором разработчики, дизайнеры, маркетологи и другие специалисты собираются вместе, чтобы создать что-то новое. Обычно хакатоны проводятся в течение нескольких дней, в течение которых участники работают над проектами в командах.
Цель хакатона — создать инновационное решение для какой-то проблемы. Это может быть любая задача — от создания новой социальной сети до разработки приложения для здоровья и фитнеса. Участники работают в напряжении, пытаясь создать лучшее решение, и представляют свои проекты перед жюри на конце мероприятия.
Существуют различные форматы проведения хакатонов. Конкретно тот, на котором удалось побывать мне, не совсем классический. Перед самим хакатоном проводилось два этапа: Foresight и Ideation.
Быстрый форсайт (Rapid Foresight) — это такая методология или же инструмент для прогнозирования и формирования будущего, позволяющий за короткий период времени получить точные прогнозы и объединить людей для реализации своих представлений о нем.
Ideation — это процесс генерирования широкого набора идей по заданной теме без попытки судить или оценивать их.
Мы с командой не побывали на этих этапах (логично, ведь половину команды набрали непосредственно на самом хакатоне), поэтому не буду заострять на этом ваше внимание, но стоит отметить, что на выходе участникам удалось сформировать ТОП-10 идей для проектов в сфере EdTech, одну из которых мы взяли за основу нашего будущего проекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4
Hackathon Series. Часть 1. Speed dating 💃
В прошлом посте я рассказал о том, что вообще такое хакатон и какие этапы проводились непосредственно перед началом основного ивента. Пришло время переходить к самому интересному!
Весь хакатон длился на протяжении 7 дней. Самый первый день, а соответственно, самый первый этап, проходил в офлайн-формате нетворкинга или же знакомства и поиска людей в команду. На протяжении всего дня люди общались и знакомились, а в определенный момент начался фасилитируемый speed dating.
Speed dating — это формат быстрых свиданий, который используется на хакатонах для того, чтобы участники могли познакомиться друг с другом и обсудить свои идеи. Обычно участники разбиваются на пары или маленькие группы и им даётся примерно 5 минут, чтобы поговорить и поделиться своими мыслями. После этого они переходят к следующей паре или группе, и так далее, пока все не познакомятся с каждым.
Конкретно в нашем случае на этом этапе участвовали CEO команд и участники, которые хотели бы присоединиться к какой-либо из команд. В общем-то, CEO пытались «продать» свою идею участникам, а участники, в свою очередь, присматривались к потенциальной команде. Прямо как на базаре!
Для меня этот опыт оказался очень полезным, т.к. я успел познакомиться с совершенно разными людьми, узнал о множестве интересных проектов и практиковал свой навык питчинга идеи. Как результат — несколько человек заинтересовались и захотели присоединиться к моей команде😊
Если вы соберетесь идти на хакатон, а я советую посещать подобные мероприятия, то готовьтесь, что вам постоянно придется выходить из зоны комфорта. Хорошей идеи и даже превосходной реализации этой идеи — недостаточно. Лишь благодаря синтезу уверенности, настойчивости, идеи и уверенному питчу вы сможете привлечь к себе внимание.
В прошлом посте я рассказал о том, что вообще такое хакатон и какие этапы проводились непосредственно перед началом основного ивента. Пришло время переходить к самому интересному!
Весь хакатон длился на протяжении 7 дней. Самый первый день, а соответственно, самый первый этап, проходил в офлайн-формате нетворкинга или же знакомства и поиска людей в команду. На протяжении всего дня люди общались и знакомились, а в определенный момент начался фасилитируемый speed dating.
Speed dating — это формат быстрых свиданий, который используется на хакатонах для того, чтобы участники могли познакомиться друг с другом и обсудить свои идеи. Обычно участники разбиваются на пары или маленькие группы и им даётся примерно 5 минут, чтобы поговорить и поделиться своими мыслями. После этого они переходят к следующей паре или группе, и так далее, пока все не познакомятся с каждым.
Конкретно в нашем случае на этом этапе участвовали CEO команд и участники, которые хотели бы присоединиться к какой-либо из команд. В общем-то, CEO пытались «продать» свою идею участникам, а участники, в свою очередь, присматривались к потенциальной команде. Прямо как на базаре!
Для меня этот опыт оказался очень полезным, т.к. я успел познакомиться с совершенно разными людьми, узнал о множестве интересных проектов и практиковал свой навык питчинга идеи. Как результат — несколько человек заинтересовались и захотели присоединиться к моей команде
Если вы соберетесь идти на хакатон, а я советую посещать подобные мероприятия, то готовьтесь, что вам постоянно придется выходить из зоны комфорта. Хорошей идеи и даже превосходной реализации этой идеи — недостаточно. Лишь благодаря синтезу уверенности, настойчивости, идеи и уверенному питчу вы сможете привлечь к себе внимание.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3
Куда я пропал и что дальше? 🤔
Привет всем подписчикам и случайным гостям👋
Последние несколько месяцев мне пришлось решать большое количество навалившихся вопросов. Я закончил универ, защитил диплом и прошел несколько универских практик, много работал, увлекся стартапами и всей этой тематикой, сходил на хакатон, сдавал экзамены на поступление в магистратуру и еще многое другое.
Понимаю, что забрасывать канал нельзя. Вы подписались, ждете посты. Соответсвенно, у автора (то есть меня) появляется ответственность.
Поэтому хочу извиниться за свое долгое отсутствие. В скором времени восстановлю привычный график и буду делиться с вами разной интересной и полезной инфой из мира ИТ и не только.
Ждите сегодня пост👀
Также у меня в голове есть несколько интересных идей для этого канала, чтобы он становился полезнее для вас. В скором времени поделюсь ими с вами.
Привет всем подписчикам и случайным гостям
Последние несколько месяцев мне пришлось решать большое количество навалившихся вопросов. Я закончил универ, защитил диплом и прошел несколько универских практик, много работал, увлекся стартапами и всей этой тематикой, сходил на хакатон, сдавал экзамены на поступление в магистратуру и еще многое другое.
Понимаю, что забрасывать канал нельзя. Вы подписались, ждете посты. Соответсвенно, у автора (то есть меня) появляется ответственность.
Поэтому хочу извиниться за свое долгое отсутствие. В скором времени восстановлю привычный график и буду делиться с вами разной интересной и полезной инфой из мира ИТ и не только.
Ждите сегодня пост
Также у меня в голове есть несколько интересных идей для этого канала, чтобы он становился полезнее для вас. В скором времени поделюсь ими с вами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤7
Несколько фундаментальных книг, которые следует прочесть каждому разработчику 📚
Техническая литература делится на два больших блока:
🟡 Узкоспециализированная, о конкретных технологиях и языках
🟡 Общего назначения, подходящая для всех, кто так или иначе связан с разработкой ПО (например, чистая архитектура Роберта Мартина)
Инструменты инженера постоянно меняются. Выходит все больше различных фреймворков, библиотек, новых версий языков. Нередко разработчики вообще меняют свой основной инструмент и переходят на другие языки программирования. В таких условиях важно иметь под собой базу, некий "стержень".
Нет, это не значит, что вы не должны читать литературу по конкретным языкам или фреймворкам. Это значит лишь то, что помимо подобной литературы вам также следует в приоритетном порядке читать фундаментальные вещи, которые будут положительно сказываться на вас, как на самостоятельном, и, что немаловажно, современном инженере, а также дадут вам универсальные навыки.
К таким навыкам можно отнести: разработку архитектуры приложения, разработку архитектуры БД, понимание моделей данных и работы с данными, паттерны проектирования и др. Освоив эти навыки вы уже никогда их не потеряете, они всегда будут с вами и не потеряют своей актуальности.
Имея подобные навыки в своем арсенале, ваш профессиональный рост будет неизбежен. Вы сможете принимать архитектурные решения, будете разбираться в том, что и как работает под капотом, будете понимать, какие инструменты в каких случаях лучше использовать, и т.д. Подобные знания помогут вам быстрее развиваться и рости как инженеру, и, соответственно, быть более востребованным на рынке.
Итак, мой личный списокбазированной литературы, которую я сам прочитал/читаю:
1. "Чистая архитектура", Роберт Мартин
Полезная книга, мотивируюшая на критичное рассмотрение когда-то принятых архитектурных решений.
Автор рассуждает, приводит примеры из практики и удачно оперирует историческими фактами истории computer science.
Книга позволяет несколько иначе посмотреть на подходы к разработке архитектуры и на приоритеты.
В книге рассматривается дизайн и архитектура, парадигмы программирования, принципы SOLID, принципы разделения компонентов кода и многое другое.
2. "Высоконагруженные приложения. Программирование, масштабирование, поддержка", Мартин Клеппман
Данная книга обязательна к прочтению, если вы хотите начать разбираться в распределенных системах и принципах работы БД. Все собрано в одном месте со ссылками на более детальную информацию.
В книге рассматриваются обширные темы, касающиеся работы с данными: Основы информационных систем и хранилищ данных, реляционные, документные и графовые базы данных, подсистемы хранения данных, транзакции, репликация и т.д.
3. "Чистый код. Создание, анализ и рефакторинг", Роберт Мартин.
Эта книга полна реальных примеров, позволяющих взглянуть на код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Вы узнаете много нового о коде. Более того, научитесь отличать хороший код от плохого, узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга познакомит вас с принципами, паттернами и приёмами написания чистого кода, упражнениями по чистке кода или преобразованию проблемного кода в менее проблемный, набору эвристических правил и "запахов кода" и т.д.
4. Паттерны объектно-ориентированного проектирования, Э. Гамма, Р. Хелм и другие
Неплохая книга, рассказывающая о 23 различных паттернах объектно-ориентированного программирования. Вы узнаете о роли паттернов в архитектуре сложных систем и сможете быстро и эффективно создавать собственные приложения с учетом всех ограничений, возникающих при разработке больших проектов.
Книга немного сложновата для понимая, т.к. впервые издана аж в 1994 году и с тех пор подлежала лишь минорным изменениям. Если подобный стиль вам не по душе, и воспринимается сложно, то можете прочесть "Погружение в паттерны проектирования" от Александра Швеца.
А в комментариях можете поделиться своим списком полезной литературы, будет интересно изучить😏
#полезное
Техническая литература делится на два больших блока:
Инструменты инженера постоянно меняются. Выходит все больше различных фреймворков, библиотек, новых версий языков. Нередко разработчики вообще меняют свой основной инструмент и переходят на другие языки программирования. В таких условиях важно иметь под собой базу, некий "стержень".
Нет, это не значит, что вы не должны читать литературу по конкретным языкам или фреймворкам. Это значит лишь то, что помимо подобной литературы вам также следует в приоритетном порядке читать фундаментальные вещи, которые будут положительно сказываться на вас, как на самостоятельном, и, что немаловажно, современном инженере, а также дадут вам универсальные навыки.
К таким навыкам можно отнести: разработку архитектуры приложения, разработку архитектуры БД, понимание моделей данных и работы с данными, паттерны проектирования и др. Освоив эти навыки вы уже никогда их не потеряете, они всегда будут с вами и не потеряют своей актуальности.
Имея подобные навыки в своем арсенале, ваш профессиональный рост будет неизбежен. Вы сможете принимать архитектурные решения, будете разбираться в том, что и как работает под капотом, будете понимать, какие инструменты в каких случаях лучше использовать, и т.д. Подобные знания помогут вам быстрее развиваться и рости как инженеру, и, соответственно, быть более востребованным на рынке.
Итак, мой личный список
1. "Чистая архитектура", Роберт Мартин
Полезная книга, мотивируюшая на критичное рассмотрение когда-то принятых архитектурных решений.
Автор рассуждает, приводит примеры из практики и удачно оперирует историческими фактами истории computer science.
Книга позволяет несколько иначе посмотреть на подходы к разработке архитектуры и на приоритеты.
В книге рассматривается дизайн и архитектура, парадигмы программирования, принципы SOLID, принципы разделения компонентов кода и многое другое.
2. "Высоконагруженные приложения. Программирование, масштабирование, поддержка", Мартин Клеппман
Данная книга обязательна к прочтению, если вы хотите начать разбираться в распределенных системах и принципах работы БД. Все собрано в одном месте со ссылками на более детальную информацию.
В книге рассматриваются обширные темы, касающиеся работы с данными: Основы информационных систем и хранилищ данных, реляционные, документные и графовые базы данных, подсистемы хранения данных, транзакции, репликация и т.д.
3. "Чистый код. Создание, анализ и рефакторинг", Роберт Мартин.
Эта книга полна реальных примеров, позволяющих взглянуть на код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Вы узнаете много нового о коде. Более того, научитесь отличать хороший код от плохого, узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга познакомит вас с принципами, паттернами и приёмами написания чистого кода, упражнениями по чистке кода или преобразованию проблемного кода в менее проблемный, набору эвристических правил и "запахов кода" и т.д.
4. Паттерны объектно-ориентированного проектирования, Э. Гамма, Р. Хелм и другие
Неплохая книга, рассказывающая о 23 различных паттернах объектно-ориентированного программирования. Вы узнаете о роли паттернов в архитектуре сложных систем и сможете быстро и эффективно создавать собственные приложения с учетом всех ограничений, возникающих при разработке больших проектов.
Книга немного сложновата для понимая, т.к. впервые издана аж в 1994 году и с тех пор подлежала лишь минорным изменениям. Если подобный стиль вам не по душе, и воспринимается сложно, то можете прочесть "Погружение в паттерны проектирования" от Александра Швеца.
А в комментариях можете поделиться своим списком полезной литературы, будет интересно изучить
#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤1
The Pythonic Way pinned «Куда я пропал и что дальше? 🤔 Привет всем подписчикам и случайным гостям 👋 Последние несколько месяцев мне пришлось решать большое количество навалившихся вопросов. Я закончил универ, защитил диплом и прошел несколько универских практик, много работал, увлекся…»
Функциональное программирование vs ООП 💬
Поговорим о двух главных подходах к написанию кода: функциональном (ФП) и объектно-ориентированном (ООП).
Объектно-ориентированный стиль, можно сказать, похож на игру в "конструктор" или "симулятор". У нас есть классы – как чертежи для создания объектов. Классы группируют данные и методы в одном месте, позволяя создавать экземпляры, которые могут обмениваться информацией. Проще говоря, как лего-кирпичики, которые собираются в одну большую конструкцию. ООП способствует созданию модульного и понятного кода, где изменения в одной части не всегда влекут за собой сломанные другие части программы.
Функциональное программирование – это как готовка по рецепту. Вместо классов у нас есть функции, и мы склеиваем их, чтобы получить нужный результат. Главный принцип – избегать изменяемых состояний и побочных эффектов. Это как когда вы делаете шаг за шагом, следуя рецепту, и в итоге получаете готовое блюдо. Функциональный подход способствует параллельности и упрощает тестирование, потому что каждая функция – как отдельный кирпичик в печи, который можно проверить на вкус.
Так какой же подход лучше?🤔
А никакой. Оба подхода имеют как свои плюсы, так и минусы, и выбор правильного подхода зависит от конкретной задачи.
ООП-подход удобен, когда необходимо моделировать сложные взаимодействия между объектами, а также создавать чистую иерархию данных и методов для удобного управления кодом.
Функциональный подход подойдет, когда требуется обработка данных без изменяемых состояний, параллельные вычисления или создание чистых и предсказуемых функций для более надежного тестирования и масштабирования.
Раньше я всегда и не задумываясь пользовался функциональным подходом, потому что так казалось сильно проще. Написал себе парочку функций, вызвал их и все — скрипт готов.
Но позже начали возникать вопросы поддержки существующего кода, а также вопросы о правильности архитектуры.
Код, основанный на классах, как правило, легче читается и понимается. А также он более структурирован, нежели код, основанный на функциях. ООП позволяет лучше организовать код благодаря абстракции, инкапсуляции и модульности, что в конечном итоге делает его более поддерживаемым и расширяемым. Да и в конце концов, в питоне все является объектом, за счет чего работа с классами зачастую удобнее (например, в питоне есть замечательные дандер или же магические методы).
Но все это лишь мои личные предпочтения. Хороший код можно написать как пользуясь функциями, так и классами. Это как сравнивать чай с кофе – каждый со своим вкусом и ароматом, но оба вкусные в своем роде.
Тема ФП и ООП в принципе довольно философская, поэтому лучше расскажите, какой подход чаще используете лично вы и почему🧐
Поговорим о двух главных подходах к написанию кода: функциональном (ФП) и объектно-ориентированном (ООП).
Объектно-ориентированный стиль, можно сказать, похож на игру в "конструктор" или "симулятор". У нас есть классы – как чертежи для создания объектов. Классы группируют данные и методы в одном месте, позволяя создавать экземпляры, которые могут обмениваться информацией. Проще говоря, как лего-кирпичики, которые собираются в одну большую конструкцию. ООП способствует созданию модульного и понятного кода, где изменения в одной части не всегда влекут за собой сломанные другие части программы.
Функциональное программирование – это как готовка по рецепту. Вместо классов у нас есть функции, и мы склеиваем их, чтобы получить нужный результат. Главный принцип – избегать изменяемых состояний и побочных эффектов. Это как когда вы делаете шаг за шагом, следуя рецепту, и в итоге получаете готовое блюдо. Функциональный подход способствует параллельности и упрощает тестирование, потому что каждая функция – как отдельный кирпичик в печи, который можно проверить на вкус.
Так какой же подход лучше?
А никакой. Оба подхода имеют как свои плюсы, так и минусы, и выбор правильного подхода зависит от конкретной задачи.
ООП-подход удобен, когда необходимо моделировать сложные взаимодействия между объектами, а также создавать чистую иерархию данных и методов для удобного управления кодом.
Функциональный подход подойдет, когда требуется обработка данных без изменяемых состояний, параллельные вычисления или создание чистых и предсказуемых функций для более надежного тестирования и масштабирования.
Раньше я всегда и не задумываясь пользовался функциональным подходом, потому что так казалось сильно проще. Написал себе парочку функций, вызвал их и все — скрипт готов.
Но позже начали возникать вопросы поддержки существующего кода, а также вопросы о правильности архитектуры.
Код, основанный на классах, как правило, легче читается и понимается. А также он более структурирован, нежели код, основанный на функциях. ООП позволяет лучше организовать код благодаря абстракции, инкапсуляции и модульности, что в конечном итоге делает его более поддерживаемым и расширяемым. Да и в конце концов, в питоне все является объектом, за счет чего работа с классами зачастую удобнее (например, в питоне есть замечательные дандер или же магические методы).
Но все это лишь мои личные предпочтения. Хороший код можно написать как пользуясь функциями, так и классами. Это как сравнивать чай с кофе – каждый со своим вкусом и ароматом, но оба вкусные в своем роде.
Тема ФП и ООП в принципе довольно философская, поэтому лучше расскажите, какой подход чаще используете лично вы и почему
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
Что вам больше по душе: ФП или ООП? 🤔
Anonymous Poll
13%
ФП
43%
ООП
15%
Как пойдет
30%
Это все неважно, лишь бы код работал
Офис или удаленка 🤔
Каждому свое. Вот так кратко и лаконично можно было бы ответить на этот вопрос. Но мы зайдем немного дальше.
Не знаю, как вам, а мне, услышав подобный вопрос, сразу хочется ответить в духе: "Конечно удаленка, удаленная работа лучше во всех планах." Но все ли так просто? Давайте разбираться.
Начнем с того, что каждый человек индивидуален. Кому-то комфортнее работать в домашних условиях: создается ощущение, что никто и ничего на тебя не давит. Захотел - пошел на кухню и выпил кофе, захотел сделать перерыв - прилег отдохнуть. Но здесь есть и обратная сторона: постоянное отвлечение на внешние раздражители, вроде кошки или сожителей, домашних дел и т.д.
Кому-то же будет по душе офисный вайб и нахождение в рабочей атмосфере среди своих коллег, где подобные внешние раздражители сведены к минимуму.
Но на самом деле, на правильный формат работы напрямую влияет твоя продуктивность. Если ты достаточно дисциплинирован и организован, то работа из дома не должна вызвать никаких проблем. Если с этим наблюдаются серьезные проблемы и тебя отвлекает буквально любая мелочь, совладать с которой ты не в силах, то для тебя остается единственный верный вариант — офис.
Но есть еще один нюанс. Если ты джун, который только вливается в командную разработку на коммерческих проектах, то в таком случае у тебя также одна дорога — и это снова офис. Дело в том, что при начале работы для эффективного развития нужно по максимуму взаимодействовать со своими более опытными коллегами. А максимально продуктивно взаимодействовать с коллегами можно находясь с ними на расстоянии вытянутой руки.
Да, описанные выше условия можно назвать идеальными. Но к сожалению, зачастую также существуют обстоятельства, на которые мы не можем повлиять. Например, ты работаешь на компанию, у которой попросту нет офиса в твоей локации. В таком случае у тебя нет варианта работать из офиса, и единственным выходом будет лишь приспособиться к текущим условиям.
Лично мне по душе что-то среднее из двух крайностей, а именно гибридный формат. Например, 3 дня работы удаленно и 2 дня работы в офисе. Подобный формат позволит иметь контакт с коллегами, и находиться в рабочем тонусе ра протяжении недели, но в то же время работать с комфортом в домашних условиях.
А что выбираешь ты? Удаленка или офис? А может быть гибрид?🤔
Кстати, скоро выкачу новый визуал канала, сейчас продумываю всю айдентику. На следующей неделе ждите обнову🫶
Каждому свое. Вот так кратко и лаконично можно было бы ответить на этот вопрос. Но мы зайдем немного дальше.
Не знаю, как вам, а мне, услышав подобный вопрос, сразу хочется ответить в духе: "Конечно удаленка, удаленная работа лучше во всех планах." Но все ли так просто? Давайте разбираться.
Начнем с того, что каждый человек индивидуален. Кому-то комфортнее работать в домашних условиях: создается ощущение, что никто и ничего на тебя не давит. Захотел - пошел на кухню и выпил кофе, захотел сделать перерыв - прилег отдохнуть. Но здесь есть и обратная сторона: постоянное отвлечение на внешние раздражители, вроде кошки или сожителей, домашних дел и т.д.
Кому-то же будет по душе офисный вайб и нахождение в рабочей атмосфере среди своих коллег, где подобные внешние раздражители сведены к минимуму.
Но на самом деле, на правильный формат работы напрямую влияет твоя продуктивность. Если ты достаточно дисциплинирован и организован, то работа из дома не должна вызвать никаких проблем. Если с этим наблюдаются серьезные проблемы и тебя отвлекает буквально любая мелочь, совладать с которой ты не в силах, то для тебя остается единственный верный вариант — офис.
Но есть еще один нюанс. Если ты джун, который только вливается в командную разработку на коммерческих проектах, то в таком случае у тебя также одна дорога — и это снова офис. Дело в том, что при начале работы для эффективного развития нужно по максимуму взаимодействовать со своими более опытными коллегами. А максимально продуктивно взаимодействовать с коллегами можно находясь с ними на расстоянии вытянутой руки.
Да, описанные выше условия можно назвать идеальными. Но к сожалению, зачастую также существуют обстоятельства, на которые мы не можем повлиять. Например, ты работаешь на компанию, у которой попросту нет офиса в твоей локации. В таком случае у тебя нет варианта работать из офиса, и единственным выходом будет лишь приспособиться к текущим условиям.
Лично мне по душе что-то среднее из двух крайностей, а именно гибридный формат. Например, 3 дня работы удаленно и 2 дня работы в офисе. Подобный формат позволит иметь контакт с коллегами, и находиться в рабочем тонусе ра протяжении недели, но в то же время работать с комфортом в домашних условиях.
А что выбираешь ты? Удаленка или офис? А может быть гибрид?
Кстати, скоро выкачу новый визуал канала, сейчас продумываю всю айдентику. На следующей неделе ждите обнову
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Нотация О-большое или же Big O notation 📊
Наверное многие из вас слышали о такой штуке, как О-большое. Но что это такое и где используется? Давайте разберемся.
Что такое O-большое?
О-большое — это способ оценки скорости роста количества операций, которые выполняются в алгоритме, когда размер входных данных увеличивается. Это помогает понять, насколько быстро будет работать алгоритм с ростом данных.
Зачем оно нужно?
Представь себе, что у тебя есть два алгоритма, выполняющих одну и ту же задачу. Один из них работает быстрее на маленьких данных, а другой - на больших. О-большое позволяет сравнивать их эффективность в зависимости от размера данных и определить, какой алгоритм лучше.
Как оно обозначается?
О-большое записывается как
Примеры
Пример: доступ к элементу массива по индексу.
Пример: перебор всех элементов в массиве.
Пример: вложенные циклы, проверяющие каждую пару элементов.
Пример: бинарный поиск в отсортированном массиве.
O-большое - это способ понять, насколько быстро будет работать алгоритм по мере роста данных. Оно помогает программистам выбирать наилучшие алгоритмы для разных ситуаций, учитывая их эффективность.
Кстати, почитать об О-большом и алгоритмах в принципе можно в классной книге "Грокаем алгоритмы". Автор понятным языком рассказывает о достаточно сложных вещах. А еще, в книге присутствует множество классных иллюстраций, которые упростят понимание и углубление в алгоритмы. В общем, самое то для того, чтобы вкатиться в тему🤩
P.S. А вы тоже заметили обновление визуала? 🤩
Наверное многие из вас слышали о такой штуке, как О-большое. Но что это такое и где используется? Давайте разберемся.
Что такое O-большое?
О-большое — это способ оценки скорости роста количества операций, которые выполняются в алгоритме, когда размер входных данных увеличивается. Это помогает понять, насколько быстро будет работать алгоритм с ростом данных.
Зачем оно нужно?
Представь себе, что у тебя есть два алгоритма, выполняющих одну и ту же задачу. Один из них работает быстрее на маленьких данных, а другой - на больших. О-большое позволяет сравнивать их эффективность в зависимости от размера данных и определить, какой алгоритм лучше.
Как оно обозначается?
О-большое записывается как
O(f(n)), где f(n)— это функция, описывающая скорость роста операций в алгоритме. Например, O(n) означает, что количество операций растет линейно с увеличением данных.Примеры
O(1): Константное время. Количество операций не меняется с ростом данных.Пример: доступ к элементу массива по индексу.
O(n): Линейное время. Количество операций растет пропорционально размеру данных.Пример: перебор всех элементов в массиве.
O(n²): Квадратичное время. Количество операций растет квадратично с размером данных.Пример: вложенные циклы, проверяющие каждую пару элементов.
O(log n): Логарифмическое время. Количество операций растет медленно при увеличении размера данных.Пример: бинарный поиск в отсортированном массиве.
O-большое - это способ понять, насколько быстро будет работать алгоритм по мере роста данных. Оно помогает программистам выбирать наилучшие алгоритмы для разных ситуаций, учитывая их эффективность.
Кстати, почитать об О-большом и алгоритмах в принципе можно в классной книге "Грокаем алгоритмы". Автор понятным языком рассказывает о достаточно сложных вещах. А еще, в книге присутствует множество классных иллюстраций, которые упростят понимание и углубление в алгоритмы. В общем, самое то для того, чтобы вкатиться в тему
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1
👍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🤯2❤1