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

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

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

Коллеги, вы меня огорчаете

Время на прочтение12 мин
Количество просмотров180K
В июле и августе 2020 года я, с подачи Григория Петрова, проводил для компании Evrone технические интервью на позицию Senior Golang Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.

Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Go». То есть, сформулирована она была по-человечески, перевод на канцелярит — мой. Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько лет — старый был с жестким закосом под DevOps. Методику, которой я пользуюсь для создания опросников и количественной оценки соответствия кандидатов, я излагал в своем докладе «Техническое интервью как инженерная задача» на конференции Saint TeamLead 2019.

И вот что я хочу сказать вам, коллеги: вы меня огорчаете.


Читать дальше →
Всего голосов 145: ↑101 и ↓44+93
Комментарии1152

Юнит-тестирование для чайников

Время на прочтение15 мин
Количество просмотров1.1M
Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



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

Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?

We need to go deeper
Всего голосов 70: ↑63 и ↓7+56
Комментарии65

Пять распространенных проблем кандидатов (по результатам 600 технических собеседований)

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

Компания Geekfactor cовместно с Getmentor.dev проводит программу подготовки к трудоустройству в зарубежные стартапы (бесплатно помогаем подготовиться к интервью и показываем резюме классным компаниям) — почитать о ней подробней и зарегистрироваться можно тут. Свой блог на Хабре мы хотим посвятить теме трудоустройства зарубеж и наша первая статья — про то, каких ошибок стоит избегать при прохождении технических интервью в зарубежные компании.

Недавно я провел свое 600-е собеседование на платформе interviewing.io (IIO). В этой статье я хочу рассказать о своем опыте, подходе к проведению собеседований и основных проблемах, которые встречались у кандидатов на технических собеседованиях.
Читать дальше →
Всего голосов 50: ↑18 и ↓32-9
Комментарии76

Как я пишу конспекты по математике на LaTeX в Vim

Время на прочтение9 мин
Количество просмотров128K
Некоторое время назад на Quora я отвечал на вопрос: как успевать записывать за лектором конспект по математике на LaTeX. Там я объяснил свой рабочий процесс по конспектированию в LaTeX с помощью Vim и Inkscape (для рисунков). Но с тех пор многое изменилось, так что я хочу опубликовать несколько постов в блоге с описанием нового процесса. Это первая из статей.

Я начал использовать LaTeX для конспектирования во втором семестре курса математики, и с тех пор написал более 1700 страниц. Вот несколько примеров, как выглядит конспект:


Читать дальше →
Всего голосов 222: ↑220 и ↓2+218
Комментарии133

GraphQL и Golang

Время на прочтение16 мин
Количество просмотров34K
Технология GraphQL за последние несколько лет, после того, как компания Facebook перевела её в разряд опенсорсных, стала весьма популярной. Автор материала, перевод которого мы сегодня публикуем, говорит, что попробовал работать с GraphQL в среде Node.js и на собственном опыте убедился в том, что эта технология, благодаря её замечательным возможностям и простоте, неслучайно привлекает к себе столько внимания. Недавно он, занимаясь новым проектом, перешёл с Node.js на Golang. Тогда он и решил испытать совместную работу Golang и GraphQL.


Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии11

Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели

Время на прочтение14 мин
Количество просмотров1.4M
Всем привет. На днях возникла идея написать статьи про основы компьютерных сетей, разобрать работу самых важных протоколов и как строятся сети простым языком. Заинтересовавшихся приглашаю под кат.


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

Как изучение Smalltalk может улучшить ваши навыки программиста

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


Smalltalk обычно воспринимается как старый, умирающий язык – антиквариат из ушедшей эпохи. Нет ничего более далёкого от истины.

Smalltalk по-прежнему очень актуален. Это отличный язык для обучения программированию людей, не имеющих технического образования. Это превосходный язык прототипирования для стартапов. Это мощный промышленный язык, используемый как крупными, так и малыми компаниями по всему миру. Есть веские причины рассмотреть использование современного Smalltalk сегодня, поскольку многое было сделано за последнее время, чтобы улучшить его возможности.
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии113

«Для меня сфера образования круче любой другой»: интервью с Анастасией Лавренко, руководителем разработки в Stepik

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

