Pull to refresh
11
0
Aliaksei Krychko @sand_alkr

Software Engineer

Send message

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

Reading time12 min
Views206K

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →
Total votes 155: ↑150 and ↓5+191
Comments342

Вопросы будущему работодателю

Reading time3 min
Views56K


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

Под катом список тем, которые покажут проблемные места там, где о них не любят упоминать.
Читать дальше →
Total votes 114: ↑108 and ↓6+102
Comments87

Data Science проект от исследования до внедрения на примере Говорящей шляпы

Reading time25 min
Views30K


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

Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments2

25 ошибок начинающего программиста

Reading time19 min
Views129K

Научитесь выявлять их. Выработайте привычки избегать их.


Цель этой статьи не загнобить новичков за типичные ошибки, а научить выявлять их и избегать. Порядок перечисления – случайный.

От переводчика


Иногда бывает трудно объяснить простыми словами казалось бы банальные вещи: зачем использовать гит, в чем фишка инкапсуляции, зачем писать тесты, как планировать свой код, рефакторить чужой и т.д. Мне показалось, что в этой статье компактно собраны важные «гуманитарные» аспекты программирования. Что-то вроде морального кодекса, ориентира и мотиватора в принятии решений, связанных с написанием кода.

Как бы это смешно не звучало, я работал над этим текстом с середины марта, стараясь подобрать подходящие формулировки и упростить для восприятия. Ещё пару дней воевал с хабра-редактором. Поэтому, если вы найдёте недочёты, прошу не винить меня в нерадении, а оповестить, я их сразу же исправлю. Я думал украсить статью картинками, но решил, что это только раздует её до совсем неприличных размеров. Приятного чтения.
Читать дальше →
Total votes 78: ↑69 and ↓9+60
Comments231

Какие у вас есть вопросы?

Reading time6 min
Views30K
«Какие у вас есть вопросы?» – вопрос, который гарантирован на любом собеседовании на работу.
«И если у кандидата нет вопросов, то вопрос возникает по поводу кандидата» – как-то сказала мне знакомая HR из Кремниевой долины в разговоре о поиске работы в США.

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

На эту тему недавно нашла занимательный сайтик-генератор вопросов для интервью KeyValues.com. Для тех, кто не владеет английским в достаточной мере, я и решила сделать перевод.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments23

Лекции Технополиса. Проектирование высоконагруженных систем (осень 2017)

Reading time5 min
Views51K


Мы начинаем публиковать курсы лекций Технополиса — образовательного проекта команды Одноклассников в Санкт-Петербургском Политехническом университете Петра Великого. Создание высоконагруженных приложений — это не только проектирование и написание кода, но и огромное количество других аспектов на всём протяжении жизненного цикла продукта. Мы пройдём по всему процессу создания и использования высоконагруженной системы. Особое внимание будет уделено особенностям эксплуатации, сетям, балансировке нагрузки, иерархии памяти, повседневным инструментам. Также поговорим о мониторинге, аудите и многом другом. Лекции курса читает команда экспертов под руководством ведущего разработчика в Одноклассниках Вадима Цесько.

Список лекций:

  1. Введение (Вадим Цесько incubos)
  2. Типовые архитектуры (Александр Христофоров)
  3. Эксплуатация (Илья Щаников)
  4. Сетевой стек (Дмитрий Самсонов dmitrysamsonov)
  5. Балансировка (Андрей Домась)
  6. Процессоры и память (Алексей Горбов)
  7. Хранилища данных (Сергей Егоричев)
  8. JVM (Андрей Паньгин apangin)
  9. Мониторинг (Сергей Шарапов Sharapoff)
  10. Облака (Леонид Талалаев)

Total votes 77: ↑75 and ↓2+73
Comments14

Что почитать на новогодних праздниках

Reading time4 min
Views34K
Составили для вас подборку книг, которые помогут прокачать полезные для работы скиллы и узнать что-то новое, не делая над собой титанических усилий.
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments15

