Знакомство с программированием
Помните эту навязчивую рекламу различных курсов? Там всегда встречаются такие слова, что "программирование - это навык, который может приобрести каждый", "программирование - это не удел избранных" и так далее. Всегда удивлялся такой рекламе, ведь мне казалось, что почти каждый сталкивался с программированием хоть в каком-либо виде. Я не говорю о фреймворках, библиотеках, системах управления версиями и прочих страшных штуках, а о программировании в школе на чем-нибудь типа Паскаля.
Лично у меня знакомство с программированием началось именно с Паскаля, и тогда мне не показалось это чем-то уберсложным. Сейчас-то я понимаю, что это были просто тривиальные лабы, настолько простые, что никакого удовлетворения от проделанной работы я не получал ==> меня это не затянуло, хотя показалось потенциально полезным.
О программировании я забыл напрочь до универа, где встретился с грозой бухучета - его величеством Экселем и встроенным в него VBA. Тогда я опять особо не заинтересовался, но на всякий случай освоил основы. Через некоторое время это дало свои плоды. Я наконец догнал, почему наши умные преподаватели не уходят работать где-нибудь на производстве или в научных группах, где явно больше денег. А причина была проста: тупые и ленивые студенты вместо того, чтобы учиться чему-то, охотно отдают деньги за экзамены или решение каких-то простеньких задач.
Немного подумав, я решил, пусть студенты лучше платят мне, а не преподавателям. Через некоторое время я занял свою нишу в универе: я решал задачки по сопромату. За решение я брал значительно меньше денег, чем решалы в интернете, что обеспечило мне неплохой поток заказов. Со временем их стало так много, что своими силами я уже не справлялся, так что попробовал автоматизировать процесс в Экселе с помощью макросов. Это был первый случай, когда я использовал программирование себе на пользу.
Однако на 4-ом курсе с сопроматом я почти завязал, поскольку пришлось заниматься дипломом. Моим научным руководителем был профессор кафедры Общей Механики, который занимался механикой сплошных сред, а конкретно развитием Метода Граничных Состояний для решения задач эластостатики и различных задач математической физики. Если вы ничего не поняли из вышесазанного, то представьте мое замешательство, когда мне дали тему решение контактной задачи Герца в численно-аналитическом виде. На пальцах такое не решишь, поэтому пришлось писать вычислительный комплекс на Wolfram Mathematica.
Математические формулы составляли львиную долю моего диплома (хотя лично я не уверен, что все организовал правильно). В ходе написания программы я выявил несколько действительно важных проблем, и поскольку я собираюсь продолжать работать в этом направлении, мне необходимо набраться опыта в использовании алгоритмов, ведь базовых навыков оказалось недостаточно.
К чему вся эта писанина?
Я хотел донести одну действительно важную вещь: неважно на чем вы кодите, пока для вас это просто программа или лаба, программирование не станет для вас чем-то большим. Языки программирования - это инструмент, программист - человек, который решает задачи, используя языки программирования. Мне повезло найти несколько задач, которые я хочу научиться решать. Но до этого мои хоть и скудные, но все же знания программирования были бесполезными. Конечно, круто, если ты учишь программирование, чтобы потом устроиться на работу куда-то. Но гораздо круче, когда ты потом сможешь запустить свои собственные проекты.