Как стать автором
Обновить
179
0
Тимур Гуев @tguev

Основатель BEEGEEK, автор курсов Поколение Python

Отправить сообщение

Шахматные задачи от Поколения

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров12K

Уже много лет, начиная с 1966 года, во всем мире 20 июля отмечают Международный день шахмат. В честь недавно прошедшего праздника мы решили написать статью, в которой поговорим о шахматных задачах из курсов "Поколение Python".

Так получилось, что шахматные задачи являются одной из главных визиток наших курсов. Мы любим эти задачи потому, что они учат строить алгоритмы, находить закономерности, а также позволяют отточить работу с условными (if-else) и логическими (and и or) операторами.

Читать далее
Всего голосов 24: ↑20 и ↓4+19
Комментарии17

Моржовый оператор := в Python

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров32K

Python постоянно развивается: с каждой новой версией появляются различные оптимизации, активно внедряются новые инструменты. Так, в Python 3.8 появился моржовый оператор (:=), который стал причиной бурных споров в сообществе. О нем и пойдет речь в этой статье.

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

Читать далее
Всего голосов 47: ↑44 и ↓3+47
Комментарии54

Zen of Python: история, реализация и пасхалки

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров8.1K

В мире программирования на Python существует особая философия, представляющая собой специальный документ под названием Zen of Python (Дзен Python). Он включает принципы, направленные на написание ясного, простого и элегантного кода на Python. В этой статье мы поговорим об истории создания этого документа, его реализации и пасхалках, связанных с ним.

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии5

Как создать свой стикер пак с помощью нейросети Stable Diffusion

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров22K

Вы знали, что не обязательно быть дизайнером, чтобы создать свой красивый пак стикеров?

Сегодня я поведаю историю создания своего стикерпака из 20+ стикеров с моим персонажем по имени Эвелинн с помощью нейросетей. Вам не понадобится мощная видеокарта и даже Photoshop(в большинстве случаев): я покажу, как сделать всё это прямиком в браузере. Это простой, доступный и бесплатный способ создания уникальных стикеров, справится даже чайник, надеюсь, он уже закипел, приступим!

Читать далее
Всего голосов 31: ↑30 и ↓1+36
Комментарии14

Эволюция форматирования строк в Python

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров15K

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

оператор %  

строковый метод format()  

f-строки

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

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

Читать далее
Всего голосов 26: ↑24 и ↓2+29
Комментарии28

Секреты логических операторов в Python

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров23K

Логические операции играют важную роль в программировании. Они используются для создания условных конструкций и составления сложных алгоритмов. В Python для проведения логических операций используются логические операторы:

not — логическое отрицание

and — логическое умножение

or — логическое сложение

В этой статье мы поговорим о неочевидных деталях и скрытых особенностях работы логических операторов в Python.

Читать далее
Всего голосов 46: ↑44 и ↓2+52
Комментарии37

Способы возведения в степень в Python

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров23K

В Дзене Python есть принцип, согласно которому "должен существовать один и, желательно, только один очевидный способ сделать это". Однако в Python есть как миниум три способа возведения числа в степень: оператор **, встроенная функция pow(), функция pow() модуля math.

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

Читать далее
Всего голосов 30: ↑28 и ↓2+31
Комментарии60

Сумма степеней натурального ряда. Часть 1

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров12K

Вам наверняка известна история о математике Карле Гауссе. Когда ему было восемь лет, учитель задал его классу задачу посчитать сумму всех натуральных чисел от 1 до 100. Пока остальные дети трудились над последовательным сложением, Гаусс нашел простое и изящное решение. Он заметил, что числа можно сгруппировать в 50 пар с одинаковой суммой и мгновенно получил ответ 50\cdot 101 = 5050.

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

В этой статье мы рассмотрим графический метод нахождения формул для суммы степеней натурального ряда.

Читать далее
Всего голосов 35: ↑34 и ↓1+46
Комментарии35

Симметричная индексация в Python

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров9.2K

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

Читать далее
Всего голосов 52: ↑48 и ↓4+52
Комментарии12

Знай сложности алгоритмов

Время на прочтение2 мин
Количество просмотров1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Всего голосов 312: ↑296 и ↓16+280
Комментарии99

Эволюция подсчета в Python

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров10K

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

Большинство из нас присоединилось к программированию на Python с его третьей версии. Однако мы начнем с Python 1.4. Пристегните ремни, отправляемся в далекое прошлое — в 1997 год!

Читать далее
Всего голосов 55: ↑53 и ↓2+62
Комментарии14

Разбор задач «Квеста на миллион»

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.3K

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

Читать далее
Всего голосов 3: ↑2 и ↓1+4
Комментарии1

А точно ли программистам не нужны алгоритмы?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров16K

Мне 21 год и я работаю программистом всего 4 года, за это время я побывал на 2–3 мелких проектах и 3–4 проектах крупных компаний, таких как: Luxoft (упокой его душу), Альфа, ОТП, ГПБ и др. Так же я часто прохожу собеседования и в другие компании, чтобы «держать себя в форме», собирать статистику и т. п. Прохожу собеседования, в том числе и в крупные финтехи и пока что не хочу туда идти.

В разговорах со своими коллегами я очень часто слышал фразу «алгоритмы программистам не нужны», «алгоритмы никогда не используются в работе» и т. п. Я не являюсь ярым приверженцем того, что алгоритмы нужно учить и использовать их повсеместно, но я понимаю, как они могут помочь мне в жизни программиста.

Читать далее
Всего голосов 32: ↑21 и ↓11+14
Комментарии74

Обширный обзор собеседований по Python. Советы и подсказки

Время на прочтение10 мин
Количество просмотров185K

Всем привет!


Кратко о себе. По образованию я математик, а вот по профессии — программист. В сфере разработки с 2006 года. Хотя, поскольку программирование начали изучать ещё в школе, свои первые программки и игры я начал писать ещё в школе (примерно, с 2003). Так сложилось, что пришлось выучить и поработать на нескольких языках. Если не брать во внимание ВУЗ-овские лекции по С, С++, Бэйсику, Паскалю и Фортрану, то реально я работал с Delphi (более 6 лет), PHP (более 5 лет), Embedded (Atmel + PIC около 2.5 лет) и последним временем Python + чуть-чуть Scala. Конечно же без баз данных тоже никак не обойтись.


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

Читать дальше →
Всего голосов 71: ↑70 и ↓1+69
Комментарии57

Регулярные выражения (regexp) — основы

Время на прочтение21 мин
Количество просмотров1M

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

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

Читать далее
Всего голосов 50: ↑42 и ↓8+43
Комментарии77

Как превратиться в суперзвезду Zoom-звонков за 15 минут. Часть 2. Софт

Время на прочтение6 мин
Количество просмотров14K

«Ну наконец-то!» — услышал я от нескольких человек, когда сказал, что готова вторая часть статьи про видео в Zoom. Первая часть про подбор камеры для съёмки в Zoom вызвала дикий резонанс. До сих пор продолжается холивар о том, что же лучше — вебка за 20 тысяч или старая зеркалка (думаю, вы знаете ответ) и какое освещение купить за десятку, чтобы выглядеть как суперзвезда даже со стандартной камерой (не всё так просто). В этой части поговорим про то, что не требует никаких вложений, но точно улучшит ваше видеопредставление — софт.

Читать далее
Всего голосов 16: ↑13 и ↓3+16
Комментарии6

Структурированное сопоставление с шаблонами в Python 3.10

Время на прочтение12 мин
Количество просмотров6.2K

Версия Python 3.10, работа над которой началась 25 мая 2020 года, запланирована к выпуску  4 октября 2021 года и будет содержать ряд интересных нововведений. Одним из многообещающих нововведений будет структурированное сопоставление с шаблонами (structured pattern matching). Для этого будет введена специальная инструкция сопоставления с шаблонами match. Функциональность сопоставления с шаблонами несомненно вызовет интерес, в особенности у программистов ФП, где она играет важную роль. Остальные новинки новой версии языка описаны здесь.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии15

Keras Functional API в TensorFlow

Время на прочтение17 мин
Количество просмотров20K


В Keras есть два API для быстрого построения архитектур нейронных сетей Sequential и Functional. Если первый позволяет строить только последовательные архитектуры нейронных сетей, то с помощью Functional API можно задать нейронную сеть в виде произвольного направленного ациклического графа, что дает намного больше возможностей для построения сложных моделей. В материале перевод руководства, посвященного особенностям Functional API, с сайта TensorFlow.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+21
Комментарии0

Программировать хочу, пусть меня научат! Образовательные проекты Avito

Время на прочтение4 мин
Количество просмотров30K

Привет! Меня зовут Анна, я руководитель образовательных проектов в Avito. Нам кажется очень важным способствовать тому, чтобы начинающие (и не только) разработчики узнавали о самых крутых технологиях на рынке. Поэтому мы делаем целый пул образовательных онлайн-проектов в партнёрстве с лучшими площадками. Подробно о них рассказываю под катом, там же раскрываю наши планы на будущее.


Всего голосов 46: ↑41 и ↓5+36
Комментарии33

История успеха «Яндекс.Почты» с PostgreSQL

Время на прочтение13 мин
Количество просмотров53K


Владимир Бородин (на «Хабре» dev1ant), системный администратор группы эксплуатации систем хранения данных в «Яндекс.Почте», знакомит со сложностями миграции крупного проекта с Oracle Database на PostgreSQL. Это — расшифровка доклада с конференции HighLoad++ 2016.

Всем привет! Меня зовут Вова, сегодня я буду рассказывать про базы данных «Яндекс.Почты».

Сначала несколько фактов, которые будут иметь значение в будущем. «Яндекс.Почта» — сервис достаточно старый: он был запущен в 2000 году, и потому мы накопили много legacy. У нас — как это принято и модно говорить — вполне себе highload-сервис, больше 10 миллионов пользователей в сутки, какие-то сотни миллионов всего. В бэкенд нам прилетает более 200 тысяч запросов в секунду в пике. Мы складываем более 150 миллионов писем в сутки, прошедших проверки на спам и вирусы. Суммарный объём писем за все 16 лет — больше 20 петабайт.

О чем пойдет речь? О том, как мы перевезли метаданные из Oracle в PostgreSQL. Метаданных там не петабайты — их чуть больше трехсот терабайт. В базы влетает более 250 тысяч запросов в секунду. Надо иметь в виду, что это маленькие OLTP-запросы, по большей части чтение (80%).

Это — не первая наша попытка избавиться от Oracle. В начале нулевых была попытка переехать на MySQL, она провалилась. В 2007 или 2008 была попытка написать что-то своё, она тоже провалилась. В обоих случаях был провал не столько по технически причинам, сколько по организационным.
Всего голосов 113: ↑111 и ↓2+109
Комментарии119
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность