Внутренняя история программиста

Для меня кодирование - это чистая радость творчества, которую, хотя я и постараюсь, не передать словами.

Заражение

Спустя почти два десятилетия я все еще помню первый написанный мною код, который заставил меня почувствовать себя мини-богом. К тому времени у меня уже был «микроб компьютеров», как его называли семья и друзья.

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

Летние каникулы я провел у бабушки и дедушки в румынской деревне. В то время студенческие летние каникулы длились 3 месяца. Они всегда заканчивались в мгновение ока.

Мой двоюродный брат принес свои компьютеры в дом его родителей. У него их было два: черный и белый.

Черная была более старой модели HC, которую я не могу вспомнить, хотя это был компьютер, которому требовались аудиокассеты для загрузки на него программ. Он сказал мне, что записывал программы, транслируемые по телевидению, в специальные телепрограммы.

Представьте на секунду, что люди включают свои магнитофоны перед телевизором, издающим странные звуки. Такие же звуки, как если бы вы отвечали на телефонный звонок, когда кто-то что-то отправляет по факсу. Думаю, некоторые из нас никогда этого не испытают.

Белый HC 2000 был звездой шоу. Это был компьютер из серии HC. Это была серия клонов Sinclair ZX Spectrum, производимых в Румынии с 1985 по 1994 год. У нее был процессор MMN80, впечатляющая память в 64 КБ ОЗУ, а также была дискета!

Мой двоюродный брат был достаточно великодушен, чтобы позволить мне и нескольким другим играть на его HC 2000. Dizzy была моей любимой игрой.

Его поразило, что я, 9-летний мальчик, могу назвать и идентифицировать транзисторные выводы. Это было то, с чем его коллеги по факультету столкнулись с трудностями.

Я мог бы играть вечно!

Зависимость

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

Пару лет спустя Оливер одалживает мне свой, теперь уже устаревший, HC 2000. Отсутствовала дискета, но было руководство с некоторыми фрагментами кода. Код написан на языке программирования BASIC. Еще я получил от него сумку аудиокассет с записанными на них играми.

У нас был запасной черно-белый телевизор и кассетный плеер. Это все, что мне нужно.

После многих попыток из-за поврежденных аудиокассет мне удалось загрузить игру и поиграть в нее. И сыграйте в нее. И сыграй. До тех пор, пока моим родителям не пришлось устанавливать правила, чтобы не злоупотреблять новой игрушкой, которая вызывает привыкание.

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

Примерно через две недели мой двоюродный брат попросил меня вернуть игрушку.

И его не было.

Борьба

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

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

Я все время говорил о компьютерах. Мои сестры отказывались говорить со мной, если я говорил о компьютерах.

Мои родители решили взять ссуду в банке, чтобы купить «нам» компьютер. После множества компромиссов и стопки документов я наконец получил компьютер.

Мой компьютер!

Радость творчества

Мой компьютер был среднего уровня. Тем не менее в нем было все, что есть в современном компьютере. Очевидные устройства ввода и вывода: мышь, клавиатура и ЭЛТ-дисплей. Дискета по-прежнему была обязательной, а компакт-диски были не так распространены, но были доступны. Так что у меня они тоже были. Он также имел выделенную 4-мегабайтную графическую и звуковую карты. Был небольшой жесткий диск и достаточно оперативной памяти. Все это подключено к приличной материнской плате с процессором AMD 500 МГц. Довольно хорош для 1999 года и немного лучше, чем HC 2000, о котором я мечтал всего пару лет назад.

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

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

Примерно через год я пошел в колледж. Из-за компьютерной зависимости я чуть не провалила вступительные экзамены. Каким-то чудом мне удалось их пройти. Результат был не так хорош, и из-за этого мне пришлось сменить школу. Наша образовательная система использовала программное обеспечение для перераспределения учащихся на основе результатов и вариантов.

Мой 9-й класс был еще одной проблемой. Тот, который, к счастью, закончился хорошо.

В том 9-м классе, пытаясь доказать, что я есть и заслуживаю лучшего, я обнаружил радость и силу написания кода:

var g:integer;
    r, h:real;
begin 
    write ('Gender: ');
    readln (g);
    write ('Height: ');
    readln (h);
    IF g=1 
    THEN r := (50+(0.91*(h-152.4)))
    ELSE r := (45.5+(0.91*(h-152.4)));
    writeln ('Ideal weight: ', r:3:2);
end.

Приведенный выше фрагмент кода является первым фрагментом кода.

Код написан на Паскале. Это отличный язык программирования для обучения структурному программированию.

Если это выглядит бессмысленно, просто вводятся пол и рост пользователя. На основе этого и более точного варианта формулы рассчитывается идеальная масса тела.

Довольно скоро код стал:

var gender:integer;
    result, height:real;
begin 
    write ('Type 1 for male, 2 for female: ');
    readln (gender);
    write ('Type in your height (in cm): ');
    readln (height);
    IF gender=1 
    THEN result := (50+(0.91*(height-152.4)))
    ELSE result := (45.5+(0.91*(height-152.4)));
    writeln ('Your ideal body weight is (in kg): ', result:3:2);
end.

Я чувствовал, что создал что-то полезное, что могу показать семье и друзьям.

Я рассчитал идеальную массу тела для всех и сравнил результаты с их реальным весом.

Результат выполнения этого для меня:

Type 1 for male, 2 for female: 1
Type in your height (in cm): 173
Your ideal body weight is (in kg): 68.75

Вы также можете рассчитать свой идеальный вес, используя Паскаль, здесь.

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

В последующие годы я стал лучше писать код. Я выучил и использовал несколько языков программирования. Последний - язык программирования Дарт.

Изучение нового языка программирования с использованием знакомой парадигмы может быть выполнено быстро. С другой стороны, программирование с его помощью - это то, что требует много времени и практики, чтобы добиться правильного результата. Это постоянный процесс.

Написать код легко, но написать хороший код чертовски сложно!

Хорошие программисты войдут в состояние потока, когда пишут с энтузиазмом. Вы должны оторвать их от клавиатуры и заставить пить, есть и спать. Они просыпаются по ночам с решениями проблем, которые какое-то время волновали их разум. Если они работают, у них нет менталитета с 9 до 5. У них есть это, если они вынуждены работать над чем-то значительно ниже или выше их уровня квалификации. Они пишут хорошо структурированный, читаемый и многократно используемый код и знают, как избежать ошибок. Все это исходит из их уникального прошлого опыта. Они никогда не прекращают кодировать.

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

Еще бывают случаи, когда написание кода вызывает у меня ту же радость, но никогда не совпадает с этим.

Тот раз, когда пара строчек открыла целую вселенную.

Это все!