Весной 2014 года я был студентом колледжа по ИТ-программе, подавшим заявку на размещение вакансий в кооперативе, и мне нужно было что-то, что отличало бы меня от других соискателей. Я решил, что заведу блог, где буду документировать случайные вещи, которые мне показались интересными. Звучит очень широко? Это потому, что у меня не было особой цели, и я хотел поэкспериментировать с разными темами. Я думаю, что в долгосрочной перспективе это было хорошее решение, поскольку оно позволило мне увидеть, что мне удобно, что работает, а что нет. Это то, чему лучше всего можно научиться на собственном опыте, но я подробнее остановлюсь на этом позже. А пока давайте вернемся к истории моей жизни.

блог --инит 💥

Первый пост вышел в апреле 2014 года под названием Парадигмы программирования. И да, тогда я использовал WordPress. Пост был коротким — 25 слов — со ссылкой на серию YouTube доктора Джерри Кейна. Если картинка — это тысяча слов, я думаю, это видео — 31,05 миллиона (17,25 мин * 30 кадров в секунду * 1000 слов)? Это так работает? 😅

Проекты

Через несколько месяцев я начал работать над проектом C++/Qt под названием TLE. Я использовал свой блог, чтобы публиковать скриншоты и макеты (любезно нарисованные близким другом), когда у меня получалось что-то интересное. Я с уверенностью могу сказать, что никто ее не читал, но все же было приятно просто изложить свои мысли на «бумаге». Это помогло мне подумать о том, что я делаю и как я объясню это тому, кто никогда раньше не работал над проектом.

Получение тяги

Пока все это происходило, я начал участвовать в сообществе openSUSE. Я бы публиковал сообщения на форумах, в списках рассылки и даже на IRC-канале. Я стал замечать общие вопросы о новых релизах и направлении проекта. Так что же я сделал? Я писал сообщения в блоге, объясняя это людям, у которых не было времени смотреть видео с конференции.

В этот момент частота моих постов стала медленнее, отчасти из-за того, что посты стали длиннее, а отчасти из-за занятости в школе. Чтобы сохранить свой блог, я начал вести блог о том, чем занимался в школе. Так я начал вести блог о техническом контенте (инструкции, руководства для начинающих и т. д.). Самый первый подобный пост был о настройке DNS-сервера в CentOS 6.6:

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

Переход на средний уровень

Я узнал о существовании Medium примерно в июле 2016 года. Я был очень заинтригован этим веб-сайтом, так как он выглядел очень красиво по сравнению с моим блогом и казался очень популярным среди писателей. После небольшого обсуждения я решил перейти на Medium. Основная причина, по которой я переключился, заключалась в надежде, что я получу лучшую рекламу. Я написал размышление об использовании Medium, которое вы можете прочитать здесь.

Полное руководство по AppArmor

В июле 2016 года я также выпустил руководство по AppArmor под названием Всеобъемлющее руководство по AppArmor. Желание создать пост возникло из-за желания понять, как работает AppArmor, но из-за трудностей с поиском документации, которая все объясняет. Поэтому я решил поработать с разработчиками AppArmor, чтобы написать руководство, в котором объясняются все основы, которые вам нужно знать для использования AppArmor. Руководство можно найти здесь. Это один из самых уникальных постов, которые я когда-либо писал, так как он претерпел несколько изменений, и я постоянно получал отзывы от реальных разработчиков AppArmor — то, чего я обычно не получаю от инструментов, о которых пишу.

Стать разработчиком

В 2016 году я закончил колледж и почувствовал, что все еще хотел бы больше узнать о компьютерах. Поэтому я решил подписаться на программу перевода, которая позволяет студентам колледжа переводиться на третий курс университета МакМастер. В конце моего первого года (апрель 2017 г.) в McMaster нам разрешили подать заявку на стажировку, и я подумал, что неплохо получить некоторый опыт работы. В итоге я получил должность стажера-разработчика программного обеспечения в пенсионном плане учителей Онтарио (OTPP).

Во время моего пребывания в OTPP я работал как с JavaScript, так и с Java. Параллельно в свободное время я работал над личными проектами. В начале я пытался заново реализовать проект, который я создал в школе — подкаст. Для нашего школьного проекта мы реализовали его с помощью Qt, но код был беспорядочным, и у нас не было тестов. Я решил создать приложение снова, но на этот раз с использованием JavaFX — потому что это помогло бы мне лучше освоить Java для работы — и протестировать его, что я понял на работе. При разработке этого приложения я многое узнал о философии тестирования и о том, как тестировать JavaFX. Заметив, что документации по TestFX — библиотеке, используемой для тестирования JavaFX-приложений — почти нет, я написал ее (можно найти здесь).

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

Сака

Весной 2018 года я стал мейнтейнером расширения для браузера под названием Saka. Когда я сменил предыдущего сопровождающего, мне пришлось изучить множество инструментов, используемых в проектах JavaScript. Такие вещи, как Webpack, Karma, Babel и так далее. Когда я начал разбираться в проекте, я понял, что не было тестов для проверки поведения приложения. Это вызвало у меня беспокойство — я не был уверен в том, что смогу модифицировать код, не нарушая работу других частей приложения. Поэтому я решил узнать, как тестируются расширения браузера, и, понимая, что это плохо задокументировано, я написал запись в блоге под названием Расширение браузера для модульного тестирования, которую вы можете прочитать здесь.

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

Отражение

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

Если вам понравился этот пост, не забудьте подписаться на этот блог, подписаться на меня в Твиттере и мой блог на dev.to.

P.S. Хотите внести свой вклад в проект с открытым исходным кодом? Приходите внести свой вклад в Сака, мы могли бы использовать помощь! Вы можете найти проект здесь:https://github.com/lusakasa/saka