«Думаю, JavaScript не подходит для веба». 10 вопросов программисту, 4 выпуск (из Берлина)
Этот и ближайшие несколько выпусков будут о ребятах, которые живут и работают в Германии. Герой этого интервью — Сергей Ермолаев (Sergiy), фронтэндер из Берлина. Учился на Немецком факультете экономики и права в Грузии. Начал админить сеть в универе, увлекся Flash, с его помощью адаптировал образовательные программы для детского сада. Потом занесло в крупное казино, где он переписывал на Flash криво написанную рулетку. Переехал на Мальту по приглашению Betsson Group, но за полтора года заскучал и поехал в Германию за орднунгом в компанию AiComp.
Его путь: Flash AS2/AS3 → AngularJS → Angular/React/Vue → Kotlin (Spring Boot, Android, Angular), Flutter, C#
1. Расскажи о фиче, которую ты реализовал и которой гордишься.
Да, была такая, для рулетки в казино. Там сразу несколько фич было. Целый canvas render для игрового стола: несколько «канвасов» друг на друга были наложены, с разной прозрачностью. Довольно сложно было, потому что нужно было эмулировать флэшовый стек и еще с HTML как-то совмещать. Плюс поверх необходимо было добавить звук. И чтобы все работало нормально в разных браузерах, в том числе мобильных. Короче, крутое решение получилось: с генерацией звуков из папки, с подхватыванием всех ассетов… Это у меня заняло где-то месяц: работал по 16 часов. Обещали премию, но по итогу денег не оказалось. Это был момент, когда я понял, что надо сваливать.
2. А теперь — про самый лютый факап.
Да-а-а-а. Тоже в казино. В свое время на Flash я успел наговнокодить. Так получилось, что игрок делал двойную ставку: он видел одну фишку, а по факту ставил две. И если проигрывал, то проигрывал двойную сумму. Выиграть тоже можно было, но это не часто. Нафакапил я на тысячи долларов. Но из зарплаты не вычли, как-то все нормально прошло.
3. Опиши свое рабочее пространство: от кресла и монитора до сред программирования и любимых утилит.
Очень немецкая фишка — подвижный стол, у которого можно регулировать высоту. И лично мне обязательно нужен 4k-монитор, хотя по Берлину — это довольно крутое требование. Я вообще мало знаю местных ребят, кто смог попросить оборудования больше, чем на 300 евро. Так что этот монитор себе покупал я сам, лишь бы не мучиться.
Ноутбук принадлежит компании. Это Thinkpad 470p с увеличенной батареей, удвоенной оперативкой. Такая рабочая лошадка, которую сломать не получится. Там внутри i7, поэтому мощности мне хватает.
4. По какому принципу ты выбираешь работу? Стек, продукт, бытовые условия, деньги?
Деньги — не самое главное. Я, может быть, согласился бы и на меньшую сумму, если бы была очень интересная работа. У меня вообще есть проблема: если проект скучный, не интересный, то начинается страшная депрессия. Я впадаю в ступор и ничего не могу делать. Так что интересный проект — это самое главное.
И обязательно сама технология должна быть интересной мне. Я бы не стал связываться с Java, Spring Boot. Но Kotlin, да — это круто. Это должно быть что-то откуда ты почерпнешь новые знания и опыт.
5. Что в технологиях и языках, которые ты используешь, ты бы хотел исправить?
Господи! JavaScript! Убейте его. Я думаю, что он не подходит для веба. Его надо пилить, пилить, пилить и пилить. Допустим, система прототипирования. Там нет обычных классов. Их как бы добавили в новой ревизии ES6, но это просто syntax sugar. И там очень странные баги: если взять единицу как цифру и добавить к единице как строке и потом отнять единицу, ты получишь совершенно неожиданный результат. Ты можешь знать все эти нюансы и они тебе никогда не понадобятся, но может возникнуть ситуация, когда хер его знает, что вообще происходит. Есть даже такой сайт js-shit — там собраны перлы из JavaScript, что можно получить, случайно выстрелив себе в ногу.
Ну то есть TypeScript или Flow решают сейчас проблемы. И на на гугловский Dart я позитивно смотрю — там есть очень интересные фичи. Но по итогу ты опять-таки получаешь JavaScript.
6. Где лучше перенимать чужой опыт — в вузе, на конфах, на хабре? Еще где-то?
Частично — на Хабре. Стоит смотреть, что люди пишут, и обязательно читать комментарии. И обязательно лезть в source code проектов на GitHub, которые более или менее «со звездочками».
С книгами вот все плохо — очень редко можно найти такую, где все уже давно не устарело. Они могут подойти для начинающих, потому что там много места отведено тому, как устроена технология в принципе. А если ты уже что-то умеешь, то я бы советовал читать блоги евангелистов технологии, которой ты пользуешься.
Но в любом случае ты будешь факапить поначалу, где только можно.
7. Будь у тебя неограниченные ресурсы (время, деньги, мощности, люди), каким проектом ты бы занялся?
В космос бы не полетел, зачем Марс засорять? Но обязательно купил бы в деревне домик и разводил цветы. Обычный домик без выкрутасов, с маленьким бассейном, может быть. Гнал бы грузинскую чачу дома. И йогой бы занялся.
На пенсию в Германии выходят примерно в 65. И у меня нет особо планов после 40–45 продолжать программировать. Поэтому в этот момент я бы открыл стартап, запустил бизнес и особо не лез в него — молодые лучше знают свое дело. А я бы занимался цветочками.
8. Как ты отдыхаешь? Что делаешь кроме работы?
Сейчас я вообще никак не отдыхаю. Не получается. Ощущаю, что начинаю выгорать, и поэтому как раз через неделю ухожу в отпуск на месяц. В Германии можно без проблем взять отпуск и на больший срок. Главное предупредить хотя бы за месяц.
Сейчас собираюсь сгонять к родителям в Тбилиси: поесть, поспать, может смотаться в Батуми. Но это не активный отдых, а такой… обязательный. А так у меня в планах Норвегия — хочу посмотреть на фьорды. Дорого, согласен, но я один, поэтому могу себе позволить. И это больше к зиме уже.
9. Расскажи про 3 любимые книги — учебную, научно-популярную и художественную.
- Думаю, нужно почитать классические книги по хорошему коду. Gang of four (авторы книги Design Patterns — прим. ред.) надо обязательно. Но в целом я особо смысла в учебных книгах не вижу, потому что то, что ты читаешь сегодня, завтра уже устаревает. Проще почитать официальную документацию — будет тот же результат.
- Научпоп не особо читаю, но стараюсь смотреть на YouTube «Антропогенез», где ребята против альтернативных теорий и пытаются рассказать, как все в науке обстоит на самом деле.
- Художественная — «Чапаев и пустота», Пелевина. Мне вообще Пелевин нравится.
10. Если прямо у тебя на глазах в ИИ проснется сознание, что ты ему скажешь?
Постараюсь выяснить, насколько будет возможно интеграция такого интеллекта с живой человеческой особью. Возможен ли симбиоз двух интеллектов.
Вопрос от предыдущего гостя: если бы твою профессию, дело всей жизни и то, чем ты кормишь близких (семью) в один прекрасный день объявили незаконным, что бы ты сделал?
Скорее всего я попытался бы сменить профессию. Не вижу смысла нарушать закон. Программирование — это интересно, но это не дело всей жизни. Есть куча сфер гораздо интереснее: химия, физика, математика.
Бонус: задай вопрос другому разрабу
Осознай ты себя бессмертным или не стареющим, преодолевшим стандартные 70 лет раза два — три, как бы ты продолжал жить?