Начало карьеры и первый проект. От потенциального экономиста к программисту

Я начал работать разработчиком несколько месяцев назад, до этого не заканчивал и не учился в технических университетах. На самом деле, я еще со школы увлекался программированием: с 6 класса программировал на Turbo Pascal, принимал участие в районных и областных олимпиадах (спасибо моему учителю по информатике, который мной занимался) и был уже уверен, что буду поступать на какую-нибудь IT-шную специальность.

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

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

Я вспомнил, каково это было: думать и искать подходы к решению определенной проблемы, потом найти решение и получать от этого удовлетворение. Сначала было тяжело, потому что было непонятно с чего начинать, но благо у меня уже был фундамент со школы. Знакомая программистка посоветовала смотреть в сторону баз данных и Java. Когда я начал заниматься, я понял, что вот оно, это то, что мне интересно. На чтении англоязычных книг и ресурсов неплохо подтянул английский. Среди книг были:

  • Хорстманн, первый том
  • Эккель
  • Буч
  • Head First Java
  • Head First Design Patterns
  • Effective Java
  • Java Concurrency in Practice


А в сети, естественно, stackoverflow, JavaTalks, coderanch, habrahabr и множество других ресурсов. Схватывал я довольно быстро, поглощал с жадностью и был этим доволен.

Очень боялся быдлокода: как я пойму, что что-то не так, кто это скажет? Продолжалось это самообучение около полутора лет. Писал небольшие программки для закрепления знаний.

Позже, начал смотреть в сторону enterprise разработки. Первое, что я начал читать на эту тему, это Head First Servlets and JSP. Написал небольшое web-приложение с таблицами, выборкой, поиском и т.д. Потом подумал, что пора искать работу. Начинать поиски было морально тяжело: у меня нету бумажки, что я где-то учился. Преодолев это чувство, я начал рассылать резюме. Правда, в пару компаний и ответа не было. Я решил не переживать, закинуть своё резюме на один сайт (мол, может повезет) и продолжать обучение.

На следующий день после размещения резюме мне позвонили и пригласили на собеседование в одну крупную компанию. Я очень обрадовался, но без волнения, конечно, приятного, не обошлось. Собеседование я прошел без проблем, всё стандартно: базы данных, разговор на английском о языке программирования, вопросы и т.д. Меня приняли, это было большое счастье.

Два месяца был и испытательный срок: я с такой же командой новичков разрабатывал web-приложение. На нем попробовали многое: JDBC, Spring, Hibernate, Struts, GWT и прочее.

И вот с недавнего времени я на реальном проекте. Сказать честно, ожидал, что «космические корабли будут бороздить просторы Вселенной». Проект внутренний для одной очень известной IT компании, но это просто корзина быдлокода: JDBC DAO с бизнес-логикой на 10 000 строк, сервис уровень под EJB, все методы которого просто делегируют вызов DAO, такого вида:

public HashMap<String, String> getSomething() {
		return fooDao.doJob();
}


глупые решения, куча if-блоков, которые по-хорошему заменяются полиморфизмом, огромные методы на 500 строк и как следствие ужасный workflow.

Каждый новое требование решается добавлением определенного if-блока в определенно удобное место. Всё это сильно печалит, особенно, когда вижу, как это можно всё рефакторить красиво. Но к сожалению, никто этим пока не собирается заниматься: проекту уже пару лет, достался он нам таким, какой есть. Но факт остается фактом: поддерживать и расширять это становится ужасно сложно, и чувствуется, что дальше будет хуже.

Несмотря на это, я понял, что работа разработчика — это моё, хотя надеюсь, что не все проекты так пишутся, что руки чешутся переписать.

Дальше собираюсь накапливать опыт, получать новые знания, очень хочется получить фундаментальное образование, стараюсь читать больше. Хочется развиваться и стать Специалистом. Осложняется пока правда всё тем, что мне осталось доучиться полгода в моем университете, а сейчас самое нелегкое время — последняя сессия, написание и защита диплома. И, конечно, никакой связи моего образования с работой. Надеюсь, всё это быстро и успешно пройдет и после я смогу с головой окунуться в IT.

Собственно, я заканчиваю повествование и хочу сказать тем, кто действительно заинтересовался информационными технологиями, но не имеет за плечами университета в этой области — дерзайте! Если ваше — сразу станет понятно. Только помните: деньги — не стимул в выборе этой профессии. Стимул — это ваш энтузиазм и желание узнавать новое.
Метки:
Поделиться публикацией
Комментарии 13
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      На сайте была стандартная анкета, в пункте «Ключевые навыки» написал:
      Core Java, JSP, JSTL, Servlets, JDBC
      HTML, CSS, JavaScript
      MySQL
      Понимание принципов ООП
      Паттерны проектирования
      Linux (Debian-based, RPM-based, Pacman-based) – 4 года
      Английский язык – Intermediate

      Имею некоторые теоретические знания:
      Struts, Hibernate
      • 0
        И как с Javascript'ом?)) Просто интересно.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Ну я тоже по некоторым причинам учился на менеджменте, что не мешает мне сейчас вполне успешно продолжать расти в системном администрировании, плюс еще каждая новая работа — свякие новые технологии, опыт и знания
      • +2
        Рано или поздно наступит момент, когда кодировать станет скучно. Большинство активных людей вырастают из специалистов в менеджеров или в архитекторов/проектировщиков.


        Надеюсь, что не у всех.
        • НЛО прилетело и опубликовало эту надпись здесь
        • +1
          В каком месте я хвалюсь?
          Ошибаетесь. Для меня чем сложнее, тем интереснее.
          Что мешает вырасти до архитектора?

          Какими специалистами можно хорошо управлять без знания производственного процесса?
        • +1
          Автор молодец. могу только посоветовать не распыляться на много языков программирования — чтобы не было каши
          • 0
            Из личного опыта говорите?
            • 0
              Чем больше, тем лучше. Узконаправленное мышление это тоже плохо.
              Автору могу сказать что если у Вас такой характер(не постоянный), попробуйте не бросать мелкие дела, а доводить их до конца. Придумайте проект, и закончите его. Даже если на пол пути станет уже не интересно, закончите его до блеска. И так каждый раз. Всё с мелочей начинается.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.