Pull to refresh
0
@Fury93read⁠-⁠only

User

Send message

Что такое *args и **kwargs в Python?

Reading time4 min
Views375K
Функции — это жизнь. Правда? Если вы только начали осваивать Python, неважно — первый ли это ваш язык программирования, или вы пришли в Python из другого языка, то вы уже знаете о том, что количество параметров в объявлении функции соответствует количеству аргументов, которые передают функции при вызове.



Это — основы. Это то, что помогает людям понимать окружающий мир. Но утверждение «количество параметров равно количеству аргументов» закладывает в голову новичка бомбу замедленного действия, которая срабатывает после того, как он увидит в объявлении функции таинственные конструкции *args или **kwargs.

Не позволяйте всяким значкам загонять себя в ступор. Тут нет ничего архисложного. В общем-то, если эти конструкции вам незнакомы — предлагаю с ними разобраться.
Читать дальше →
Total votes 58: ↑51 and ↓7+44
Comments15

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

Level of difficultyMedium
Reading time33 min
Views98K

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

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Total votes 216: ↑214 and ↓2+212
Comments77

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

Reading time12 min
Views241K
Я был крайне удивлён, найдя мало статей про динамическое программирование (далее просто динамика) на хабре. Мне всегда казалось, что эта парадигма довольно сильно распространена, в том числе и за пределами олимпиад по программированию. Поэтому я постараюсь закрыть этот пробел своей статьёй.

# Весь код в статье написан на языке Python

Основы


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

Динамическое программирование — это когда у нас есть задача, которую непонятно как решать, и мы разбиваем ее на меньшие задачи, которые тоже непонятно как решать. (с) А. Кумок.
Читать дальше →
Total votes 110: ↑100 and ↓10+90
Comments33

Алгоритм сортировки Timsort

Reading time6 min
Views150K
Timsort, в отличии от всяких там «пузырьков» и «вставок», штука относительно новая — изобретен был в 2002 году Тимом Петерсом (в честь него и назван). С тех пор он уже стал стандартным алгоритмом сортировки в Python, OpenJDK 7 и Android JDK 1.5. А чтобы понять почему — достаточно взглянуть на вот эту табличку из Википедии.



Среди, на первый взгляд, огромного выбора в таблице есть всего 7 адекватных алгоритмов (со сложностью O(n logn) в среднем и худшем случае), среди которых только 2 могут похвастаться стабильностью и сложностью O(n) в лучшем случае. Один из этих двух — это давно и хорошо всем известная «Сортировка с помощью двоичного дерева». А вот второй как-раз таки Timsort.

Алгоритм построен на той идее, что в реальном мире сортируемый массив данных часто содержат в себе упорядоченные (не важно, по возрастанию или по убыванию) подмассивы. Это и вправду часто так. На таких данных Timsort рвёт в клочья все остальные алгоритмы.
Читать дальше →
Total votes 293: ↑286 and ↓7+279
Comments63

Пройти LeetCode за год: экскурсия по сайту и roadmap [обновлено 30.11.2023]

Level of difficultyEasy
Reading time23 min
Views91K

С наступающим наступившим вновь наступающим, Хабр.

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

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

С сайтом несколько больно знакомиться, он отпугивает вездесущими приписками "premium", пользуясь славой ресурса для техсобесов продвигает функционал вроде списков компаний, где встречался вопрос n и симуляции интервью в компанию m, да и сам не особо стремится рассказать о себе, потому в нём зачастую и видно голый задачник с одной страницей "problems".

За всем этим теряется важный пункт – а можно ли использовать сайт не для механического зазубривания популярных вопрос-ответов, а для изучения/закрепления алгоритмов и структур данных? Можно. Но подход к этому нужно формировать самостоятельно.

🏆
Total votes 46: ↑45 and ↓1+44
Comments30

Выпуск#5: ITренировка — актуальные вопросы и задачи от ведущих компаний

Reading time5 min
Views14K
Пока мозг ещё не окончательно превратился в оливье, самое время немного заставить его поработать. Новая подборка логических и алгоритмических задач, предлагаемых на собеседованиях в известные IT-компании.

КДПВ

В нашу первую в новом году подборку попали вопросы и задачи, задаваемые в Alcatel-Lucent (Nokia).
Задачи мы постарись подобрать с различным уровнем сложности. На некоторые (а, может быть, и на все) вопросы можно найти ответ на просторах интернета, но это ведь не наш путь, верно?
Предлагаем интеллектуально размяться и попробовать самостоятельно решить приведённые задачи.

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

Личный опыт иммиграции, или Чего не хватает в Канаде инженеру

Reading time15 min
Views53K
Канада давно заслужила имидж immigration-friendly. Наверняка у вас найдутся знакомые знакомых, кто туда переехал и живёт по сей день. Но так ли всё радужно в Стране кленового листа — мы разузнали у инсайдера.

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


Приятного чтения!
Total votes 43: ↑37 and ↓6+31
Comments147

Стоит ли стремиться в FAANG или Большие минусы известных компаний

Reading time13 min
Views35K

Привет, Хабр! Заметил, что в сети достаточно много авторских и переводных материалов по темам «как попасть в FAANG», «как пройти собеседование в FAANG», «как подготовиться к собеседованию в FAANG» и т.д. У меня сложилось впечатление, что само попадание в FAANG стало целью многих инженеров.

С одной стороны мотивация понятная, ведь такая работа — это престиж и высокий доход. Но с другой стороны (по моему скромному мнению) — это и сделка с совестью, потому что технологические гиганты делают много такого, в сравнении с чем прошлогодняя попытка Rambler отнять NGNIX у Игоря Сысоева, поднявшая всё сообщество на уши, покажется невинной шалостью. Об этом сегодня и поговорим, пройдясь по грешкам этих корпораций.

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

Читать далее
Total votes 38: ↑33 and ↓5+28
Comments40

Уехать и остаться: чек-лист по релокации на кейсах от 132 специалистов

Reading time18 min
Views40K

Надоела питерская серость или московские пробки — и вот вы заводите трактор собираете чемодан и улетаете жить и работать в страну вечного лета (или зимы, кому что ближе). Так выглядит мечта любого, кто задумывается о релокации. Ежегодно российские IT-специалисты отправляются за границу за высоким доходом и качеством жизни. 76% из них довольны и не возвращаются, 36% пробуют уехать ещё раз, но в другую страну. Лишь 8% разработчиков принимают решение вернуться в Россию навсегда. 

Мы в Get Me IT собрали опыт 132 релоцированных и на его основе составили чек-лист: как подготовиться к переезду, чтобы не было невыносимо больно. В статье много личных историй: учись на чужих ошибках, прежде чем делать свои.

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

Читать далее
Total votes 46: ↑29 and ↓17+12
Comments101

Повесть о том как потерять 3тыс. долларов и не уехать в США

Reading time16 min
Views112K

Добрый день Всем читателям,

сегодня будет увлекательная история, как я обосрался и это стоило мне 3000$.

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

Читать далее
Total votes 221: ↑198 and ↓23+175
Comments597

Лайфхаки разработчикам от рекрутера

Reading time11 min
Views38K
Недавно на Хабр вышел перевод статьи «Оцениваем рекрутеров по холодным письмам». Примечание переводчика и 120 комментариев показывают, что тема болезненна для русскоязычных разработчиков, а рынок рекрутинга в IT токсичен. С одной стороны страдают разработчики: завал писем на почте, звонки от рекрутеров, которые потом внезапно пропадают, нелепые вакансии с релокацией в Гватемалу, предложения сеньорам поработать в молодом стартапе джуном и собеседования с вопросами «почему люки круглые». С другой — сами рекрутеры страдают от некомпетентных коллег, которые выставляют их как спамеров не отличающих Java от JavaScript, и раскидывающихся вакансиями без разбора, будто они риэлторы на Авито.



Меня зовут Светлана Петровичева, 10 лет работаю в IT-рекрутинге, основатель рекрутингового агентства и платформы для поиска работы в IT. У меня есть мечта избавить IT-рынок от токсичности. Поэтому сегодня я поделюсь своим опытом, поделюсь некоторыми полезными приемами и попробую описать, как работают рекрутеры. Вы узнаете как разработчикам оценивать вакансии и компании, как вас находят и оценивают рекрутеры, влияет ли «личный бренд» на зарплату и почему ее не пишут в вакансиях. Также дам несколько рекомендаций как подготовить резюме, чтобы вы зарабатывали чуть больше, как поймать вакансию раньше остальных, почему «справедливой» зарплаты не существует, а в конце опишу свое видение, как избавиться от токсичности на рынке найма в IT.
Читать дальше →
Total votes 66: ↑55 and ↓11+44
Comments113

Собеседования по алгоритмам: теория vs. практика

Reading time17 min
Views45K
tl;dr За последние десятилетия мода на собеседования программистов менялась несколько раз, и каждая из них выглядит нелепо в ретроспективе. Либо мы наконец-то нашли настоящий секрет эффективных собеседований, либо увлеклись очередным модным течением, которое через десять-двадцать лет покажется столь же нелепым.

Когда я спрашиваю людей в модных больших технологических компаниях, почему на собеседовании так обязательно спрашивать об алгоритмах, самый распространённый ответ — что-то вроде: «У нас такой масштаб, мы не можем позволить, чтобы кто-то случайно написал функцию O(n^2) и повалил всю систему»1. Что особенно забавно, в последнее время я немало применял на практике эти алгоритмы и решал реальные проблемы, но не могу пройти собеседования, где о них спрашивают! Думаете, я проваливаю половину собеседований или что-то в этом роде? Нет, больше половины. Я участвовал примерно в 40 «настоящих» собеседованиях и прошёл, может, одно или два. Или ни одного2.

Когда я написал черновик этой статьи, друзья посчитали его занудным, потому что я провалил слишком много собеседований. Они говорят, нужно свести все неудачи в таблицу, потому что никто не станет читать десять страниц текста с длинным перечнем неудач. Хороший совет. Уже работаю над таблицей.
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments42

Решение типовых проблем с json_encode (PHP)

Reading time6 min
Views30K

Это краткая статья о наиболее вероятных проблемах с json_encode и их решениях. Иногда при кодировании данных в json, с помощью json_encode в php, мы получаем не тот результат который ожидаем. Я выделил три наиболее частые проблемы с которыми сталкиваются программисты:


  • доступ к полям
  • кодировка текстовых значений
  • цифровые значения
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments55

Справочник по собеседованиям для тех программистов, которые их не понимают

Reading time3 min
Views146K

На Хабре с завидной периодичностью возникают посты от возмущенных программистов, которые справедливо (наверное) негодуют, почему на собеседовании никто не спросил про их прошлые проекты, не посмотрел их код, но задавал шаблонные справочные вопросы или заставлял решать алгоритмические задачи, которые, скорее всего (в 99%), не будут применяться на вакантной работе.

Чтобы уменьшить поток этих публикаций (святая простота), ниже будет краткий, но лаконичный справочник по типам собеседований, которые вам стоит ожидать от конкретного типа компании. Справочник основан на личном многолетнем опыте. Надеюсь, это поможет вам (именно тебе, да) выбрать лучшую стратегию успешного получения работы.
Погнали!
Total votes 267: ↑246 and ↓21+225
Comments335

Какие английские слова IT-лексикона мы неправильно произносим чаще всего

Reading time5 min
Views171K
Пока пара новых статей на технические темы еще в процессе написания, я решил опубликовать небольшой лингвистический материал. Достаточно часто замечаю, что коллеги, у которых английский язык — не родной, неправильно произносят некоторые характерные для IT сферы слова. И дело здесь не в том, насколько аутентично произносятся отдельные звуки, а именно в транскрипции. Регулярно встречал ситуации при общении с носителями, когда неправильно произносимое слово приводило к недопониманиям.

Дальше я приведу несколько наборов слов, сгруппированных по типовым ошибкам. К каждому слову будет приложена транскрипция, приблизительная транскрипция на русском и ссылка на более детальную информацию в словаре. Так как большинство IT компаний все-таки работает с Северной Америкой, то транскрипции будут из US English.
Читать дальше →
Total votes 309: ↑308 and ↓1+307
Comments486

«Кандидат имеет право задавать уточняющие вопросы», или Доводим интервьюера до нервного срыва

Reading time4 min
Views127K
Недавно я прочёл запись в блоге одного парня, который жаловался, что на интервью его попросили написать функцию, которая должна скопировать файл. Нет, я понимаю, как можно взъесться на такое задание, но если бы в подобной ситуации оказался я… уж я бы оторвался по полной:

