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

Я поступил в EEE и был не очень доволен, увидев CSE-101 в расписании моего класса в самом первом семестре. Как и многие мои одноклассники, я был полон энтузиазма, чтобы закончить учебную программу, и поспешил устроиться на работу в телекоммуникационном секторе. Мы не думали, что курс информатики поможет нам стать хорошим инженером по телекоммуникациям. Поэтому, когда появилось время урока CSE-101, я был больше заинтересован в том, чтобы пропустить урок и присоединиться к своим новым (мудрым и единомышленникам!!) одноклассникам. Но когда я уже собиралась выйти из класса, подошла наша учительница. Это был наш начальник отдела, Мухаммад Шамсул Аламсэр. Поскольку я был с ним лично знаком, я не мог выйти из класса. Но я никогда бы не догадался в тот день, что благодаря этому классу я найду свою самую большую страсть на сегодняшний день.

Найти что-то интересное — это одно, но чтобы сделать это своей страстью, вам нужно полюбить это. Мне нравилось то, что я изучал в своем классе. У сэра Алама была очень сильная личность, и он действительно знал, как преподавать структурный язык. Но позже на той неделе в нашем лабораторном классе мы познакомились с одним из его ассистентов, Мобашвиром Хасаном (Шакил Вай). Он оказал на меня большое влияние в плане программирования. У него есть свои способы излагать проблемы или объяснять синтаксис программирования. Я помню, как он поощрял нас решать одну и ту же проблему, используя разные методы, которые мне действительно кажутся интересными в эти дни, и в итоге я трачу гораздо больше времени на кодирование. Решение проблем с помощью программирования было для меня чем-то совершенно новым, и вместе Шакил Вай и сэр Алам помогли мне в этом разобраться. Я считаю, что это они вложили в меня мышление программиста. Через шесть месяцев мой интерес к программированию превратился в увлечение.

В нашем университете был специальный класс под названием ACM Class. Это было для тех, кто хотел развить свои способности в программировании и участвовать в различных соревнованиях по программированию. После первого семестра я начал посещать эти курсы. Но мне было нелегко. Многие задачи ACM основаны на различных алгоритмах и методах, которые входят в учебную программу CS. Поскольку я был из другого отдела, мне пришлось выделить дополнительное время для изучения и понимания этих алгоритмов.

Я не суперталантливый человек. Я был студентом среднего уровня. Понимание этих техник и алгоритмов далось мне нелегко. Иногда требовались месяцы, чтобы полностью понять и отработать связанные проблемы одного алгоритма. Когда появились экзамены, мне пришлось отвлечься от этого. В нашем классе было несколько очень талантливых участников. Мой прогресс по сравнению с ними меня очень расстраивал. Но, несмотря на то, что я не был хорош в этом, я всегда каким-то образом постоянно пытался улучшить себя в программировании ACM. Позже в моей жизни иногда я спрашиваю себя, что заставило меня сделать это тогда? И я думаю, это было из-за той подлинной страсти, которая укоренилась во мне в течение первого семестра, к решению проблем. Я не очень добился успеха в ACM, хотя мне удается участвовать во многих NCPC и паре региональных ICPC Dhaka.

Позже в моей жизни, когда я начал свою карьеру инженера-программиста, весь опыт ACM каким-то образом показался мне исключительно полезным. Во-первых, отношение к решению проблем. Это одна из лучших вещей, которых я когда-либо достиг благодаря участию в ACM. Во-вторых, возможность попробовать. Я редко останавливаюсь, пока не найду решение проблемы. Наконец, я никогда не боюсь пробовать что-то новое. На самом деле, изучение чего-то нового волнует меня больше всего. За шесть лет работы в качестве разработчика программного обеспечения я выучил 3 разных языка для создания приложений производственного уровня. С каждым из этих языков поставляется несколько фреймворков и существует бесчисленное количество других библиотек, API и интерфейсных инструментов. Изучение неизвестного стека и инструментов стало легким после моего опыта работы с ACM.

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