Просыпаешься, а твое приложение на главной в App Store

Reading time24 min
Views27K


Вокруг нас достаточно разработчиков, которые хотели бы заняться своим проектом. Зачастую эти идеи так и пылятся в головах людей по самым различным причинам. Истории Вадима Смирнова из 2ГИС ( zloypakimon ) — как раз о том, как претворить их в жизнь. Потратив несколько выходных за год, он смог сделать пять разных проектов, не заработал миллионы, но при этом не разочаровался и не прекращает работать над pet-project'ами.

В основе публикации — доклад Вадима на AppConf 2017.
Читать дальше →
Total votes 50: ↑46 and ↓4+42
Comments25

Кто такие «седые странники» Австралии

Reading time7 min
Views88K

«Седой странник» пополняет запасы воды из артезианского источника в пустыне NT, насос питается ветряком

В Австралии очень длинный средний срок жизни — 85 лет. Для сравнения — у нас только недавно он перешагнул 70, до этого был в районе 65. Пенсия наступает в 55-65 лет. Остаётся ещё примерно 20-30 лет на то, чтобы что-то делать.

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

Итак, дом сдаётся в аренду, и бабушки с дедушками покупают себе дом-на-колёсах. Это или прицеп к внедорожнику с контейнером-домом, или фургон типа «сухопутная яхта» или даже переделанный автобус. И едут в «кругосветку» по Австралии — это легко, потому что весь континент — это одна страна (раза в два меньше России), и есть кольцевая дорога вокруг. На годик-полтора, как поначалу думают эти прекрасные люди. И застревают на 10-15 лет.

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

Opensource контроллер умного дома на базе Arduino Mega 2560 с поддержкой MQTT, DMX-512, 1-Wire, Modbus и Openhab

Reading time12 min
Views43K
Сегодня я решился вынести на суд общественности проект, работу над которым вел на протяжении последней пары лет: «LightHub». То, что получилось в итоге, можно назвать, пожалуй, самым дешевым решением для создания Умного дома, которое, тем не менее, умеет:

  • Управлять освещением и силовыми устройствами(Реле, диммеры DMX-512 и Modbus RTU)
  • Управлять теплыми полами (в качестве термодатчиков используются полтора десятка дешевых DS18B20, разведенных по квартире)
  • Управлять задвижками вентиляции/кондиционера
  • Управлять самодельной системой приточной вентиляции.
  • Многое такого, о чем я изначально не задумывался, просто в силу того, что контроллер получился абсолютно открытым, гибко конфигурируемым, и прекрасно дополняющим Опенсорсные решения Openhab+Mosquitto+NodeRed

На вход контроллера подключаются обычные выключатели, кнопки, контактные датчики, датчики протечки и пр. которые могут управлять как локальными нагрузками так и устройствами, подключенными к другим таким же контроллерам или ко всему, что понимает протокол MQTT. У меня, например, подключен геркон, установленный в коробке входной двери. Когда закрываю замок на три оборота — выключаются свет, теплые полы, бойлеры, AV ресивер. Когда возвращаюсь — состояние этих приборов восстанавливается как было до ухода.

На выход — например, такие вот релейные модули, DMX, Modbus переферия.

Контроллеры конфигурируются при помощи JSON файлов, которые при старте контроллера загружаются по http (далее, конфиг можно сохранить в NVRAM через Serial CLI). Ну и, конечно, все это управляется системой Openhab 2, через штатное мобильное приложение.
Задачи «малой автоматизации» решены как при помощи штатных openhab rules (не очень удобных), так и при помощи NodeRed. (По поводу NodeRed вот статья, которая прекрасно описывает пример автоматизации.)

Исходники, вместе с примерами конфигов, выложены на GIThub, описание понемногу выкладываю на сайте проекта. Соответственно, более полная история под катом.
Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments84

Игры для программистов, часть вторая

