Меня зовут Дмитрий, мне 17 лет, в этом году поступил в НУВГП на факультет прикладная математика.
В топике пойдет речь о моем (пока не долгом) жизненном пути к программированию.
2004 год
С самого детства (9 лет), после покупки компьютера родителями, меня интересовали совсем не игрушки, да и Интернета у нас небыло. Меня начала интересовать работа самого компьютера изнутри, как работает ОС, как работают программы ОС и прочее.
2005 год
Появился первый Интернет с трафиком 200 МБ на 30 дней. Это было действительно хорошо, я сразу же начал познавать всемирную паутину. Первое, что я создал — это почтовый ящик на mail.ru. Я пытался узнать как работают сайты, читал много статей об Интернете, пробовал общаться по электронной почте, что в полне удачно удавалось.
Через полгода мне сменили провайдера на другого, самого крупного на то время в нашем города — РГС (Ровенский Глобальные Сети, теперь «Воля Ровно»). Тариф у меня был такой же, но было одно огромнейшее преимущество — direct connect хаб (все должны помнить программу DC++), на котором сидело около 200 человек (на то время — огромное количество).
В чем же преимущество?
А в том, что весь трафик на хабе был полностью безлимитным по скорости и по объему.
Я долгое время сидел на нашем локальном хабе, знакомился с людьми через DC++, качал фильмы и радовался жизни. Но несколько раз в чате проскакивала реклама других хабов и я заинтересовался у автора сообщения, как он сделал этот хаб. Он подробно всё рассказал и меня это очень зацепило. И я решил создать свой хаб, более лучший чем локальный и остальные частные.
У меня это получилось, я использовал сначала Windows машину и ПО — PtokaX. С этого момента я начал изучать и осваивать язык lua. Давалось очень просто, легко, и главное, было очень интересно.
Я начал активную рекламу своего хаба на основном, ко мне шли люди, большим количеством, и очень много кто оставался. Им нравилось общаться без ограничений, играться с ботом «болтуном», узнавать погоду прямо из чата и прочее. Вот так я долгое время мотал свой компьютер-сервер сутками, на что ругались родители.
Первый phpBB форум
Как вы уже знаете, я любил сидеть на основном хабе, у меня там было достаточное количество друзей и я любил последить за общим чатом. Там проскользнула ссылка на какой-то частный форум. Я зашел на него, увидел очень красивые иконки, много разделов, категорий и сообщений от людей. Меня это зацепило прямо «до костей». Я начал писать тому человеку, который рекламировал свой форум. Мы с ним обзнакомились, пообщались. И в один момент я задал ему вопрос — «а как ты сделал такой форум?». В ответ я получил довольно хорошую документацию. Этот человек помог мне поставить веб-сервер (сборка AppServ), всё настроить, и даже скинул готовую сборку phpBB 2. Он помог мне и установить это всё, помог с настройкой программы net meeting и зашел на мой компьютер удалённо. Всё поставил, настроил, в текстовом документе объяснил что к чему. Я схватывал на лету и смотрел на монитор с «открытым ртом». Я в этом увидел огромнейший интерес для себя. Я понял, что это то, чего я хочу. То, что мне надо.
После установки форума, я сразу же кинулся в админ-панель и начал разбирать её по кусочкам, создавал разделы, категории, регистрировал левые ники, копался в настройках самого форума, правами доступа и т.д. Для меня это был просто рай. Такого интереса и удовольствия я не испытывал ни к чему.
Далее я в Интернете начал искать разные шаблоны к форуму, разные хаки и прочие плюшки.
Первый IPB форум
В связи с тем, что phpBB 2 для меня был «деревянным» на вид, я начал в Интернете искать другие движки форумов и пытаться их поставить/настроить. Первое, что кинулось мне в глаза — это Invision Power Board. Он меня очень заинтересовал. Во-первых, огромной функциональностью, во-вторых красивейшим дизайном, он не уступал ни одному движку на то время. С огромной радостью (и трудом) я нашел русскую сборку IPB версии 2.1.4 и сразу же побежал ставить на свой веб-сервер. Установка прошла более чем успешно, и новый форум уже сверкал на моем локальном домене. Я тогда, наверное, был счасливее всех. Я к нему нашел огромное количество разных стилей и хаков, в том числе таких, как «разные иконки на разделы», «репутация», «чат» и т.д. Я довёл свой форум до безумной красоты, он нравился абсолютно всем посетителям, ко мне начали идти пользователи. Им было интересно и приятно там общаться. Я активно рекламировал его на хабе и на других форумах (хоть это и не приветствовалось нигде).
2006 год
Год, когда наконец-то у меня появился собственный
Также с выходом Counter-Strike: Source мне стало интересно как работают сервера этой игры и, опять-таки, у меня было поднято около 3-х серверов (разных модов), соответственно и людей на форуме ставало больше, т.к. туда были добавлены разделы о серверах, и на самих серверах была регулярная реклама «форума поддержки», на то время мой проект был уникален. Я — первый, кто смог поставить и корректно настроить статистику на Mani Admin Plugin (в нашей локальной сети). Это было большим достижением.
2007 год
Тем временем, пока всё было отлажено и стабильно работало (сервера и форум), я не стал стоять на месте. Я хотел создавать дополнительные сервисы, типа «определение IP адреса пользователя» и другие. Что я только не вводил в гугл, как только не выворачивал фразы, но всё безуспешно. Но я не собирался сдаваться, я начал покупать книги по PHP. Скупал всё, что было в моих местных магазинах. И наконец-то, нашел! Это оказалось совсем по-другому, нежели я думал…
echo $_SERVER['REMOTE_ADDR'];
Эта строчка меня удивила, такой простоты я себе и представить не мог. С этого момента началось изучение мною прекрасного языка PHP. Я изучал книги, узнавал что такое массивы, переменные, операторы и всё остальное. Давалось не совсем легко, но до тех пор, пока я это читал. Когда дошло до практики, всё оказалось очень и очень просто. Набравшись элементарных знаний, я закинул чтение книг и приступил к практике. То, чего я не знал — гуглил и использовал. Одновременно с этим я начал изучать HTML и JavaScripts, также начиная с книг. Давалось всё очень легко, но я не имел цели, я постоянно думал над идеей, я не знал что мне делать, чтобы оно нужно было людям. Это была моя единственная проблема.
2008 год
Я пошел учиться в компьютерную академию ШАГ, где изучали азы С++, HTML, Hardware, Adobe Photoshop и Adobe Illustrator.
В этом году я начал знакомиться с языком perl в связи з необходимостью установки новой статистики HLStatsX на свои игровые сервера. Сам обсчёт статистики работал исключительно через perl демон и вся информация сохранялась в mysql. А уже отображение этой статистики велось на сайт и непосредственно в саму игру (popup окно в игре).
Веб-часть работала на PHP. Эту статистику поставить удалось спустя 2-х недель работы над ней, я сидел днями и ночами, чтобы понять принцип работы perl'a и его отношение к БД. Как оказалось, 30% проблемы было в том, что надо было через ppm поставить DBI и DBD-MySQL, но на то время этого нигде не говорилось, я чисто случайно нашел на каком-то турецком сайте упоминания о этих пакетах, а их установку на совсем другом. также проблемы с включением логов самого сервера, т.к. статистика бралась как раз из логов и обрабатывалась perl-скриптом. Потом проблема с тем, что надо эти логи пересылать на сам демон по порту 27500, командой «logaddress_add localhost:27500». Ну и таких деталей было очень много. В счастью, в новогоднюю ночь 2009 года у меня всё вышло, статистика стала идеально работать и взаимодействовать с игроками и базой данных.
P.S. Сейчас поставить эту статистику проще простого для любого, ибо появилось огромное количество русских документаций.
2009 год
Прошел год с тех пор, как я учился в ШАГу. Программирование на С++ мне давалось очень просто, я был лучшим ихним учеником, аналогично с HTML и CSS. Но вот дизайн мне давался немного сложнее, особенно Illustrator, он для меня был большой бедой. Я уже тогда начинал создавать динамические страницы на PHP, был знаком с структурой базы данных mysql. Мог создавать системы регистрации и авторизации. Ничего серъезного пока не делал, так как не было идеи. Но именно в этом году я начал создавать свои первые маленькие проекты.
Первым проектом был «сокращатель ссылок». Он работал очень быстро и использовал JavaScript для вывода сокращенной ссылки, всё хранилось в базе данных. Тут же я познакомился с регулярными выражениями, при работе с ссылками. Верстал страницу и рисовал логотип полностью сам, с помощью своих знаний, получалось довольно красиво. До сегодняшнего времени ничего не сбереглось из этого, к сожалению (по причине нулевой популярности). Вторым моим проектом был собственный файловый
2010 год
Окончил академию ШАГ. Оценки по С++ и HTML были 12. По Adobe Photoshop — 8 баллов, а по Adobe Illustrator — 6 баллов. Оценки указаны по 12-бальной шкале. Как видно по ним, меня больше тянуло к коду, нежели к рисованию.
Позже я начал интересоваться работой почтовых систем, создал свою почтовую систему на выделенном сервере. Работала она на Postfix + Curys. На настройку ушло около недели. К ней прилепил оболочку RoundCube, всё было отлично. Но опять-же, всё делалось чисто для практики и опыта, никому не нужны были мои проекты. Всё это по сути делалось для кучки людей на моем форуме, их там было человек 30, я для них старался, там создавал темы о своих новых проектах. Но люди заходили, смотрели и забывали. Было обидно, но я никогда не сдавался, я знал, что прежде всего, я делаю это для себя.
Этот год для меня стал черным годом в моей жизни. Я узнал, что у меня ВПС (врождённый порок сердца), я получил инвалидность. Моя жизнь стала намного ограниченнее. Ограничения были введены для того, чтобы сберечь здоровье, т.к. вылечить это никак невозможно, а операция стоит около 50 000 долларов. Детали рассказывать не буду, ибо не об этом статья.
В этом году я создал свой уникальный плагин для sourcemod'a (игровой плагин), который стал очень популярен и до сих пор никем не превзойденный. Написан он на sourcepawn, название имеет — skinbyscore. Это тоже стало большим событием в жизни.
2011 год
Я лёг в больницу на 10 дней. Познакомился с новыми людьми, хотелось держать с ними связь, когда выпишусь. Мобильная версия ВКонтакте тогда была сильно ограничена и довольно неудобна, я решил создать свою маленькую мобильную социальную сеть для своих друзей. Через 3 месяца после того, как меня выписали, уже была бета-версия социальной сети. Она была сильно ограничена, так как это мой первый подобный проект. Но визуально она была достаточно красивая и очень быстро работала. Позже я закинул это дело, пропал энтузиазм почему-то. Но спустя 5 месяцев я снова за неё взялся и через полгода она была готова для принятия людей, хоть и в небольшом количестве. Всё было проверено мною и моими друзьями, я никак не мог нарадоваться. Сейчас она не работает, через то, что не набрала никакой популярности, да и не нужна никому. Это делалось, опять таки, для опыта.
Вот несколько сохраненных мною изображений:
Абсолютно все разделы идеально работали. Была стена пользователей (скриншота не сохранилось), можно было писать и удалять комментарии. Планировал добавить раздел «Фото», но уже пропало желание. посещаемость была нулевая. Скрипт этого сайта хранится у меня в архиве и скорее всего дальше будет там.
2012 год
Единственный проект в этом году — это персональный файловый
В этом же году я закончил школу. Долго думал куда мне податься, но через своё увлечение, решил, что надо на техническую специальность идти. Моя проблема в том, что я всё своё время отдавал программированию, а не школе, из-за чего получил не очень хороший аттестат и знания. А особенно, знания по математике.
Выбрал местный ВУЗ — НУВГП, факультет — прикладная математика.
Выбирая такой сложный факультет, я опасался, что не смогу там учиться, но пост habrahabr.ru/post/148987/ меня сильно вдохновил, и я теперь не сомневаюсь, что стал на правильный путь.
Решил написать эту статью о своем стремлении к программированию, через что пришлось пройти. Читал хабрахабр около 2-х лет, но только сейчас очень захотел зарегистрироваться и стать одним из вас.
Извините за возможные грамматические ошибки, в школе русский не преподавали, к сожалению.
Всем большое спасибо за чтение моей статьи, надеюсь вам было интересно.
Автор: Eynel