В основной школе меня почему-то считали хорошим математиком. Отправляли на олимпиады по математике и физике, ругали за плохие результаты и отправляли снова. Стоит отметить, что с олимпиад я всё-таки принёс два первых места, но это были районные по немецкому языку. В средней школе ситуация поменялась не в лучшую сторону, но геометрию я всё ещё понимал. А вот в университете я уже почувствовал себя маленьким мальчиком, окружённым толпой умных дяденек и тётенек. Пережить первую сессию мне не удалось.
Я часто читаю тут истории о том, как люди становились тру программистами. Как в 13 лет они взламывали школьные сервера и придумывали хитроумные вирусы. Я завидую этим людям и их складу ума. Моё знакомство с программированием случилось в основной школе, когда я рисовал кружочки и квадратики в QBasic. Я обожал команду GOTO и совершенно не понимал Pascal. С тех пор утекло много времени, я выучил много новых терминов и зарабатываю на жизнь веб-разработкой. Но иногда мне кажется, что это всё те же кружочки с квадратиками, просто они свистят и забавно попёрдывают. А Pascal я так и не выучил.
Сайты я начал делать сразу после неудачной попытки получить высшее образование. Сидел в компьютерном клубе, поигрывал в CS и вдруг меня осенило – надо выучить HTML. Благо знакомый подсказал, где об этом можно почитать. Первый сайт был на чистом HTML и мне доставляло множество хлопот добавлять новую менюшку во все файлы, поэтому первое знакомство с PHP началось не с echo 'hello world', а с if – include. Это стало для меня настоящим озарением, я быстренько прикупил один из многочисленных вариантов книг «PHP и MySQL для чайников» и погрузился в чтение. Мне понравилось.
Моим первым серьёзным проектом стал сайт этого компьютерного клуба, которым я занимался совершенно бесплатно «за халяву и хостинг». Он был как в песне «Остров невезения», только наоборот. То есть добрый на лицо, но ужасный внутри. Однако впоследствии именно благодаря ему я устроился на свою первую нормальную работу.
Я прекрасно понимаю, что начал не с того. Многие скажут, что в начале нужно было обязательно понять основы. Структуры данных, алгоритмы. Конечно, это правильный подход. Но я подозреваю, что в моём случае подобная схема обучения обернулась бы неудачей. Почему? Потому что я бы банально ничего не понял. Потому что я тугой.
Свою первую книгу по ООП и паттернам проектирования я открыл года 4 назад. Открыл и через 5 минут закрыл. Нипанятна. В следующий раз я продвинулся на пару страниц дальше, но понимания не прибавилось. С тех пор я открываю разные книги по паттернам (и на другие темы) с периодичностью раз в 2 недели, но понять удаётся только часть. Причем только ту часть, с которой я каким-то образом столкнулся на практике или подсмотрел в чужом коде.
Я восхищаюсь людьми, которые легко жонглируют терминами ООП и могут набросать на бумаге архитектуру для решения какой-нибудь сложной задачи. Которые могут взглянуть на хитросплетение кода и в короткие сроки понять как и зачем это работает. Если я возьму в руки карандаш и положу перед собой чистый лист бумаги, то вместо архитектуры смогу нарисовать только смешные закорючки.
И в то же время, несмотря на отсутствие в моём днк какого-то очень важного для программиста гена, мне всё это очень нравится. Нравится смотреть на свой код, который хоть и простой и непродуманный, но зато MVC. Нравится верстать и давать советы своему менее опытному знакомому. Нравится писать длинные select'ы, хоть это и может занять пару часов. Нравится лепить всякие фишки на JS.
Каждый раз, когда я начинаю что-то новое, я наполняюсь энтузиазмом. Я стараюсь много читать и идти в ногу со временем. Скорее всего мне никогда не стать крутым высокооплачиваемым специалистом, но и от голода я тоже не умру.
Автор: furyk