История о том, как начал программирование как хобби?

На протяжении всей жизни я был поглощен компьютерной техникой. Я в начальных классах пользовался кнопарями на Symbian и смартфонами на Android.

Стоп, что? Android? Да, ещё как, но моя история любви к программированию в качестве увлечения начинается вовсе не с мобильных и настольных приложений, а с ботов в Discord.

Итак, конец 2018 года. Однажды я хотел создать Discord-бота, который показывал бы информацию о пользователях, текущем сервере, мемы и тому подобное, чтобы развлекать публику на манер того, что делали уже конкуренты - та же Tatsumaki, MEE6 и JuniperBot.

Как это обычно бывает новичку в новой сфере, тяжело начать делать самому. Документации особо не спасали, а в чужие наработки я не лез, поэтому я попросил у моих бывших товарищей написать базовую реализацию простенького бота, что они, конечно, и сделали. Реализация была написана на Node.js с библиотекой discord.js. Работал бот не каждый день, тогда я его запускал на “картофельном” железе - AMD Athlon II X2 250 и 2 гига оперативки. Сейчас у меня техника уже другая, но не суть.

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

Минимум переменных, разъезженные строки, абсолютная статика и отсутствие какой-либо локализации, мда. Именно в свои 14-15 лет я таким извращением и занимался, потому что опыта в структурировании кода не было.

Позже нашелся опыт и в десктопных и мобильных приложениях, где я только не писал - на Python, C++, Visual Basic и даже Delphi с C#. Причем я пробовал не только современные IDE, но и ретро, над чем я работал уже не первый год.

Больше практического опыта у меня появилось только тогда, когда я начинал разрабатывать клиенты для любительских социальных сетей, хотя были и исключения. Например, мой самописный клиент Jabwave работает с протоколом Jabber, я планировал сюда добавить поддержку IRC вместо Telegram (в очередной раз, да), но у меня руки еще не дошли, зато как на третьем скриншоте такую кастомизацию сделал. Обалдеть.

Вообще я приверженец классической разработки Android-приложений, потому что не особо понимаю, почему на биржах труда и агрегаторах для поиска работы чаще всего предлагают Kotlin вместе с Jetpack Compose.

Я пробовал их применить из курса от Google (по которым в колледже и изучали), но мне что-то не заходит и больше за пределы курса не вырос. Возможно, потому что с Jetpack Compose я общаюсь на “вы”, а реальное применение нашел только в приложениях на Java, и то не везде.

Не хватает только реальной практики, как правильнее хранить фотографии и аватарки в кэше, чтобы процесс загрузки был оптимизированным и не зависел напрямую от серверной части API. Я думаю, что во времена старых версий Android этот вопрос был весьма актуальным, так как фотографии в исходном качестве потребляли много ресурсов, а регулярно вычищать кучу надо регулярно. И первое, что приходит в голову - RecyclerView с некоторыми важными функциями, но по стандарту он не особо гибкий, если нужно прикрутить к нему шапку и вкладки, особенно с NestedScrollView.

Нет, я знаком с CoordinatorLayout и ViewPager2 из AndroidX, но некоторые нюансы при оптимизации изображений мне, конечно, сложно учесть. Кстати, я иногда замечаю, что запросы к локальным базам данных в приложении можно быть запихать в другой поток. Может быть, из-за них такие фризы происходят или так плохо работает асинхронная логика…

С десктопными приложениями у меня дела идут по-другому. Хочу - IRC-клиент напишу, а может быть напишу электронную энциклопедию, но в виде консольной программы, читающий статьи в JSON. Да даже ретро-сайт сделаю, причем на актуальном Django! Все это тоже можно посмотреть.

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

История о том, как начал программирование как хобби? | Сетка — социальная сеть от hh.ru История о том, как начал программирование как хобби? | Сетка — социальная сеть от hh.ru История о том, как начал программирование как хобби? | Сетка — социальная сеть от hh.ru История о том, как начал программирование как хобби? | Сетка — социальная сеть от hh.ru