Thursday, November 14, 2013

Путь разработчика программного обеспечения

   В последнее время я пишу статьи, которые в основном посвящены разработке программного обеспечения, поэтому хочется разбавить серый технический коктейль более яркими жизненными ингредиентами.   
   Мой путь разработчика начался в университете, поскольку до этого мне не повезло познакомиться с линейкой первых пентиумов, как многим программистам, которые очень любят хвастаться тем, как переписывали листинги программ с книг. Я начал знакомство с персональным компьютером только на уроках информатики в 10 классе. Это были вторые пентиумы. Мы писали простенькие программы на бумаге на языке паскаль,  но никогда их не компилировали и не запускали. В школьном возрасте я мог только мечтать о надежном железном друге, так как родители не могли себе позволить его купить. В то время я решил, что посвящу свою жизнь либо живописи, либо компьютерам. Интерес к рисунку мне привила моя тетя из Белоруссии, художник Кузьмич Мария. Она создает поистине гениальные шедевры живописи. Так как у меня не сложилось со сдачей вступительных экзаменов на художественную направленность ввиду пробелов в навыках портретного рисунка, это определило мой дальнейший профессиональный путь.
   Студенческие будни в Национальном авиационном университете начались с небольшой передислокации: я поступал на компьютерные сети, а попал на системное программирование. К сожалению, попасть на лавры бюджетников у меня не получилось, поэтому родителям пришлось сделать дорогостоящее, но в последующем очень выгодное вложение в мое обучение.
    Первый и второй курсы я был средним студентом, которому не нравилась методика подачи преподавателями программирования как предмета, у большинства которых все сводилось к минимальной работе мозга, чтобы подставить нужные параметры под конкретный шаблон.
    Впервые, в конце первого курса, когда я увидел примеры, написанные на С++Builder, меня это заинтересовало настолько, что я сделал все примеры, которые были в учебнике. Каково же было мое удивление, когда на следующем курсе мы начали учить С++Builder и делать те же лабораторные, которые у меня уже были сделаны. В конце второго курса я впервые устроился на работу программистом. Писал код на С++Builder. К сожалению, я не прошел испытательный строк из-за слабой базы знаний. Зато появилось время подтянуть свои знания.
 В университете было только несколько преподавателей, которые действительно знали свой предмет и умели его подать. Среди них  Шепелева Тамара Владимировна  замечательный человек и преподаватель, которого интересно слушать и легко понять. Хотелось бы также выделить Артамонова Евгения Борисовича, у которого был индивидуальный подход к каждому студенту. Он понимал, что тех, кто не хочет учиться, ничему не научишь. Для остальных преподавателей мы были серой массой, и они приходили на работу, чтобы просто получить свои законные деньги. Я их ни в коем случае не виню. За зарплату преподавателя и от уровня жизни в Киеве неизвестно, откуда у этой категории рабочих может появиться рабочий энтузиазм. Правда, помимо негатива, который я описал об университете, в котором учился, он дал мне главное: умение правильно мыслить. Благодаря нескольким преподавателям я научился мыслить как технический специалист.
         Первым языком программирования, благодаря которому я стал зарабатывать деньги, начиная с третьего курса, стал С++. Мне очень повезло с первым тимлидом, который отучил меня от неудачного способа кодирования, которому учат в институтах, а благодаря знаниям о типах нотаций, полученных от него (я впервые услышал, что такое Венгерская нотация), я научился правильно писать код. Пришлось преодолеть долгий путь для того, чтобы разучиться думать функциями и начать думать объектами. Также в этот период я познакомился с прекрасной и умной девушкой, которая изменила в корне мое мировоззрение. Она всегда меня поддерживали в моих ошибках и пробах, успехах и победах. Сейчас эта чудесная девушка является моей женой, которая подарила мне прекрасное создание – нашу дочку. Они вместе делают мою жизнь ярче и помогают мне покорять новые высоты как в повседневной жизни, так и на профессиональной арене. Они мой стимул и моя муза. Все неприятности (если проблемы на работе, голова забитая задачами по разработке, скверное настроение) вмиг испаряются рядом с моей семьей, и через некоторое время можно приступать дальше к разработке.
   Позвольте вернуться к моей первой работе. За это время я узнал больше, чем за 5 лет, проведенных в университете. Методика образования в большинстве современных украинских вузов давно утратила свою актуальность, в отличие от университетов международного уровня, − многие из них сейчас предлагают онлайн-курсы по изучению или совершенствованию знаний самых разных предметов, как говорится, было бы желание учиться. Список доступных бесплатных курсов вы можете посмотреть  здесь. Единственное требование для изучения этих курсов − самодисциплина и знание английского. 
  Создавая программы на С++, я начал изучать новые технологии, читать много литературы, уделять больше времени самообразованию. Приведу пример: если из трех среднестатистических программистов, которые имеют приблизительно равный багаж знаний,  один уделяет на самообучение в среднем хотя бы полчаса в день, через полгода у последнего база знаний и опыт будет намного выше, чем у двух его коллег, описанных в примере.  Поэтому я также стараюсь уделять в рабочие дни около часа времени самообучению по программированию и столько же − на английский язык. Возможно, кого-то интересует, как выглядит обычный день программиста, позвольте привести для примера мой:
7:30-7:50     − подъем;
8:10-8:50     − дорога на работу;
9:00-9:30     − начало рабочего дня;
9:30-12:50    кодирование и решение текущих проблем;
13:00-14:00 − обеденный перерыв (теннис или занятие английским);
14:00-18:30 − кодирование;
19:00-20:00  дорога с работы домой;
20:00-21:20 − время на ужин и время с семьей;
21:30-23:00 − написание статей, программирование;
23:00-24:00 − самообучение английским языком. 
    В выходные дни график отличается тем, что 40% времени я уделяю самообучению, изучению новых методологий разработки программного обеспечения, новых языков и усовершенствованию имеющихся знаний. Время, уделенное самообразованию, полностью окупается. На рынке разработки программного обеспечения оплата труда специалиста прямо пропорциональна его знаниям, опыту и универсальности. 

No comments:

Post a Comment