< Программирование >

Первый раз я взял в руки книжку по Бейсику, когда мне было 11 лет. Книжка меня очень заинтересовала, хотя компьютера у меня тогда не было, и опробовать полученные знания я не мог. Через год родители купили мне мой первый компьютер БК0010.01, где я смог заняться Бейсиком на практике. Так получилось, что БК был слабо распространен в Крыму, поэтому у меня не было никаких программ, кроме входивших в стандартный комплект поставки. А без компьютерных игр как-то скучно, поэтому пришлось писать свои, используя в качестве прототипов игры с Радио86РК. Сначала все мои попытки были безуспешны, но потом заработала одна игра, потом следующая, и дальше все пошло отлично. Через два года я исчерпал возможности Бейсика БК-шки, написав какое-то подобие Loader Runner с дополнительными наворотами. За это время я научился программировать на языке Фокал, который также был в ПЗУ БК. Принципиальных отличий от Бейсика в нем не было, программы на Фокале работали заметно медленнее, зато занимали меньше памяти. Поэтому "динамические" игрушки я писал на Бейсике, а "стратегические" на Фокале, например "Вольный торговец" - странная смесь классических игр StarTrek и Elite.

В 1994 я получил возможность заказывать софт для БК в Москве и Питере, и среди первых программ купил транслятор ассемблера и отладчик. К сожалению, руководства по ассемблеру у меня не было, только список команд PDP-процессора (на котором основан БК-шный CPU). Поэтому этот язык я учил, в основном, исследуя отладчиком чужие программы. Для тех, кто работал только с PC, этот способ может показаться ужасным, но PDP ассемблер по моему (и не только моему) мнению гораздо удобнее, понятней и приятнее, чем в x86 архитектуре. Через некоторое время я считал ассемблер лучшим языком на свете, так как он позволял на все сто использовать скромные возможности БК-шки. Поэтому я продолжал совершенствоваться в этом языке, разрабатывая компьютерные игры (см. Mercury software).

В десятом классе школы я записался в секцию МАН по информатике (см. автобиографию), где сразу стал учить Си. Вначале было не просто, но знания PDP-ассемблера очень помогли. Например, мне не приходилось сильно задумываться, как работают указатели, что часто бывает проблемой для новичков. Своего PC у меня не было, поэтому хорошо попрактиковаться в Си я не мог, тем не менее, этот язык стал для меня вторым по важности. В это же время я стал потихоньку изучать PC-шный ассемблер.

В университете пришлось учить Паскаль, что я делал с большой неохотой, поскольку уже неплохо знал Си, и никаких новых возможностей для себя я в Паскале не нашел. Вскоре у меня появился свой PC, я занялся Linux, что стало большим стимулом углублять свои знания в Си, который стал для меня главным и основным языком программирования. PC-шным ассемблером я занимался довольно мало, так как Dos уже умирал, а в других системах он требовался редко. На ассемблере я не писал, и пользовался знаниями этого языка только при взломе программ, что случалось довольно редко.

Воспитанный на Бейсике и ассемблере, я долгое время относился отрицательно к объектно-ориентированному программированию. Но потом все же взялся прочесть книгу по C++ и понял, что объекты очень полезная вещь. Еще больше я убедился в этом, когда пробная программа заработала почти без отладки. С тех пор мое отношение к ООП изменилось, хотя я по-прежнему не могу представить программу, сводящуюся к одному объекту, и в простых случаях предпочитаю обходиться обычным C.

Сейчас начинаю понимать, что и в Linux одного C и С++ недостаточно, поэтому собираюсь выучить скриптовые языки: Perl и PHP. Возможно, найдется время на Java и JavaScript.


[ На главную страницу ]