В этом году десять лет исполнилось Computer Science Center — образовательному проекту, созданному при участии JetBrains, Школы анализа данных и Computer Science клуба. Сегодня CS центр — это очные курсы в Питере и Новосибирске (а ещё дистанционные для жителей других городов), пять направлений обучения и больше трёхсот невероятно классных и талантливых выпускников. Истории некоторых из них мы хотим вам рассказать.

Первая героиня — Анастасия Лавренко, выпускница 2018 года. Сейчас Настя руководит разработкой образовательной платформы Stepik, а в свободное время и сама делает открытые онлайн-курсы. В интервью она рассказала, почему пошла учиться в CS центр, как попала в Stepik, и поделилась личным топом онлайн-курсов для программистов.

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

10 сервисов для организации списка дел и повышения продуктивности в 2021 году

Время на прочтение14 мин
Количество просмотров285K
Сейчас самое время навести порядок в своем списке дел и завести новый онлайн-планировщик, органайзер или календарь, чтобы в этом году уж наверняка стать более эффективным и продуктивным.

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



Что такое продуктивность?

Всего голосов 7: ↑6 и ↓1+7
Комментарии38

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google

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

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google.

Читать далее
Всего голосов 127: ↑117 и ↓10+148
Комментарии297

Как создать простой микросервис на Golang и gRPC и выполнить его контейнеризацию с помощью Docker

Время на прочтение4 мин
Количество просмотров49K
Привет, Хабр! представляю вашему вниманию перевод статьи «Go, gRPC and Docker» автора Mat Evans.

Существует множество статей о совместном использовании Go и Docker. Создавать контейнеры, способные взаимодействовать с клиентами и между собой, очень легко. Далее следует небольшой пример того, как это делается на базовом уровне.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии7

Введение в систему модулей Go

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

Грядущий релиз версии 1.11 языка программирования Go принесет экспериментальную поддержку модулей — новую систему управления зависимостями для Go. (прим.перев.: релиз состоялся)


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


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

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

Про лояльность и ЗП

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

Пишу эту статью для гениальных генеральных директоров, хитрых умных собственников и руководителей отделов кадров служб персонала компаний, в которых трудятся ИТ специалисты и разработчики. Я поработал много где - начиная от домашне-уютных, с "семейной атмосферой", компаний и до "кровавого энтерпрайза", типа гигантов нефте-золото-брильянто-страховой металлургии. Начинал с админства, макросов и программирования приложений БД и постепенно ушёл на тёмную сторону дорос до ИТ директора в одной хорошей ИТ компании. Сегодня хочу поговорить про лояльность компании и про "денежную мотивацию", которая "в ИТ - не работает".

Почитать сказки про лояльность
Всего голосов 203: ↑175 и ↓28+188
Комментарии709

Волк, предпочитающий самоубийство съедению овцы

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

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

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

Эти скриншоты стали виральными в китайских соцсетях и породили небольшую сенсацию.

Лучше смерть от камня, чем поимка овцы


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

Чтобы мотивировать ИИ-волка повышать свою производительность, разработчики также создали простую систему очков.

Если волк ловил овцу, то он получал 10 очков. Если он сталкивался с камнем, то вычиталось 1 очко. Чтобы волки имели стимул ловить овец как можно быстрее, за каждую прошедшую секунду у волков отнималось 0,1 очка.

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

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

Спустя 200 000 итераций исследователи обнаружили, что чаще всего волки просто ударялись о камни, чтобы совершить самоубийство.
Читать дальше →
Всего голосов 47: ↑41 и ↓6+54
Комментарии99

Распределённые вычисления: немного теории

Время на прочтение9 мин
Количество просмотров57K
Девять лет назад я начал «в свободное от основной работы время» преподавать компьютерные дисциплины в одном из университетов Санкт-Петербурга. И только сравнительно недавно к своему удивлению обнаружил, что в наших вузах практически отсутствуют курсы с фокусом на проблематику распределённых вычислений. И даже на Хабре эта тема не раскрыта в достаточной мере! Надо прямо сейчас исправлять ситуацию.

Этой теме я и хотел посвятить статью или даже серию статей. Но потом решил выложить своё учебное пособие по основам распределённых вычислений, вышедшее в свет в этом году (читай, небольшую книгу объемом 155 страниц). В итоге получился гибрид – статья со ссылкой на книгу. Книга распространяется бесплатно и доступна в электронном виде.

Вместо пролога. Приступив к тексту статьи, я в очередной раз задумался, а зачем программисту нужно знать теоретические основы распределённых вычислений. Этот вопрос я неоднократно слышал (и продолжаю слышать) от студентов и специалистов, уже работающих в области ИТ. Действительно, зачем, например, знать, что «множество событий распределённого вычисления упорядочено частично, а не линейно»? В чем, так сказать, каждодневная практическая польза этого фундаментального знания?

Должен признать, что у меня нет готового заученного ответа, который я могу выдать не задумываясь. Поэтому каждый раз приходится напрягаться извилинами, и каждый раз ответы и аргументы получаются разными. Вот и сейчас всё как впервые…
Читать дальше →
Всего голосов 52: ↑48 и ↓4+44
Комментарии37

Сайты для обучения программированию: Топ 100

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

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

Итак, сайты для обучения программированию онлайн, ТОП 100:
Читать дальше →
Всего голосов 41: ↑37 и ↓4+46
Комментарии61

Как я из Беларуси в Германию переехал

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

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

Читать далее
Всего голосов 30: ↑21 и ↓9+18
Комментарии56

А ваша служба является RESTful? Все что необходимо/обязательно знать про веб службы и REST

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

Введение


Вот не люблю я изобретать велосипед и статью я бы эту не написал, но пришлось. Про REST сказано уже довольно много. Многие поставщики веб служб готовы клясться, что их службы являются RESTful. Во время собеседования вы точно услышите хотя бы несколько вопросов про REST, независимо от того это собеседования для бэкенд, мобайл или фронтенд разработчика. Я вот помню как-то во время одного собеседования меня задали такой вопрос: «Вот вы написали в своем резюме, что знайте REST․ Ответьте пожалуйста, какой HTTP код вы получите, если при запросе к RESTful сервису ресурс не найден?». Ответ 404 был принят единогласно. Если честно, я так и не понял, как этот вопрос помог понять знаю ли я REST или нет, но одно могу уверенно сказать: REST понимают далеко не все. Вот некоторые вопросы, которые мучали меня долгое время:

  1. Зачем REST стал таким трендовым? Это архитектура была же предложена еще в 2000 году?
  2. Что я получу если моя служба будет RESTful?
  3. Как определить является ли служба RESTful или нет?
  4. Как правильно должны создаваться URL REST служб?
  5. Какие http методы и коды должны быть использованы в RESTful службе?

Если вы не можете дать исчерпывающего ответа хотя бы на один из этих вопросов, то продолжайте чтение. Если вы можете однозначно ответить на все эти вопросы, можете привести формат правильного URL, считайте, что GET, POST, PUT, DELETE обязательно должны соответствовать CRUD операциям с ресурсами, то вам обязательно надо продолжать чтение.
Читать дальше →
Всего голосов 43: ↑37 и ↓6+31
Комментарии125

Практическое руководство по анонимности в онлайне

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

Направленная антенна для удалённого доступа к публичному Wi-Fi

Обеспечить собственную безопасность (анонимность) в онлайне — тяжкий труд, требующий массивного объёма знаний. Даже лучшие профессионалы не всегда справляются.

Но это возможно.

Предупреждение. Для усвоения информации в полном объёме требуется несколько недель.
Читать дальше →
Всего голосов 84: ↑75 и ↓9+97
Комментарии125

Какие бывают языки программирования?

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

Студенты периодически спрашивали меня какой язык программирования учить чтобы получить хорошую работу и зарплату. Конечно, я не мог сказать учите этот язык, а этот не учите и будет вам счастье. Но зато мог дать информацию о языках программирования чтобы этот выбор был легче. Проклассифицируем языки программирования с семи сторон: Модные и не модные • Компилируемые и интерпретируемые • Универсальные и специализированные • Алгоритмические и языки описания данных • Низкоуровневые и высокоуровневые • Объектно-ориентированные и языки структурного программирования • Сопутствующие Фреймворки, Библиотеки и Технологии.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+4
Комментарии8
1

Информация

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