Ржавый
Впервые я познакомился с написанием программ лет, может, в 7-8, когда появился первый компьютер дома.

Впервые я познакомился с написанием программ лет, может быть, в 7-8, когда появился первый компьютер дома. Это был монстр ZX Spectrum с 48Кб памяти на борту (вообще 64, но для пользователя доступно только 48). Поскольку на момент его появления, я был пиздюк никакого участия в его сборке я не принимал. Всем занимались брат и отец, а я потом только в игры играл.
Была у того спектрума такая штука, как встроенный бейсик. Меня привлекло то что делал там мой брат: нажимал кнопки, а на экране появлялись целые слова на английском. Этакое колдунство. Не помню как, но он объяснил, что это программа. По ней компьютер делает то, что надо.
Со временем я и сам научился делать какие-то примитивные вещи. По типу:
10 PRINT "JOPA"
20 GO TO 10
И далее в этом духе. Создать что-то стоящее я тогда попросту не мог, потому что даже не понимал что нужно. Плюс, меня беспокоило то, что саму программу может увидеть любой и понять как она работает, что делает и как ее можно сломать.
Одновременно с этим спектрумом у нас появилась книжка, посвященная спектрумовскому бейсику. Её я перечитал вдоль и поперёк. В конце по типу справочной информации были приведены команды ассемблера, их шестнадцатеричное, десятичное, буквенное обозначение, а также то, что эта команда делает. Для меня в том возрасте это было непостижимым, поэтому секцию про ассемблер я не трогал (хорошо помню, что эти страницы были в идеальном состоянии, в отличие от задроченных про сам бейсик).
Годы спустя я все же дорос до ассемблера. Помогло то, что я наткнулся на какой-то дискете на тренажер по нему, который наглядно показывал что делают эти команды. Если напрячься, смогу даже вспомнить... LD DE,h - загрузить в регистр DE значение h. И DJNZ перекидывало выполнение программы на указанный адрес, если какой-то из регистров (возможно b) не был равен нулю.
И еще в этом тренажере были подсказки на системные функции, при вызове которых при определенных значениях регистров, происходило то или иное системное событие. Я запомнил несколько: очистка экрана, вызов функции выводящей на экран символ по его коду, считывание ввода с клавиатуры. Путем нехитрых манипуляций, я сумел вывести на экран строку. А затем придумал как создать программу, запрашивающую пароль. И она, мать ее, работала!
Однако, на тот момент, спектрум был уже безнадежно устаревшим. И вот, когда я учился уже классе в 8 наконец-то смогли купить IBM на 486 процессоре (с математическим со-процессором, между прочим!). Именно с его появлением я окунулся в мир продвинутого программирования на турбо паскале. Да, язык крайне ужасный, но он приучил меня к структурированию кода.
Моим достижением на тот момент стала программа, решавшая квадратные уравнения. Практического применения я ей не смог найти, потому что на тот момент квадратные уравнения, которые нам задавали, часто не содержали целочисленных корней, а писать в ответ 2,233424324 было нельзя 😄
И все же, это был какой-никакой результат.
Время шло, комп со временем апгрейдился, и вот у меня уже комп на 95й винде. Захотелось развить свои программерские успехи и в ней. Так я нашел Delphi, который позволял делать программы с графическим интерфейсом.
В нем я так же сварганил (с минимальными изменениями) решение квадратных уравнений. Да и все, кажется...
Все приведенное выше я осваивал сам. Без учителей, пользуясь какими-то обрывками информации, которые попадались на дискетах и разных книжках. Мне это не казалось чем-то сверхъестественным, думал, все так учатся)).
Но для написания каких-то серьезных проектов мне не хватало усидчивости, знаний и опыта. Поэтому все это было заброшено.
Время шло, но полученные навыки много раз пригождались на работе, когда надо было написать какой-нибудь скрипт, чтобы облегчить свою жизнь. Но не более. Там-то, на работе, я узнал про Питон. Стало интересно поработать с ним, выучить новый язык.
Питон оказался невероятно простым. Первым моим проектом был синтезатор предложений. Работал он тупо: брал из списков случайные слова по порядку: существительное, прилагательное, глагол, и иногда получались забавные вещи. Делал я это на заре нейросетей. Но тогда я имел совершенно смутное представление о них.
Совсем недавно один человек попросил меня помочь с обучением. У них в плане обучения были скрипты на Питоне. Я с радостью помог и это разожгло во мне ту искру, что была 20 лет назад - желание создавать.
Я принялся ваять эти скрипты и выкладывать их на github. Это тоже было частью задания.
И вот, человек закончил обучение, а у меня остался гит, который я не стал переименовывать из уважения к человеку, сподвигнувшему меня на это, и из желания делать что-то ещё. И я продолжил.
Первым стал генератор паролей по заданным условиям на питоне. Делал я его пару дней в свободное время на работе. Результат закинул на гитхаб.
Потом начал делать телеграм-бота для мониторинга цен на озоне. С этим оказалось сложнее - я не смог победить антибот-защиту на сайте((( вот совсем не смог. Не помог ни ChatGPT, ни Grok, ни Claude. Реально жопа какая-то. В итоге я его отложил до лучших времен. Может быть все-таки найдётся способ, но пока никак.
После питона я решил попробовать что-то более крутое и решил наконец-то взяться за плюсы (C++, кто не в курсе). Решил там воплотить свой предыдущий успешный проект по созданию генератора паролей, но на половине пути задумался. C++ уже стар. Да, он развивается, его поддерживают, но он объективно стар. А что же есть ему на замену? Я поискал и нашёл Rust.
Он позиционируется как такой же производительный, но при этом лишенный проблем C++, язык.
Что сказать... Объективно сравнить я не смогу, так как на плюсах проект заброшен и возвращаться я к нему не буду. Но с уверенностью могу сказать, что базовые принципы Rust дадут просраться любому. Особенно заимствование.
Пишешь ты код, а тут хуяк и линтер на ходу тебе говорит, что переменная больше не действует. Как, какого хуя? А такого. Оказывается unwrap забирает её и всё. Почему? Зачем? Ответов нет, просто смиритесь, метод так работает. А вот другой метод владение не забирает. А как определить, какой забирает, а какой нет? Пока не понятно.
Короче, секса можно поиметь много. Но! Это все равно интересно.
Сейчас я дописал второй полноценный проект и выложил его на github (ссылка для просмотра) и раздумываю, продолжать ли это занятие? Связать ли остаток жизни с программированием?
Пока что склоняюсь к положительному ответу. Надо придумать следующий проект для себя.