Как стать автором
Обновить
3
0
Леонид @lasteran

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

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

Популярные задачи для собеседований бэкенд-разработчиков на Go и их решения

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

Я живу в Ташкенте, и когда учился в университете — начал учить Python, чтобы писать ботов. Боты — это узбекский хлеб, у нас на них построено вообще все. Например, никто не делает приложения для заказа еды, все только в мессенджерах. 

Я учил язык по статьям из интернета — просто брал каркас и дальше дописывал, смотрел где что падает, постоянно решал задачи на leetcode. Писал я тогда ужасно, но что было, то было. Мне нравилось, но чем больше я углублялся, тем сильнее раздражали скорость выполнения, ограничения параллелизма и динамическая типизация.

Тогда я решил попробовать Go.

Читать далее
Всего голосов 36: ↑29 и ↓7+31
Комментарии17

Разбираемся, как работает Spring Data Repository, и создаем свою библиотеку по аналогии

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

В статье показано, как работают библиотеки Spring (Spring Data, Spring Feign), и показано, как можно создать свою похожую библиотеку.

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

Трюк с XOR для собеседований и не только

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


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

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

Дан массив из n — 1 целых чисел, находящихся в интервале от 1 до n. Все числа встречаются только один раз, за исключением одного числа, которого нет. Найдите отсутствующее число.

Разумеется, существует множество прямолинейных способов решения этой задачи, однако есть и довольно неожиданный, в котором применяется XOR.
Читать дальше →
Всего голосов 76: ↑70 и ↓6+80
Комментарии104

10 полезных книг: от разработчиков и для разработчиков

Время на прочтение5 мин
Количество просмотров27K
Чтение книг — по-прежнему прекрасный способ открыть нечто новое или научиться чему-то, особенно если вы разработчик, чтобы оставаться востребованным в изменчивой индустрии.
В этой подборке я представлю 10 фантастических книг для разработчиков, которые написали разработчики. Здесь не будет привычных общепринятых книг, которые вы найдете в любой подборке «мастрид для программистов», в этой статье — вручную отобранные сокровища от экспертов с проверенным послужным списком.


Приятного чтения!
Всего голосов 41: ↑25 и ↓16+15
Комментарии9

Ресурсы для поиска удаленной работы для нетехнарей

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

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

Тем, у кого уровень английского "London is the capital of Great Britain", я советую идти на популярные российские ресурсы и искать там по фильтру "удаленная работа". А тем, чей уровень английского позволяет, кто хочет получать з/п в долларах и готов заморочиться с оформлением ИП или самозанятости, можно спокойно предлагать поискать иностранную компанию.

Это, конечно, не исчерпывающий список, и будет круто, если вы дополните его в комментариях. Удачи в поиске!

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

Telegram-бот на Java для самых маленьких — от старта до бесплатного размещения на heroku

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


В следующих сериях


Это первая статья в моей серии «для самых маленьких» — следующая посвящена Telegram-боту на вебхуках на Spring с блекджеком и Redis и клавиатурами. Будут ещё:)

Для кого написано


Если вы ни разу не писали Telegram-ботов на Java и только начинаете разбираться — эта статья для вас. В ней подробно и с пояснениями описано создание реального бота, автоматизирующего одну конкретную функцию. Можно использовать статью как мануал для создания скелета своего бота, а потом подключить его к своей бизнес-логике.

Предыстория


Когда моя дочь начала изучать арифметику, я между делом накидал алгоритм генерации простых примеров на сложение и вычитание вида «5 + 7 =», чтобы не придумывать и не гуглить для неё задания.

И тут на глаза попалась новость, что Telegram выпустил новую версию Bot API 5.0. Ботов я раньше не писал, и потому решил попробовать поднять бота как интерфейс для своей поделки. Все примеры, которые мне удалось найти, показались либо совсем простыми (нужные мне функции не были представлены), либо очень сложными для новичка. Также мне не хватало объяснений, почему выбран тот или иной путь. В общем, написано было сразу для умных, а не для меня. Потому я решил описать свой опыт создания простого бота — надеюсь, кому-нибудь это поможет быстрее въехать в тему.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии17

Микросервисная авторизация для чайников для чайников

Время на прочтение18 мин
Количество просмотров27K
В данной статье рассматривается пример реализации распределенной микросервисной авторизации доступа для множества пользователей к множеству ресурсов или операций. Уровень подготовки читателя может быть любой, кто знаком с программированием и проектированием. Так же рассматриваются примеры использования на практике и одна из задач реализована в виде небольшой микросервисной системы.
Читать дальше →
Всего голосов 3: ↑2 и ↓1+3
Комментарии5

Как создать изображение штрих-кода на Java

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

Штрих-коды повсеместно используются в торговле и розничной торговле для помощи в отслеживании, покупках и  инвентаризации. Они позволяют организациям вести точный учет их поставок, товаров и других предметов, которые являются ключевыми для их деятельности. Для международного и  национального использования существуют разные штрих-коды, которые используются  в определенных контекстах. Например, штрих-коды UPC и EAN выглядят одинаково по своему форматированию  и могут использоваться аналогичным образом, но UPC - это в  основном  североамериканская система кодирования;  однако, как UPC и  EAN  будут  использоваться во всем мире.  QR - коды также используется во всем мире , но  является  обычно используется для обмена  сложными наборами информации,  например, сведениями о товарах  или  ссылками на веб-сайты.  

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

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

Как найти что-то в тексте

Время на прочтение8 мин
Количество просмотров7.4K
Найти объект или распознать понятие в тексте — с этого начинается решение большинства NLP задач. Если вы проектируете поисковую систему, создаете голосового помощника или классифицируете пользовательские запросы, прежде всего вы должны разобрать входной текст и попытаться найти в нем именованные сущности, которые могут быть универсальными, такими как даты, страны и города, или специфичными для конкретной модели. Обратите внимание, мы сейчас говорим лишь о тех видах задач, для которых заранее известно, что именно вы ищете или что может встретиться в тексте.

image

NER (named entity recognition) компонент, то есть программный компонент для поиска именованных сущностей, должен найти в тексте объект и по возможности получить из него какую-то информацию. Пример — “Дайте мне двадцать две маски”. Числовой NER компонент находит в приведенном тексте словосочетание “двадцать две” и извлекает из этих слов числовое нормализованное значение — “22”, теперь это значение можно использовать.

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

Рассмотрим несколько готовых решений по поиску стандартных сущностей в тексте. В данной заметке мы остановимся на бесплатных или бесплатных с ограничениями библиотеках, а также расскажем о том, что сделано в проекте Apache NlpCraft в рамках данной проблематики. Представленный ниже список не является подробным и обстоятельным обзором, которых и так достаточное количество в сети, а скорее кратким описанием основных особенностей, плюсов и минусов использования этих библиотек.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Путешествие в мир Linux и Git

Время на прочтение9 мин
Количество просмотров31K
Во время пандемии я, честно говоря, не собиралась изучать Linux, не думала, что умение работать в этой ОС сделает меня продуктивнее. Но, как оказалось, Linux-навыки, и правда, помогают мне быстрее справляться с делами. Всё началось с того, что мне посоветовали «взглянуть на Linux». Я тогда подумала, что делать мне, всё равно, нечего, да ещё и сентябрьский выпуск #IBelieveinDoing оказался как раз о Linux.

Я почувствовала, что всё у меня получится, и отправилась в путешествие по миру Linux. В том выпуске #IBelieveinDoing были уроки не только по Linux, но и по Git. Между этими системами можно провести некоторые параллели. Linux — это опенсорсная ОС, которой пользуются программисты, а Git — это система управления версиями, которую применяют для отслеживания изменений в исходном коде при разработке программ. Надо отметить, что изучение Linux и Git оказалось весьма увлекательным занятием. Но Git — довольно сложная система, поэтому и освоить её основы было тяжелее, чем основы Linux.



В этом материале я хочу поделиться с вами тем, что узнала, осваивая Linux и Git.
Читать дальше →
Всего голосов 46: ↑28 и ↓18+25
Комментарии34

Кунг-фу стиля Linux: удобная работа с файлами по SSH

Время на прочтение8 мин
Количество просмотров48K
Если у вас имеется больше одного Linux-компьютера, то вы, вероятно, постоянно пользуетесь ssh. Это — отличный инструмент, но мне всегда казалась в нём странной одна деталь. Несмотря на то, что ssh-соединения позволяют передавать файлы с применением scp и sftp, у нас нет возможности перемещать файлы между локальной и удалённой системой, не запуская программу на локальном хосте, или не подключаясь к локальной машине с удалённой.



Последнее — это настоящая проблема, так как к серверам часто подключаются, находясь в это время за файрволом или за NAT-маршрутизатором, то есть, не имея постоянного IP-адреса. В результате сервер, в любом случае, не сможет подключиться к локальной системе, с которой раньше к нему обращались. Если бы в ssh-сессии можно было бы просто взять локальный или удалённый файл и передать его туда, куда нужно, это было бы очень удобно.

Я, на самом деле, не вполне достиг этой цели, но подобрался к её достижению очень близко. В этом материале я расскажу вам о скрипте, который позволяет монтировать удалённые директории на локальном компьютере. На локальной машине надо будет установить sshfs, но на удалённой, на которую вы, возможно, не можете устанавливать программы, ничего менять не придётся. Если же потратить на настройку систем некоторое время, и если на клиентском компьютере имеется работающий ssh-сервер, то можно будет ещё и монтировать локальные директории на удалённых системах. При этом не придётся беспокоиться о блокировке IP-адресов или портов. Фактически, если вы способны подключиться к удалённой машине, это означает, что вам удастся и то, о чём я хочу рассказать.

В результате, если это всё скомбинировать, оказывается, что я очень близок к цели. Я могу работать с командной оболочкой на клиенте или на сервере и имею возможность удобно читать и записывать файлы на обеих сторонах соединения. Для этого нужно лишь всё правильно настроить.
Читать дальше →
Всего голосов 27: ↑21 и ↓6+31
Комментарии37

Java-модель памяти (часть 1)

Время на прочтение5 мин
Количество просмотров82K
Привет, Хабр! Представляю вашему вниманию перевод первой части статьи «Java Memory Model» автора Jakob Jenkov.

Прохожу обучение по Java и понадобилось изучить статью Java Memory Model. Перевёл её для лучшего понимания, ну а чтоб добро не пропадало решил поделиться с сообществом. Думаю, для новичков будет полезно, и если кому-то понравится, то переведу остальное.

Первоначальная Java-модель памяти была недостаточно хороша, поэтому она была пересмотрена в Java 1.5. Эта версия модели все ещё используется сегодня (Java 14+).
Читать дальше →
Всего голосов 9: ↑7 и ↓2+10
Комментарии7

Как проводить код-ревью

Время на прочтение18 мин
Количество просмотров53K
Из документации Google's Engineering Practices

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


См. также Руководство автора CL, в котором даются подробные советы разработчикам, чьи коммиты проходят ревью.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии17

Лучшие плагины IntelliJ IDEA

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


Key promoter X


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

Идея проста: всякий раз, когда вы используете мышь для вызова команды в вашей IDE, появляется всплывающее окно, которое сообщает вам, каково сочетание клавиш для этого действия.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+43
Комментарии43

Логирование в Java / quick start

Время на прочтение7 мин
Количество просмотров248K
В ходе моей работы в компании DataArt я, в числе прочего, занимаюсь менторской деятельностью. В частности это включает в себя проверку учебных заданий сделанных практикантами. В последнее время в заданиях наметилась тенденция «странного» использования логеров. Мы с коллегами решили включить в текст задания ссылку на статью с описанием java logging best practices, но оказалось, что такой статьи в которой бы просто и без лишних деталей на практике объяснялось бы как надо писать в лог на Java, вот так вот с ходу не находится.

Данная статья не содержит каких-то откровений, в ней не рассматриваются тонкости какого либо из многочисленных java logging frameworks. Здесь рассказываю как записать в лог так, чтобы это не вызвало удивления у Ваших коллег, основная цель написания включить ее в список обязательного чтения для практикантов. Если все еще интересно, читайте дальше
Читать дальше →
Всего голосов 42: ↑36 и ↓6+30
Комментарии26

Подтянуть английский для собеседования — методика и трудозатраты

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

В данной статье хочу рассказать о том, как имея уровень английского “после школы и универа” я смог достичь уровня, достаточного для довольно комфортного и успешного прохождения собеседования в иностранную фирму. Полагаю, что российских специалистов с похожим уровнем владения английским достаточно много, как много и тех, кто желает устно общаться с иностранными коллегами. Как мне кажется, методика, к которой я пришел путем проб и ошибок оказалась достаточно простой, чтобы быть эффективной. К тому же, я имею привычку подробно трекать затраченное время. Поэтому, надеюсь, статья также сформирует у вас примерное видение необходимых турдозатрат.
Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии15

GitHub Desktop 2.2: что нового

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


Любой, кто использует Git, знает, что у него крутая линия обучения. Мы узнали от разработчиков, что большинство людей, как правило, учатся у знакомых, будь то коллега, профессор, друг или даже видео на YouTube. В GitHub Desktop 2.2 мы добавляем первую версию интерактивного учебника по Git и GitHub, который может стать вашим другом и помочь вам начать работу. Если вы новичок в Desktop, вы можете скачать и попробовать учебник по адресу desktop.github.com.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии17

Как найти работу с релокацией в Европу: практический гайд для IT-специалистов

Время на прочтение7 мин
Количество просмотров93K
Сам по себе поиск работы в сфере IT достаточно прост. Что же касается поиска вакансий с возможность релокации, здесь уже сложнее. Несмотря на то, что технологические компании по всему миру сейчас активно нанимают разработчиков и других IT-специалистов из-за рубежа, поиск таких вакансий забирает достаточно много сил и времени.

В этой статье я решил собрать наиболее популярные сайты/ресурсы, на которых реально найти вакансии с переездом в страны Европы.

Telegram-каналы



Джоб-борды для IT-специалистов и нишевые сайты


AngelList


На сегодняшний день AngelList является одним из наиболее популярных сайтов по поиску работы в стартапах по всему миру. Процесс поиска вакансий с релокацией на этом сайте очень прост – во вкладке «Compensation» выбираем опцию «Company Will Sponsor Visa». Чтобы сузить полученный список вакансий до максимально релевантных, можно использовать фильтры «Role» и «Location».

image

Glassdoor


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

Чтобы найти вакансии, которые предлагают релокейт, пишем в поисковой строке relocation developer или relocation и название интересной вам позиции. Чтобы сузить результаты поиска, уточняем город/страну, куда хотели бы переехать.

image

Поскольку на сайте Glassdoor нет специального фильтра для поиска работы с переездом, при поиске вакансий описанным выше методом могут попадаться нерелевантные. В целом же, ключевое слово relocation в поисковой строке делает свое дело.
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии23

Git изнутри и на практике

Время на прочтение11 мин
Количество просмотров19K
Умение работать внутри системы контроля версий — навык, который требуется каждому программисту. Зачастую может показаться, что закапываться в Git и разбираться в его внутренностях — лишняя потеря времени и основные задачи можно решить через базовый набор команд.

Команде AppsCast, конечно, захотелось узнать больше, и за консультацией по практическому применению всех возможностей Git ребята обратились к Егору Андреевичу из Square.


Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии2

Тестирование дешевых виртуальных серверов

Время на прочтение115 мин
Количество просмотров19K
У многих хостеров есть в продаже дешевые виртуальные серверы, к тому же в последнее время стали в большом количестве появляться рекламные тарифы с различными ограничениями (например, возможностью заказа одного такого виртуального сервера для одного аккаунта), цена на которые иногда даже меньше себестоимости IP-адресов. Стало интересно провести небольшое тестирование и поделиться результатами с широкими народными массами. Часть виртуальных серверов была предоставлена хостерами ранее для одного из моих проектов, на котором я выкладываю тесты, дополнительно было закуплено некоторое количество VPS не дороже 100 рублей за штуку.



Сразу стоит заметить, что характеристики виртуальных серверов отличаются друг от друга, а производительность, измеренная в определенный момент времени, является весьма относительной величиной, зависящей от нагрузки на ноду или канал, количества клиентов на ноде, времени суток, средней температуры на Марсе в сезон дождей и так далее, так что материал является скорее развлекательным.
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии34

Информация

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