Pull to refresh
1
0

User

Send message

Настоящая причина, по которой вы не станете сеньором

Level of difficultyEasy
Reading time5 min
Views8.6K

История о воробушках, правильном фидбеке и житейских проблемах/

В 1958 году Мао Цзэдун инициировал «Большой скачок» — организованную китайской коммунистической партией кампанию по трансформации страны в индустриально развитое государство.

Акция «Четыре зла» входила в число первых шагов, предпринятых в рамках «Большого скачка». Под девизом «Человек должен победить природу» власти нацелились на уничтожение четырех вредителей: крыс, мух, комаров и воробьев.

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

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

Читать далее
Total votes 36: ↑19 and ↓17+2
Comments17

10 полезных сочетаний клавиш в PyCharm

Reading time2 min
Views111K

Привет, мои дорогие!

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

Читать далее
Total votes 19: ↑7 and ↓12-5
Comments11

Этот опасный рефакторинг

Level of difficultyMedium
Reading time7 min
Views6.4K

Ошибки во время рефакторинга могут дорого обойтись. Модернизация, ведущая к отказу системы, или внесение новой функциональности параллельно с ошибочными правками явно принесут вред. Но степень вреда может быть разной.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments19

Делаем код-ревью правильно

Level of difficultyMedium
Reading time12 min
Views20K

В начале своей карьеры я как-то работал над одним заказом, создавая платформу сентимент-анализа для социальных сетей. В то время Twitter ещё был Twitter’ом. Наша команда состояла из семи человек, среди которых я был джуниором. Мы были молоды и полны энтузиазма. Наш девиз можно было описать как: «Мы гибкие, быстрые и всё ломаем!». Да, мы действительно гордились своей скоростью. Код-ревью? Я вас умоляю. Мы считали эту практику бюрократическим пережитком корпоративного мира.

И что вы думаете? Через несколько месяцев наша база кода стала подобна минному полю. Причём баги нас волновали меньше всего, хотя их была уйма. Реальная проблема заключалась в том, что никто не мог понять код, написанный другими. У нас во многих местах дублировалась логика, и в модулях использовались разные стили кода. Всё было очень печально.

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

Итак, в двух словах: если вы не проводите код-ревью, или делаете их «для галочки», то обрекаете себя на боль, пусть не сразу, но в конечном итоге однозначно. Это можно сравнить с возведением дома на фундаменте из песка. Какое-то время он, может, и простоит, но явно недолго. А в мире стартапов второго шанса у вас может уже не быть.
Читать дальше →
Total votes 74: ↑72 and ↓2+70
Comments25

Немыслимое – как тебя обсуждать?

Level of difficultyEasy
Reading time7 min
Views3.1K

В своей предпоследней статье на Хабре, «Оде о бесполезности споров» я рассказал об эксперименте, в котором ученый пытался переубедить убежденного сторонника плоской Земли. Как вы помните, он отказался даже посмотреть в телескоп, заявляя что «Сама мысль об искривленной поверхности воды оскорбительна для здравого смысла».

Многие читатели, уверен, задавались вопросами: Как это работает? О чем думает сторонник плоской Земли, когда отказывается проверять главную теорию своей жизни на практике? Принимает ли он решение на основании неверно истолкованных фактов или опирается исключительно на эмоции? Я берусь продемонстрировать это способом, понятным каждому разумному человеку — вывернув ситуацию наизнанку.

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

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

Набраться мужества и посмотреть в телескоп
Total votes 34: ↑24 and ↓10+14
Comments192

Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)

Reading time7 min
Views37K

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

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

Читать далее
Total votes 173: ↑169 and ↓4+165
Comments174

Самый лучший в мире курс по Машинному обучению — Алгоритмы Машинного обучения с нуля

Reading time1 min
Views23K

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

Курс бесплатный: https://stepik.org/course/68260/promo

Читать далее
Total votes 30: ↑30.5 and ↓-0.5+31
Comments11

Как эффективно самостоятельно изучать английский язык

Level of difficultyEasy
Reading time8 min
Views40K

Читатели Хабра, категорически вас приветствую! В этой статье я хочу поделиться с вами моделью эффективного изучения английского языка, которую я постарался сформировать исходя из своего n-летнего опыта его изучения.

Расскажу вам насколько это актуально, с чего начать, какие ресурсы и приемы использовать и как эффективно достичь результата.

Читать далее
Total votes 27: ↑26 and ↓1+25
Comments27