Reading time5 min
Views82K
Прошло четыре с половиной года с тех пор, как я, пользуясь свежеполученным инвайтом, написал предыдущий хабрапост с подобным заголовком. Большой срок для игровой индустрии. Успело появиться много новых хороших игр, и недавно я ощутил настоятельную необходимость поделиться знанием о них с широкой общественностью.

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

Infinifactory


image
И что же это за майнкрафт такой?
Total votes 58: ↑57 and ↓1+56
Comments74

Как поменьше беспокоиться о собственной бездарности

Reading time7 min
Views86K

Только что я столкнулся с еще одним проявлением синдрома самозванца: «Я правда разработчик — или просто хорошо гуглю?»

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

Переведено в Alconost

Если информацию легко найти, это не делает человека глупым


Частенько мне доводится слышать одну историю — полагаю, подлинность ее сомнительна, но, как бы там ни было, суть такова. Когда у Эйнштейна попросили номер телефона, он полез его искать и сказал: «Зачем запоминать то, что можно найти менее чем за две минуты?»

Читать дальше →
Total votes 83: ↑76 and ↓7+69
Comments226

История Half-Life 2

Reading time25 min
Views91K


В понедельник, 9 ноября 1998 года, около четырёх часов вечера в обычном офисном комплексе где-то под Сиэттлом человек в синей рубашке берёт в руки монтировку. Он держит её обеими руками и встаёт в позу для атаки. Затем следует смачный удар по головокрабу. Набитая игровыми деньгами из «Монополии» и заводными игрушками с персонажами «Южного парка» пиньята падает на пол. Под ликование толпы краба добивает ещё один человек. Это Гейб Ньюэлл и Майк Харрингтон, основатели компании Valve Software, празднуют выход своей первой игры Half-Life на тиражирование.

В четверг, 14 октября 2004 года, в 12:15 дня после долгих уговоров толпы уничтожить цель пораньше церемония повторяется. На этот раз Гейб в красной поло обороняется от нападения сканера из Half-Life 2. Контрольные удары для болтающихся на верёвочке кусочков пиньяты выполняет сценарист игры Марк Лэйдлоу. На «золото» вышла вторая игра серии.

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

Не стала исключением Half-Life 2: игра была в разработке почти 6 лет. По меркам игровой индустрии — это эпоха. За шесть лет игровые консоли успевают разок обновиться. Как можно было так всё затянуть и опять сорвать срок релиза?
Читать дальше →
Total votes 69: ↑68 and ↓1+67
Comments109

История Half-Life

Reading time18 min
Views91K

Изображение: Айван Бакула.

Между датой 10 сентября 2016 года и 10 октября 2007 года — 3258 дней. Между 10 октября 2007 года и 8 ноября 1998 года — те же 3258 дней. Каково значение этих вычислений? Приведённая дата в 1998 году — это день выхода Half-Life. Дата из 2007 года — день выхода Half-Life 2: Episode 2. С момента релиза последней из существующих игр серии прошло уже больше времени, чем между выходом первой и последней игр.

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

Чтобы попробовать понять, почему так происходит, нужно копнуть в самое начало Valve. Ниже 1996 года, ещё во времена совсем другой компании.
Читать дальше →
Total votes 119: ↑118 and ↓1+117
Comments68

Трамплин вызова магических функций в PHP 7

Reading time12 min
Views16K


В этой статье мы подробно рассмотрим оптимизацию в виртуальной машинe в PHP 7 (виртуальной машине Zend). Сначала коснёмся теории трамплинов вызовов функций, а затем узнаем, как они работают в PHP 7. Если вы хотите полностью во всём разобраться, то лучше иметь хорошее представление о работе виртуальной машины Zend. Для начала можете почитать, как устроена ВМ в PHP 5, а здесь мы поговорим о ВМ PHP 7. Хотя она и была переработана, но действует практически так же, как и в PHP 7. Поэтому если вы разберётесь в ВМ PHP 5, то разобраться с ВМ PHP 7 не составит никакого труда.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments26

PHP: неправильный путь

Reading time18 min
Views71K
image

