Страсть – это и причина, и награда

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

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

Тогда знание кода не было обязательным требованием. Аналитических навыков, подобных SAT (вопросы с несколькими вариантами ответов) + базовый английский (собеседование) было достаточно, чтобы попасть в индустрию ИТ-обслуживания.

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

Я стал частью тогдашней высокооплачиваемой индустрии программного обеспечения. Годовая зарплата составляла 4500 долларов (да, годовая, по курсу 2000 года). Но это было больше, чем мог ожидать выпускник, особенно в стране, охваченной массовой безработицей.

Я понятия не имел, какую ценность я приносил:

  • Мой работодатель, который брал на аутсорсинг программное обеспечение у офшорных (в основном американских) клиентов.
  • Мой клиент — который доверил моему безликому профилю свой код на миллиарды в бизнесе

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

Незначительная работа:

Мой первый проект состоял из технической мешанины:

  • Отчеты Crystal и шаблоны матрицы собраний, которые создают оперативные отчеты/диаграммы в ответ на запросы SQL, запускаемые настольным клиентом. Единственный раз, когда для этого потребовался программист, было добавление нового поля в рамках усовершенствования функции восходящего потока, когда нам пришлось вмешиваться в SQL-запросы.
  • Слой Business/UI, написанный на проприетарном интерпретируемом языке сценариев. Это было похоже на ViewModel в современной архитектуре. По задумке, большая часть работы, которую мы проделали, относилась к этому слою, потому что клиент хотел, чтобы его нетехнический персонал добавлял/менял экраны по своему желанию.
  • Ядро: Написано на Microsoft Visual C++ (со множеством вызовов COM-интерфейса для удаленных объектов), которое…