Small talk для большого успеха: общение с рекрутером, коллегами и новыми знакомыми

Level of difficultyEasy
Reading time6 min
Views9.4K

Ребята, привет! Это Лена, методист курсов английского языка в Практикуме, преподаватель и англоговорящий интервьюер в международных IT-компаниях. Мы с вами уже знакомы по статье о собеседовании на английском для разработчиков.

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

Но вот загвоздка: small talk часто кажется чем-то неловким — непонятно, о чём говорить и как долго. Именно с этим я и постараюсь помочь.

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments3

Лучший стек для питониста-джуна 2024 (2 часть)

Level of difficultyEasy
Reading time7 min
Views20K

Итак, что же поменялось за чуточку больше чем полгода? Если мы будем говорить об актуальности - ничего. Django до сих пор, а скорее всего так будет и всегда, остается "на плаву". Большая часть вакансий для back-end разработчика на Python имеет в себе требования по знаниям Django. Говорить вечно о том, что он удобен, постоянно поддерживаем, дает довольно обширный функционал и так далее - бессмысленно. Все основные моменты я упомянул в первой части.

Ладно, вступление в сторону! Лучше обсудить то, что изменилось с Django за это время.

Самое грандиозное из этого - выход Django 5! По сути скачок на пятую версию не принес в фреймворк особо крупных изменений, но парочку моментов хочу подчеркнуть. Первое и самое важное, на мой взгляд, это то, что разработчики решили добавить больше асинхронности без подключения таск-менеджеров. Для этого они добавили несколько декораторов и методов. Хотя это немного, на мой взгляд, противоречит самому принципу работы Django (напоминаю: Django синхронный фреймворк и для того, чтобы сделать очередь задач, нужно подключать таск-менеджеры, например, Celery), но тем не менее, это все равно крутой шаг в эволюцию. Надеюсь, что разработчики и дальше будут двигаться в этом направлении.

Далее, не могу не упомянуть очень важный момент - совместимость с Python. Django 5 будет работать только с версиями Python 3.10 и выше. Django 4.2.x - последняя версия, которая работает с Python 3.8 и 3.9.

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

Смотреть польностью
Total votes 10: ↑9 and ↓1+8
Comments22

Всё не то, чем кажется: как когнитивные искажения мешают работать и что с ними делать

Reading time11 min
Views13K

Привет! Это Анна из click.ru с очередным рассказом на тему личной (не)эффективности. Когда я впервые услышала про когнитивные искажения, я усмехнулась: «Ну, я-то мыслю рационально, в отличие от Васи, который делает из всего катастрофу». Наступил 2022-й, и однажды, после очередного приступа под девизом «Всё пропало!», я внезапно почувствовала духовное родство с Васей...

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

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments5

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Level of difficultyMedium
Reading time54 min
Views76K

Привет, Хабр)

Публикую шпаргалку по SQL, которая долгое время помогала мне, да и сейчас я периодически в неё заглядываю.

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

Читать далее
Total votes 125: ↑122 and ↓3+119
Comments7

Прокачиваем вёрстку ARIA-атрибутами. Атрибут role

Level of difficultyMedium
Reading time8 min
Views3.8K

В разговорах людей, интересующихся доступностью, часто можно услышать слово «Роль». Так, что это такое? Это специальная форма представления элемента для скринридера. Устанавливается она с помощью атрибута role. Сегодня поговорим о нем.


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


Давайте начнём!

Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments10

Как организовать систему оплаты в компаниях, занимающихся разработкой

Level of difficultyMedium
Reading time16 min
Views6.3K

Любая программная компания рано или поздно сталкивается с проблемой должностей. Некоторые организации довольствуются «плоской» системой, но в отсутствие системы должностей возникают теневые иерархии, что на самом деле хуже. Должности дают чёткую демаркацию ожиданий от конкретного сотрудника. Например, гораздо проще возложить на ведущего разработчика ответственность за техническое руководство, если эта роль чётко определена. Без определений должностей наверх будут подниматься самые громкие, а тихие и вдумчивые останутся незамеченными.

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

Не платите за то, сколько людей под руководством или сколько строк кода они написали. Платите им за генерируемые результаты.

Эта философия сильна и наделяет свободой. Неважно, если вы сотрудник, вносящий индивидуальный вклад (individual contributor, IC), занимаетесь техническим руководством или управлением командой. Важно то, насколько ваш вклад влияет на прибыль бизнеса.