В мире PHP-программирования существует набор трендов. Некоторые люди активно продвигают их (в книгах и на сайтах) как «современный PHP», а другие подходы выставляют как устаревшие, глупые или просто неверные.

Похоже, все эти люди без устали стараются заставить каждого программировать так, как они считают нужным. Эта статья написана, чтобы поделиться прагматичным взглядом на PHP-программирование. Взглядом, продиктованным опытом и практическими последствиями, а не популярными тенденциями, теориями или академическими догмами. Материалы, представленные на сайте PHP — The Wrong Way, будут обновляться по мере появления новой информации. Приглашаем всех поучаствовать в этом.
Читать дальше →
Total votes 104: ↑83 and ↓21+62
Comments368

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

Reading time7 min
Views213K
image

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

Допустим, я знаю о девушке две вещи — симпатична она мне или нет, а также, есть ли о чём мне с ней поговорить. Если есть, то будем считать это единицей, если нет, то — нулём. Аналогичный принцип возьмем и для внешности. Вопрос: “В какую девушку я влюблюсь и почему?”


Можно подумать просто и бескомпромиссно: “Если симпатична и есть о чём поговорить, то влюблюсь. Если ни то и ни другое, то — увольте.”

Но что если дама мне симпатична, но с ней не о чем разговаривать? Или наоборот?
Total votes 60: ↑59 and ↓1+58
Comments92

Цели против ограничений

Reading time4 min
Views23K

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


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


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


Я видел много технических стартапов, которые теряли из виду, что, как и зачем они делают, и скатывались к 100-процентному фокусированию на добыче денег, необходимых исключительно на поддержание текущего состояния дел. Такое встречается очень часто. Подумайте о всех этих благотворительных фондах, которые начинали с чёткой цели (условно говоря, "спасти кота"), но спустя несколько лет вперёд оказывается, что большинство их усилий — если не все — направлены лишь на то, чтобы найти денег на то, чтобы выплатить всем зарплату и продолжать "благотворительность".

Читать дальше →
Total votes 41: ↑32 and ↓9+23
Comments32

Каково это — быть разработчиком, когда тебе сорок

Reading time18 min
Views229K
Примечание от переводчика:

Этот пост был написан и опубликован на Medium разработчиком приложений Адрианом Космачевским из Швейцарии. Кроме подготовки перевода его публикации, я также пригласил и самого автора, Адриана ( akosma ), на Хабр, для того, чтобы он смог лично ответить на любые вопросы участников сообщества, если таковые возникнут. Думаю, для общего удобства при общении в комментариях с ним стоит использовать английский (и, при желании, дублировать на русском).



Привет всем, я — сорокадвухлетний программист-самоучка, а это моя история.

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

image

Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 10 часов утра 6 октября 1997 года, в городе Оливос, к северу от Буэнос-Айреса, в Аргентине. Был понедельник. Не так давно я праздновал свой 24-й день рождения.

Мир в 1997 году


Тогда он был немного другим. На веб-сайтах не было предупреждений об использовании cookie. Новаторскими в сети были сайты вида Excite.com, а моим любимым поисковиком был AltaVista.

Мой электронный ящик имел вид kosmacze@sc2a.unige.ch и был расположен на личном веб-сайте, который размещался по адресу http://sc2a.unige.ch/~kosmacze. Тогда мы еще оплакивали принцессу Диану, а Стив Джобс только-только вернулся на роль CEO и убедил Microsoft «вбросить» в Apple Computer 150 миллионов долларов. Digital Equipment Corporation подала в суд на Dell, останки Че Гевары вернули на Кубу, только начался четвертый (!) сезон «Друзей». Был убит Джанни Версаче, скончались Мать Тереза, Рой Лихтенштейн и Жанна Кальман. Люди зависали за Final Fantasy 7 на PlayStation, будто бы были наркоманами, Би-Би-2 начал вещание телепузиков, а Кэмерон только собирался показать миру свой «Титаник».
Читать дальше →
Total votes 200: ↑194 and ↓6+188
Comments321

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity