Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
wealthycat
7 лет назад

[КАК Я УЧИЛСЯ ПРОГРАММИРОВАТЬ] - Переход в профессиональную лигу. | часть 3

Рассказ о том, как я впервые стал частью команды профессиональных разработчиков. Это продолжение серии заметок о работе в ИТ, в предыдущих постах описывается начало моей карьеры:

Эта заметка посвящается @ladyzarulem, как единственному читателю, публично выразившему желание услышать продолжение этой истории :)


цветочек тыквы
У меня не нашлось подходящей фотографии для этого поста, поэтому я просто вышел в сад и сфотографировал для вас этот цветочек тыквы


На втором году работы в евпаторийской турфирме «Ласковый берег» я разработал программу для регистрации продаж билетов на автобусные экскурсии, которая выдержала «проверку боем» и доказала свою полезность на протяжении экскурсионного сезона 2002 года. С приходом осени я занимался различными мелкими доработками программы, например, добавил несколько статистических отчетов. Моя домашняя библиотечка понемногу пополнялась книгами по программированию, благо работы в межсезонье было поменьше и времени для самостоятельной учебы хватало.

В мае я поехал на мою последнюю сессию в строительный институт и, наконец, получил диплом. К тому времени в турфирме я проработал уже почти три года и дела обстояли так, что новых и интересных задач, связанных с программированием, здесь для меня больше не было. Перспектива провести еще один сезон на телефоне, по 12 часов в день вбивая данные в базу, не вдохновляла. Зарплата в 400 гривен (~ 80 долларов) также оставляла желать лучшего даже по провинциальным меркам. В общем, вопрос о новой работе встал, как говорится, ребром.

Вакансий для программистов в 2003 году, впрочем, как и сейчас, в Евпатории не было. Единственное известное мне место, где занимались разработкой софта, называлось ЦНИТ Алькор, это была контора, в которой я проходил стажировку в начале моей работы в турфирме. Делать было нечего и я взял свеженький диплом и исходники своей программы и пошел на поклон к директору Алькора. Я не знал, есть ли у них открытые вакансии, но выбора у меня особо не было. После короткого собеседования, меня попросили провести демонстрацию моей первой программы, по итогам которой я через несколько дней был принят на работу.

В компании Алькор началась моя карьера профессионального программиста, теперь все обязанности были так или иначе связаны с разработкой софта. А еще у меня появились коллеги, которым можно было задавать дурацкие и не очень вопросы. Роль команды в карьере вообще сложно переоценить. Впрочем, обо всем по порядку.

Начать надо с того, что Алькор занимался разработкой, продажей и поддержкой бухгалтерского программного обеспечения. Когда я пришел в компанию, существовали две ветки этого софта. Старая была разработана еще до появления Windows на FoxPro и запускалась под MS-DOS, на тот момент с ней работали большинство предприятий-клиентов компании. Новая ветка называлась DBView, была написана уже под Windows и работала поверх СУБД Oracle. Она представляла собой клиент-серверное приложение с собственным скриптовым языком, на котором, собственно, и велась разработка программ для конечных пользователей. А также время от времени начинались разговоры о переходе на платформу 1C, которые, впрочем, привычно заканчивались ничем, ведь отказаться от всех своих наработок за последние 10-12 лет было невероятно трудно.

К счастью, сомнительная возможность начать изучение FoxPro в 2003 году меня благополучно минула. Директор, посоветовавшись со старшими разработчиками, решил, что я буду иметь дело только с новой средой разработки DBView. Как я уже упоминал, DBView имела собственный скриптовый язык, который позволял отображать пользовательский интерфейс и выполнять запросы к базе данных (БД) в ответ на действия пользователя. Язык этот, на момент моего прихода в Алькор, был достаточно примитивен — среда DBView была в стадии перманентной разработки. В языке, например, не было конструкции для организации ветвления. Всю необходимые расчеты приходилось выполнять непосредственно в вызовах SQL запросов или выносить в хранимые процедуры БД.

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

Через некоторое время, когда с технологиями стало полегче, меня ждало новое открытие — я начал напрямую общаться с пользователями. Прежде всего требовалось научиться понимать, чего эти самые пользователи действительно хотят. Частенько это занимало больше сил и времени чем реализация желаемой функциональности в коде. Еще иногда, бухгалтерам требовалось нечто, что было невозможно реализовать в нашей среде разработки. А еще изредка им хотелось чего-то странного, что вообще не имело никакого смысла или могло привести к нехилым проблемам. Волей-неволей пришлось учиться вести переговоры, а иногда и отговаривать людей от попыток выстрелить себе в ногу.

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

Еще одним сюрпризом стало взаимодействие с другими разработчиками в команде. При работе в одиночку не требуется разбираться в чужом коде, согласовывать изменения в скриптах или структуре БД с коллегами и ловить хитрые ошибки в своих модулях, возникшие только потому, что кто-то непонятно где и зачем изменил какую-нибудь процедуру. Совместная работа с кодом к тому же осложнялось тем, что мы так и не смогли внедрить в команде систему контроля версий. Вишенкой на тортике было хранение скриптов в базе данных, с которой одновременно могли работать несколько человек. Ситуация, когда один разработчик затирал изменения, только что внесенные другим, не являлась такой уж экзотической редкостью.

В общем, навалилось много всего и сразу. Справиться мне удалось скорее благодаря поддержке всей команды, чем собственным усилиям. Если люди, с которыми мне посчастливилось работать в Алькор, не потратили бы на помощь мне кучу сил и времени, моя карьера разработчика, скорее всего, завершилась так толком и не начавшись.

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

Спасибо за внимание.


Если вам понравился этот текст, не забудьте проголосовать и обязательно подпишитесь на мой блог — впереди будет много интересного. Заранее благодарен за поддержку.

2
734.455 GOLOS
На Golos с July 2017
Комментарии (16)
Сортировать по:
Сначала старые