Я начал обучать себя программированию где-то в 1995 году, изучая Quake C, C и PHP в то время. К сожалению, я купил очень плохую книгу по C и не знал никого, кто мог бы мне помочь, когда я застрял в концепции и использовании указателей, указателей на функции и в том, как писать код с нуля с их использованием. Это означало, что единственным способом продвижения вперед для меня было улучшение PHP при добавлении Flash, MySQL и JS к моему набору инструментов. Я также пытался программировать на C++ для создания модов Quake 3, но также достиг того же потолка, что и с указателями в C. (Как-то грустно, я могу только представить, где бы я был сейчас, если бы получил это тогда)

В 2001 году я начал зарабатывать на жизнь программистом, что продолжало помогать мне совершенствоваться в PHP, MySQL и JS (я уже считал Flash мертвым), но я также начал изучать программирование ПЛК, что означало программирование ассемблера. строки чем-то похожим на ассемблер. Это снова познакомило меня с программированием в реальном времени, о чем я узнал только из своих экспериментов с Quake C, C и C++. Я был очень полон энтузиазма и изучал системы, которые были в моем распоряжении, я писал надежное и производительное программное обеспечение, но также написал клон Boulder Dash на этом сверхограниченном оборудовании просто для удовольствия. (Аппаратной платформой была Siematic S5, которая измеряла доступную память в килобайтах: https://en.wikipedia.org/wiki/Simatic#SIMATIC_S5, в немецкой Вики есть дополнительная информация: https://de.wikipedia.org/wiki /Simatic#Simatic_S5)

Я также довольно много изучил Oracle, как писал высокоэффективные запросы, так и моделировал столь же эффективную структуру ниже. Еще одной новой технологией, которую я изучил, было программирование на C#, и, поскольку для этого не требовалось понимания указателей, я довольно далеко продвинулся самостоятельно. В конце концов, я написал огромное клиент-серверное приложение, которое имело функции контроля и мониторинга в реальном времени для тех же сборочных линий, что и программирование ПЛК, только чуть выше. Эти клиенты использовали GTK# на машинах Sun Solaris, и даже сегодня я все еще озадачен тем, что это работало достаточно надежно.

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

В 2017 году меня наняли в качестве профессионального разработчика игр уровня ААА, и я каждый день писал на C++ (с некоторой важной идеологией C). Я стараюсь быть в курсе текущих и будущих стандартов C++, помня при этом, какие из них могут быть полезны для разных сценариев. Для разработки высокопроизводительных игр требуется другой взгляд на функции, которые вы используете, по сравнению с другими областями приложения.

Я получил степень бакалавра наук в 2011 году и степень магистра наук в 2020 году. Магистерская работа была посвящена созданию языка программирования, который компилируется в C++. будущее.

Boulder Dash остался со мной со времен C64 и всегда был первым, что я программировал при изучении нового языка программирования или фреймворка.