В этом посте предлагается многоуровневая система, которую можно применять к IC, техническим руководителям и руководителям команд.
Читать дальше →
Total votes 50: ↑46 and ↓4+42
Comments7

Как мы управляем инфраструктурой на более 1000 серверов при помощи Ansible

Level of difficultyMedium
Reading time12 min
Views15K

Привет, Хабр! Мы системные инженеры X5 Tech — Алексей Кузнецов и Борис Мурашин. У нас за плечами больше 15 лет опыта, в том числе поддержка сервисов Rapida, CyberPlat, TeleTrade, сопровождение стека BigData и внедрение кластеров Hadoop. В этой статье мы расскажем, как выбирали систему управления конфигурациями, какими критериями руководствовались, что в итоге выбрали, с какими проблемами столкнулись и как их решали.

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

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments22

Nginx: шпаргалка

Level of difficultyEasy
Reading time2 min
Views20K

Шпаргалка по основным секциям Nginx, которые следует держать под рукой. Ниже приведены самые частые функции: включение SSL, переадресация, раздача статики и т.д.

Читать далее
Total votes 33: ↑17 and ↓16+1
Comments18

Эффективные Практики Подготовки к Code Review

Level of difficultyEasy
Reading time6 min
Views7.3K

В этой статье мы исследуем эффективные практики для разработчика, отправляющего свой код на ревью. Эти практики не только упростят жизнь ревьюеру, но и помогут извлечь максимальную пользу из этого опыта и значительно сократят time‑to‑market.

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

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

Читать далее
Total votes 16: ↑13 and ↓3+10
Comments50

Kubernetes: шпаргалка для собеседования

Level of difficultyEasy
Reading time10 min
Views34K
Всем привет! Меня зовут Олег, я работаю исполнительным директором по разработке в Газпромбанке. На разных этапах карьеры я участвовал во многих собеседованиях, а в настоящее время сам собеседую кандидатов на должность инженеров DevOps и системных администраторов в Газпромбанке, вследствие чего у меня сформировалось некоторое представление о вопросах, которые могут быть заданы соискателям. И сейчас я хочу остановиться на разделе вопросов про Kubernetes.

image

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

Вопросы по Kubernetes достаточно часты на собеседованиях на инженерные вакансии, связанные с администрированием и эксплуатацией. Они могут варьироваться от базовых, рассчитанных на механическую проверку теоретических знаний («объясните, что такое service») до более сложных и комплексных, требующих глубинного понимания внутренних принципов Kubernetes и работы (каким образом опубликовать приложение, развёрнутое в Kubernetes). Давайте пойдём от базы в направлении возрастания сложности.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments12

Важные аспекты Unicode, о которых должен знать каждый разработчик JavaScript

Level of difficultyMedium
Reading time22 min
Views7.8K


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


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


Приложив определенные усилия, прочитав кучу статей — я постепенно начал понимать что к чему, и это оказалось не так уж трудно. Хотя, некоторые статьи приходилось перечитывать раза по 3.


Как оказалось, Unicode — это универсальный и удобный стандарт, но работать с ним может быть непросто из-за множества абстрактных терминов.


Если у вас есть пробелы в понимании Unicode, то сейчас самое подходящее время их заполнить! Заварите себе вкусный чай или кофе ☕. И давайте погрузимся в удивительный мир абстракций, символов, астралов (astrals) и суррогатов (surrogates).


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


Вы также узнаете, как JavaScript взаимодействует с Unicode и какие трудности могут возникнуть на этом пути.


А также, каким образом новые функции из ECMAScript 2015 могут помочь в решении этих проблем.


Готовы? Давайте начнем!

Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments6

CI/CD в каждый дом: сборочный цех базовых docker-образов

Level of difficultyMedium
Reading time11 min
Views14K

Привет, Хабр.

Последнее время DevOps и CI/CD де-факто стали повсеместным стандартом независимо от размера команды, в интернетах хватает статей, почему это важно, в чём собственно идея, полезных практик и других материалов. Я же решил подойти с несколько другой стороны и максимально доступным языком на практических примерах рассмотреть отдельные задачи и их решения в рамках концепции.

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

Кому, собственно, это может пригодиться? Я бы сказал, что почти кому угодно, кто хочет организовать ту компоненту CI/CD, которая отвечает за построение и релизный цикл базовых образов внутри инфраструктуры вашей компании или даже персональных проектов (зародился он именно в процессе приведения в порядок моих пет-проектов).

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

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments12
1
23 ...

Information

Rating
Does not participate
Registered
Activity