Кандидат: Что конкретно Вы имеете в виду, говоря «скопировать»?
Интервьюер: Ну… создать новый файл, содержимое которого является копией содержимого исходного файла.
Читать дальше →
Total votes 168: ↑123 and ↓45+78
Comments224

Инверсии зависимостей управления впрыском

Reading time6 min
Views121K
image

Вступление


Наверняка первый вопрос, который возник у вас при взгляде на заголовок, был "Шта?". На самом деле я просто перевел фразу "Инверсия управления, внедрение зависимости" в Google Translate на китайский, а затем обратно. Зачем? Затем, что на мой взгляд, это хорошая иллюстрация того, что происходит на самом деле. Люди вокруг путают, коверкают и извращают эти понятия. По долгу службы я провожу много интервью, и 90% того, что я слышу, когда задаю вопрос про DI — честно говоря, откровенный бред. Я сделал поиск по Хабру и нашел несколько статей, которые пытаются раскрыть эту тему, но не могу сказать, что они мне сильно понравились (ладно, ладно, я проглядел только три первых страницы, каюсь). Здесь же на Хабре я встречал в комментариях такую расшифровку IoC, как Injection of Container. Кто-то всерьез предполагает, что есть некий механизм инъекции контейнеров, который сосуществует где-то рядом с DI, и, видимо, даже делает нечто похожее. Только с контейнерами. Мда. На самом деле понять внедрение зависимости очень просто, надо всего лишь…
Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments51

Введение в анализ сложности алгоритмов (часть 3)

Reading time6 min
Views125K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1
Часть 2

Логарифмы


image
Если вы знаете, что такое логарифмы, то можете спокойно пропустить этот раздел. Глава предназначается тем, кто незнаком с данным понятием или пользуется им настолько редко, что уже забыл что там к чему. Логарифмы важны, поскольку они очень часто встречаются при анализе сложности. Логарифм — это операция, которая при применении её к числу делает его гораздо меньше (подобно взятию квадратного корня). Итак, первая вещь, которую вы должны запомнить: логарифм возвращает число, меньшее, чем оригинал. На рисунке справа зелёный график — линейная функция f(n) = n, красный — f(n) = sqrt(n), а наименее быстро возрастающий — f(n) = log(n). Далее: подобно тому, как взятие квадратного корня является операцией, обратной возведению в квадрат, логарифм — обратная операция возведению чего-либо в степень.
Читать дальше →
Total votes 74: ↑60 and ↓14+46
Comments4

RESTful API для сервера – делаем правильно (Часть 2)

Reading time9 min
Views85K
В первой части статьи я кратко описал принципы RESTful и объяснил каким образом следует проектировать архитектуру вашего сервера так, чтобы можно было легко выпускать новые и прекращать поддержку устаревших версий вашего API. В этой части я кратко расскажу о HATEOAS и Hypermedia, а затем расскажу о роли, которую они могут сыграть при разработке нативных приложений для мобильных устройств. Но главной темой этой статьи будет реализация кэширования (точнее поддержка кэширования на стороне сервера). Целевая аудитория включает разработчиков серверного ПО и, в какой то мере, разработчиков под iOS или под другие мобильные платформы.

Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments14

Кластерные и «обычные» индексы MySQL (InnoDB)

Reading time5 min
Views128K
Все мы помним хрестоматийное объяснение «что такое индексы в БД и как они облегчают задачи поиска нужных строк». Уверен, у большинства из вас перед глазами встаёт нечто подобное:

Некластерный индекс

И сразу становится очевидно, насколько меньше данных нужно перелопатить для поиска двух-трёх нужных строк. Гениально. Просто. Понятно.

И лично мне всегда казалось, что улучшать эту схему некуда… Пока я не познакомился с кластерными индексами. Оказалось, что всё не так уж радужно с «обычными» индексами.

Итак, что же такое кластерный индекс, чем он лучше некластерного, и как с ним обстоит дело у MySQL.
Читать дальше →
Total votes 90: ↑87 and ↓3+84
Comments33
1
23 ...

Information

Rating
Does not participate
Registered
Activity