Это — заметка для программистов. Если вы менеджер — почитайте версию для менеджеров.
Многие ребята, выбирая инструменты для нового проекта, начинают строить длинные таблицы, сравнивая фичи. Серьёзно обсуждают, что лучше — SFC во vue ил и CSS Modules в реакте.
Если вы выбираете инструменты для домашнего проекта — это вполне ок: подобрать приятный тулинг в этом случае настолько же важно, как и запустить проект.
А вот если вы начинаете коммерческий проект, то смотреть нужно совсем в другую сторону. Фичи — это состояние проекта сейчас. Подумайте лучше о том, каким будет ваш фреймворк потом. Удержит ли он комьюнити в ближайшую пару лет? Успеет ли за быстроизменяющейся средой? Будет ли адекватным предложение на рынке труда?
Искать ответы на эти вопросы поможет интуиция, reddit и Google Trends. И да, если вы выбираете фреймворк для фронтенда, то берите любой — всё равно протухнет через год.
Я не питаю иллюзий по поводу базы знаний: трудозатраты, вложенные в накопление информации, ко мне не возвращаются.
Как-то я открыл Симлноут и увидел там 50 аккуратных записей, трудолюбиво созданных за прошедшие полгода. При этом не смог вспомнить ни одного раза, когда я этими записями хоть как-нибудь воспользовался. Даже если посчитать, что на создание каждой записи я потратил одну минуту, то это почти час осознанного времени, который не принёс ровно ничего.
После этого я отправил весь свой архив знаний в корзину, и ни разу с тех пор не пожалел.
Всё, что мне кажется ценным как знание, я распихиваю по соответствующим местам. Интересную статью кидаю коллегам или сразу добавляю в общую вики. Доступы и документы храню в менеджере паролей. Идеи для постов — трелло, скелеты и черновики — в Bear.
В этой заметке рассказываю об инструментах, которые использую для разработки и выступлений — с фоточками и списком оборудования.
Я использую MacBook Pro 14" 2022 года. Когда я работаю дома, ноутбук подключён к монитору LG UltraFine 4K прошлого поколения — кажется это единственный монитор с честной ретиной и нативным для мака DPI. Поколение монитора важно — подробнее см. обзор на «Вёрдже».
Я не использую два дисплея, поэтому ноутбук работает Clamshell mode. Единственное исключение — стримы: для них я открываю на ноутбуке Open Broadcaster Software.
Мой рабочий стол
В качестве органов управления я использую Happy Hacking Keyboard и Magic Trackpad. Мои пальцы не могут изогнуться, чтобы воспользоваться странной клавишей, которую засовывают в русских раскладках между левым шифтом и z, поэтому я всегда покупаю американские клавиатуры, вот — клавиатура ноутбука:
Монитор LG UltraFine 4k на кронштейне Ergotron LX Desk Monitor Arm
Клавиатура Happy Hacking Keyboard Pro Hybrid Type-S
Внешний тачпад Magic Trackpad 2
Веб-камера Razer Kiyo Pro
Микрофон Shure SM7B со штангой Blue Compass
Микрофонный предусилитель Art Tube PAC
Звуковая карта Focusrite Clarett+ 2Pre
Наушники Sony MDR-7506
Поскольку я работаю стоя, напишу пару слов про стол. Сначала я работал за обычным икеевским столом, собранным из самой дешёвой столешницы и регулируемых ножек, но в какой-то момент эта конструкция меня достала —из-за высоты стол сильно шатался. Задумав поменять стол, я посмотрел на рынок и сильно удивился — меньше, чем за 20 000 ₽ высокий стол не купить, причём даже самые дорогие экземпляры, судя по обзорам на ютубе, не отличаются надёжностью.
Большая стоимость обусловлена тем, что все высокие столы на рынке — регулируемые: у дешевых столешница поднимается вручную, у дорогих — с помощью электромоторов. Здраво рассудив, что регулировкой высоты я воспользуюсь ровно один раз — при установке стола — я просто пошёл на лайвмастер и заказал стол под свой рост. Получился красивый и надёжный предмет мебели (который до сих пор пахнет деревом!), по цене ниже икеи.
Софт
Я не люблю IDE, и в роли редактора кода использую neovim. Долгое время я сидел в Visual Studio Code, но конце 2021 года я устал бороться с увеличивающимся количеством скрепышей фич, плюнул и перешёл на neovim в терминале iTerm2:
Так выглядит экран во время разработки
Основные плагины:
coc для автодополнения, которое понимает язык (LSP)
fzf для быстрого открытия файлов
nerdcommenter, чтобы быстро комментировать куски кода
vim-vinegar, когда нужно походить по файловой системе
Нашёл себе клёвое развлечение — писать код на камеру. Прямо беру задачу из беклога, включаю Open Broadcast Studio и транслирую на ютуб.
Получился отличный лайфхак — я одновременно решаю задачи и практикуюсь не бояться камеры даже в таком интимном деле, как написание кода. Для тех, кто ходит на стримы — это бесплатное и крутое обучение. Формат наставничества с расшаренным экраном лучше всего прививает правильные программистские привычки — читать документацию вместо stackoverflow, писать тесты до кода, или не бояться рефакторить.
Я никогда не отделяю личное время от рабочего — по-моему, это неествественно. Скажем, если я придумал классную фичу не на собрании с коллегами, а на утренней пробежке, что её теперь нельзя класть в беклог? А если я в рабочее время решил 30 минут поспать, чтобы очистить голову, считается ли, что я украл это время у работодателя?
Гораздо лучше разрешать сознанию делать, что оно хочет. Если мне пришёл в голову офигенный пример для нового поста в блог, я всё брошу и запишу его — и не важно, будний день сейчас или новогодние каникулы. Если вечером в субботу у меня возникнет настроение позаниматься улучшением нашего рабочего кластера — я открою консоль.
Многие делят время на рабочее и личное, чтобы личную часть использовать для отдыха и переключения сознания. У меня такие периоды тоже есть, но на отдыхе я не делаю вообще ничего: не отвечаю на личные и рабочие письма, не пишу в блог, не думаю над архитектурой и не пишу код.
Секрет в том, что когда делаешь что хочется, вместо того, что нужно, то время нужное на отдых сильно сокращается — можно спокойно работать по 6—7 дней в неделю, отдыхая когда нужно, а не когда положено обществом.