Илья Зыкин. Pro Жизнь
137 subscribers
1.1K photos
45 videos
4 files
95 links
Download Telegram
Об уважении к себе

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

Дорос я до 8 лет. Играли мы с мальчишками в игру "квадрат". Середина игры. И тут из окна мама одного мальчика кричит — Кирюша, иди кушать!

Кирюша мгновенно бросает мяч — иду!

Я стою открыв рот и не могу понять. А как же игра? А как же доиграть? А общие интересы? А что, так тоже можно было?

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

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

Нет, говнюком-отщепенцем быть не надо. Это не выгодно. Но и про себя не забывай. Ты классный
🔥5
Создатель Ruby on Rails обещает Active Record Search.

Блин, найти бы мою презентацию 5 или 8 летней давности, где я озвучивал необходимость в подобном инструменте.

Правда я думал, что это будет не Active Record Search а просто Active Search. Просто адаптер под другие инструменты. Но у DHH свой взгляд на вещи. Хозяин-барин.
👍4
Алгоритмы

Илья Николаевич, сколько раз вам за последние 20 лет приходилось писать алгоритмы, которые спрашивают на собеседованиях?

Ноль раз.

Илья Николаевич, но вы же крутой (ха! какая дешевая манипуляция), вы же их все знаете?!

Не знаю ни одного. И не хочу знать и не буду знать пока не потребуется. Потребуется прочитаю в интернете — но скорее всего не потребуются.

Илья Николаевич, но как же вы работаете на классных заказчиков без этого тайного знания?

Я работаю на тех, кто разрабатывает продукты и сервисы. Им это не требуется. Тем кому это требуется — я на них не работаю. Шок! Шок!

А еще я умею водить машину, не зная как работает трансмиссия и не зная о ней ничего кроме названия. Шок! Шок!

Илья Николаевич, но все говорят, что это прямо надо надо, без этого никак не состояться в профессии.

Пусть говорят. Людям же надо что-то говорить. Я вот тоже говорю — это же не значит, что я говорю единственно правильную истину. Надо думать своей головой. И подстраиваться под обстоятельства и требования вакансий.
🔥5
Алгоритмы. Что правда не знаешь? (Часть 1)

Под алгоритмами программисты обычно подразумевают алгоритмы сортировки или поиска по массиву (или списку или дереву). Очень редко когда что-то иное.

Это те алгоритмы, которые были разработаны математиками десятилетия назад и с тех пор более эффективных способов решения этих задач никто так и не придумал.

Ну, простую сортировку перестановкой все делали в школе. Согласен. Я наверное тоже могу написать цикл в цикле. Хотя ума не приложу зачем мне это делать, когда в любом языке программирования есть функция sort.

Еще об алгоритмах хотят знать степень эффективности (О — нотация и все такое).

Знание нужное только за 1 день до интервью, во время и 1 час после — пока не забудешь эту дурь еще на 3 года.

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

Все это важно только при подготовке к интервью. И в голодный год и я это успешно заучиваю. Но обычно сразу забываю.
👍3
Алгоритмы. Что правда не знаешь? (Часть 2)

А вот что действительно нужно знать об алгоритмах — этого никто не формулирует и на интервью не спрашивает.

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

Просто у людей нет опыта и никто им не подсказывал как это сделать лучше.

Кто-то скажет, Илья, ты говоришь что-то странное. Я про такое никогда не слышал(а). Такого не бывает.

А я отправлю вас на новости о сливе кода алгоритма сортировки и назначения весов одного крупного поисковика в зоне RU. Кто захочет, тот найдет (было пару лет назад).

И окажется, что те, кто спрашивает за алгоритмы — сам делает все черти как и лишь бы работало.

Будем учиться у лучших на рынке. Если и они делают деньги — нам-то чего страдать?!
👍3
После тяжелых будней программиста, хочется чего-то легкого. Например, Heavy Metal + Symphony orchestra концерт.
👍3🔥1
Про английский язык

Последние 12 лет я работаю с клиентами со всего мира. Много работаю с американцами. Провожу интервью на английском языке.

У меня фантастический английский!

Примерно 70% того что говорят — я просто не слушаю. Там нет ценной информации.

Из оставшихся 30% я понимаю примерно 30%. Иногда вообще не ничего понимаю.

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

У меня чудовищный славянский акцент. Я даже не пытаюсь его скрыть.

Я знаю и умею применять все основные 12-18 времен. Но по факту использую максимум 4.

Я не могу смотреть фильмы на английском. Я не понимаю юмора. У меня нет для этого культурного слоя носителей.

При этом я неплохо зарабатываю работая в командах с нейтив спикерами и людьми со всего мира. Даю лекции и презентации на английском. Коллегам нравится.

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

С кодом так же. Ты точно сможешь!
👍4
Деплой на практике

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

Но деплоить то все таки и мне надо.

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

1. Изучаем инфраструктуру.

Вероятно, в проекте есть девопс — этот такой современный сис. админ.

Девопс может создать вам инстанс (сервер) в облаке и дать вам доступ по SSH ключу.

Вероятно, перед сервером будет стоять какой-то CDN или сервис, который сам на себя возьмет обеспечение доступа к проекту по HTTPS. Сам разберется с сертификатами. Даже про покупку сертификатов или letsencript думать не придется.

Сфокусируемся на нашем проекте.
👍3
2. Доставка кода

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

Да, я бы не побрезговал (S)FTP для того чтобы закинуть код на сервер.

Если мне не надо поднимать 10+ серверов — я легко автоматизирую все руками и баш скриптами.

Если сервер один, то и того проще.

Не все об этом знают, но git позволяет на удаленном сервере создавать так называется BARE хранилища.

Это репозиторий без фактического кода, только с техническими данными о проекте.

Можно с локального компа закинуть код на сервер в bare хранилище.

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

Те. Принцип простой.

1) Я делаю с локального компьютера git push
2) Только небольшой фрагмент свежих изменений уходит на сервер.
3) Проект автоматически обновляется и сервисы перезапускаются.

Красота!
👍2🔥1
3. Обновление всего

Git bare репозиторий легко может отследить то, что в него поступил новый код. Запустить соответствующий хук.

Простейший скрипт отработает и обновит код самого проекта. Но что делать с перезапуском сервисов?

Поскольку все сейчас запускается в докере, а Docker + Makefile это самая классическая и убойная связка, то я в хуке гит репозитория в самом конце прописал только одну команду make update — а уж как она реализована на уровне проекта и что делает — это специфика конкретного проекта.

Обычно нужно компилировать ассеты фронта.

Обычно нужно перезапускать бэкенд.

Обычно нужно перезапускать Nginx. Перезапускать его не всегда прямо необходимо, но на случай обновления конфигов проекта я бы все равно его перезапускал.
👍3
4. Итоги

Мы узнали, что для деплоя простого сайта было бы хорошо знать и уметь

- работать с ssh соединением (по ключу)
- уметь работать с git и пушить на сервак
- знать о git bare репозиториях
- знать о git hooks (хуках)
- уметь настраивать NGINX
- уметь в Docker
- запускать в докере через Docker Compose Nginx и Backend
- уметь писать Makefile и автоматизировать рутинные операции

(Опционально) хорошо бы знать как настроить DNS и получить бесплатные сертификаты для вашего сайта.

На практике все эта работа занимает от 15 минут до 4 часов. Смотря какие обстоятельства.

Деплой это просто!
👍3
🔥7
Мой голос прозвучал на весь Стамбул 😂

Ездили в mall of Istanbul. Ходили в игровой центр. Там в Молле мини парк (высотой в 3 этажа) аттракционов.

Я пошел покататься на горках, сумку с телефоном и деньгами оставил жене.

Ну и конечно на выходе мы не встретились. Ходили кругами друг за другом и друг друга так и не нашлись в этом шуме и большом пространстве.

В итоге мне надоело, я пошел на кассу и говорю - ребята, деньги, кошелек, телефон в сумке, а сумка у жены с ребенком. Я потерялся. Спасите, помогите.

Они врубают микрофон и я говорю на весь огроменный многотысячный Молл. «Анна и Матвей, ваш папа ждет вас у кассы на втором этаже игрового центра»

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

Самое интересное, что рядовой сотрудник просто включил микрофон и врубил меня на весь ТЦ. Ну, мальчик 40 лет потерялся в игровом центре. Ну как не помочь?! 😂
👍7