Как стать автором
Обновить
0
0

Пользователь

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

Сказ о том, как я за год решил более 700 leetcode задач

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

Всем салют!

Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...

Читать далее
Всего голосов 150: ↑141 и ↓9+132
Комментарии407

Почему B-деревья быстрые?

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

B-дерево — это структура, помогающая выполнять поиск в больших объёмах данных. Она была изобретена более сорока лет назад, однако по-прежнему используется в большинстве современных баз данных. Хотя существуют и более новые структуры индексов, например, LSM-деревья, B-дерево пока никто не победил в обработке большинства запросов баз данных.

После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.

Читать далее
Всего голосов 185: ↑184 и ↓1+183
Комментарии13

Новости с книжных полок: нужно ли программистам читать книги

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

Опрос показал, что около 60% россиян регулярно читают книги (минимум одну за последние три месяца). Миф о том, что Россия — одна из самых читающих стран, не совсем миф. 

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

Читать далее
Всего голосов 22: ↑18 и ↓4+14
Комментарии11

Некоторые нюансы в настройке профиля в LinkedIn

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

Когда мы говорим о зарубежных клиентах и карьере, то из-за угла выглядывает LinkedIn. Через него проходят все, кто развивает свою карьеру и бизнес за рубежом. Меня зовут Светлана Петровичева, в подборе я уже 12 лет, основатель headz.io, Get.it, спикер, веду канал про рекрутинг, спикер различных международных конференций, с вами поделюсь опытом работы с LinkedIn.

Сегодня поговорим про важность профиля, оформлении профиля, адаптации профиля под ЦА, нетворкинге и, конечно, поиске работы и клиентов.

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

Лучше быть, чем казаться. 10 шагов, чтобы стать «вкусным» кандидатом на собеседовании

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

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

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

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

Читать далее
Всего голосов 61: ↑41 и ↓20+21
Комментарии87

Как подготовиться к собеседованию: несколько советов, чтобы повысить ваши шансы на трудоустройство

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

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

Читать далее
Всего голосов 39: ↑36 и ↓3+33
Комментарии7

Как повысить свои шансы пройти ИИ-фильтр на сайтах вакансий

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

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

Почти все топовые западные компании его уже используют. Миллионы резюме с LinkedIn, Indeed и ZipRecruiter фильтруются автоматическими ATS-системами, и только потом попадают на глаза человеку. 98,8% компаний из списка Fortune 500 используют такие системы фильтрования кандидатов для оптимизации процесса найма.

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

Мы живем в дистопии, где на работу нас начинают выбирать роботы. Можно плакать по этому поводу, а можно попробовать обмануть наших новых оверлордов.

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

Linux для игр, Windows для работы. С чего начать, как установить и настроить

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

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

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

Читать далее
Всего голосов 87: ↑83 и ↓4+79
Комментарии196

JavaScript Live-Coding: Мастерство решения типовых задач на собеседованиях

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

Искусство live-coding в JavaScript становится все более важным для успешной карьеры веб-разработчика. Если ты стремишься преуспеть на собеседованиях и проявить свои навыки в реальном времени, то эта статья для тебя. Я предлагаю тебе углубиться в мир типовых задач на собеседованиях в разделе live-coding, где ты сможешь проявить свои знания JavaScript. В этой статье мы рассмотрим популярные задачи, подходы к их решению и дадим полезные советы, которые помогут тебе справиться с этим вызовом. Давай начнем погружение в мир JavaScript и подготовимся к успешным собеседованиям!

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

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

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

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

Но кое о чем мы не поговорили. Во второй статье я вскользь упомянул самую передовую и недетектируемую технологию обхода блокировок под названием XTLS-Reality, и пришло время рассказать о ней поподробнее, а именно - как настроить клиент и сервер для нее.

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

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

Работаем с Git: трудовые будни

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

Прошлая статья «Работаем с Git: первые шаги в GitHub» была посвящена установке, настройке Git и классическим операциям из набора для новичков GitHub. А теперь перейдём к практике и рассмотрим «горячие» сценарии, которые делают трудовые будни куда веселее. Или не очень.

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

Гайд для новичков по установке Kubernetes

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

© кадр из к/ф «Пираты Карибского моря»

С чего начинается практическое освоение любой системы? Правильно, с установки. Данный гайд является компиляцией из народной мудрости, официальной документации, а также собственного опыта и призван помочь новичкам разобраться с тем, как же все таки устанавливать Kubernetes.

Мы потренируемся ставить как вырожденный кластер «все-в-одном», состоящий только из одного узла, так и настоящий высокодоступный (high available) кластер с полным резервированием. В процессе работы мы рассмотрим применение различных контейнерных движков (Container Runtimes): cri-o, containerd, связки Docker + cri-dockerd plugin. Кроме этого, потренируемся настраивать отказоустойчивый балансировщик нагрузки на базе keepalived и haproxy.

Весь процесс установки будет детальным образом прокомментирован и разложен по шагам, а в реперных точках мы будем делать снимки состояния виртуальных машин (snapshots), что позволит рассмотреть различные варианты установки без необходимости делать одну и ту же работу по несколько раз.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии13

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

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

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

Мировым лидером в области интернет-цензуры является Китай, поэтому имеет смысл обратить на технологии, которые разработали энтузиасты из Китая и других стран для борьбы с GFW (“великим китайским файрволом”). Правда, для неподготовленного пользователя это может оказаться нетривиальной задачей: существует огромное количество программ и протоколов с похожими названиями и с разными не всегда совместимыми между собой версиями, огромное количество опций, плагинов, серверов и клиентов для них, хоть какая-то нормальная документация существует нередко только на китайском языке, на английском - куцая и устаревшая, а на русском ее нет вообще.

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

Читать далее
Всего голосов 157: ↑155 и ↓2+153
Комментарии136

Javascript: базовые вопросы и понятия для самых маленьких

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

Javascript ― язык весьма оригинальный. Его можно любить, ненавидеть и даже бояться, но равнодушным он вас вряд ли оставит. Не знать или не понимать, с чем ты работаешь ― самая частая ошибка, допускаемая современными фронтенд‑разработчиками. Вам бы понравилось, если бы дантист, к которому вы пришли, не понимал, какой он инструмент использует и какие у него особенности работы? Очевидно, что нет. И рано или поздно, если вы действительно хотите стать профессионалами, вы разберётесь во всём, но как сделать так, чтоб это случилось раньше?

В этой статье в блоге ЛАНИТ хотелось бы показать, что о сложных вещах можно и нужно говорить просто.

Читать далее
Всего голосов 117: ↑116 и ↓1+115
Комментарии43

Делай нейминг как сеньор

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

Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.

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

Читать далее
Всего голосов 186: ↑184 и ↓2+182
Комментарии221

Chrome Headless против cloudflare JS challenge

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

Автоматизация сбора информации с различных ресурсов - обычная задача для людей разных сфер деятельности. Жаль, что не всегда бывает достаточно сделать простой GET запрос и разобрать полученный html. Веб-сайты, с которых собираются данные, принимают защитные меры для предотвращения автоматизированных запросов. Одной из таких мер является использование cloudflare. Сегодня мы посмотрим, как cloudflare выявляет ботов через javascript и коснёмся темы деобфускации скриптов.

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

Приручаем многопоточность в Node.js (часть 5/5: автомасштабирование под нагрузку)

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

В прошлых частях цикла мы:

- рассмотрели базовые концепты работы с многопоточностью в JavaScript на примере среды Node.js;

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

- использовали разделяемую память и Atomics-операции как самое быстрое средство обмена большими блоками данных;

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

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

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

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

Советы по архитектуре кода для начинающих

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

Для кого статья

Вы уже написали свои первые 1000 строк кода и сейчас хотите сделать их понятнее, потому что внесение изменений занимает столько-же времени, сколько написать заново, но советы из ООП, SOLID, clean architecture и т.д. непонятны вам.

О чем статья

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

От кого статья

Я Middle разработчик. Конечно, не гуру разработки, но кому, как не мне, помнить о проблемах, с которыми сталкивался когда только начинал свой путь.

Отказ от ответственности

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

Формат статьи - наводящие советы / вопросы.

Читать далее
Всего голосов 24: ↑23 и ↓1+22
Комментарии20

Заметка о Mapped Types и других полезных возможностях современного TypeScript

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


Привет, друзья!


Представляю вашему вниманию перевод 2 статей:


Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии3

Почему вы никогда не должны использовать MongoDB

Время на прочтение16 мин
Количество просмотров286K
Дисклеймер от автора (автор — девушка): Я не разрабатываю движки баз данных. Я создаю веб-приложения. Я участвую в 4-6 разных проектах каждый год, то есть создаю много веб-приложений. Я вижу много приложений с различными требованиями и различными потребностями хранения данных. Я разворачивала большинство хранилищ, о которых вы слышали, и несколько, о которых даже не подозреваете.

Несколько раз я делала неправильный выбор СУБД. Эта история об одном таком выборе — почему мы сделали такой выбор, как бы узнали что выбор был неверен и как мы с этим боролись.Это все произошло на проекте с открытым исходным кодом, называемым Diaspora.
Читать дальше →
Всего голосов 219: ↑181 и ↓38+143
Комментарии245
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность