Pull to refresh

История одного девелопера, или Стреляя по звёздам, попадёшь в Луну

Reading time5 min
Views31K
Привет всем,
Особенно студентам, начинающим программистам и всем, кто хочет ими стать! Я бы хотела рассказать историю своего джуниорства, надеюсь, мой бесценный опыт будет кому-нибудь полезен (и поможет не набивать шишки там, где не надо).

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

Итак, имеется двадцатилетний студент четвёртого курса, обучающийся по специальности «Информационные технологии в образовании» со специализацией «Управление проектами». В пассиве – очень скромное количество и качество обучения программированию в вузе и гуманитарное прошлое. В активе – огромное желание стать высококвалифицированным специалистом в области разработки высоконагруженных Java-приложений (такая формулировка пришла намного позже, на ранней же стадии было примерно так: «Java клёвая, хочу на ней круто кодить!»). Задача – реализовать свою мечту. Ниже приведён алгоритм, худо-бедно сформулированный по окончании анализа всех ошибок, сделанных в попытках решить эту задачу.

Шаг первый

Всячески использовать возможности обучения, подвёртывающиеся в вузе. К сожалению, это понимание пришло у меня слишком много, и уже закончив шестой курс, я поняла, как много всего упустила. Высшая математика, дискретная математика, теорвер… Когда только учишься, кажется, что это всё не так уж важно, а главное — выучить язык. Чёрта с два! Теперь я пытаюсь самостоятельно изучить то, в чём без преподавателя разобраться нелегко и чему меня совершенно добровольно в вузе учили. Единственное, чему я уделяла внимание в вузе — это курсовые работы на Java. Постановка задачи для курсовой работы была примерно такой: «Вот тебе ТЗ, вот тебе книга – делай!» Позитивный опыт, извлечённый из этого, такой: лучше всего выбирать более сложную задачу, более сложную реализацию, чтобы получить хоть какой-то опыт, которым можно будет оперировать при работе с работодателем.

Шаг второй

Рано или поздно приходит понимание, что ты не знаешь ничего! Поэтому приходится учиться самостоятельно, и притом самостоятельно. Это очень важно. Настоящие специалисты учатся всю жизнь, поэтому и начинать нужно как можно раньше. Здесь главное – найти подходящие книги, и в этом месте я набила свою вторую шишку – это было активное использование курсов на сайте Интуит. Интуит – это хорошо, конечно, но лучше бы я вместо этого пять раз «Философию Java» прочитала. И ещё пару раз «Основы объектно-ориентированного проектирования» Мейера.

Шаг третий

Вроде бы у тебя уже есть кое-какие знания; настала пора их применять. А для этого необходимо как можно раньше устроиться на работу. Теоретические знания и студенческие работы – это всё хорошо, конечно, но далеко на них не уедешь. Здесь я набила очередную шишку – я тянула с этим довольно долго (идея стать Java-программистом пришла мне на четвёртом курсе, а устроилась я на работу только на пятом). Всё время казалось, что я не готова, — то книгу надо дочитать, то курс на сайте пройти… Так вот, всё это бред. Студент, находящийся в поисках своей первой работы, обладает рядом преимуществ, надо только их правильно преподнести.
Прежде всего, не стоит стесняться своей неопытности, поскольку здесь пригодится то, что было наработано на шаге первом – какие-никакие, а реальные программы. Можно и нужно говорить и о своих теоретических знаниях. Ну, а самое главное, — подчеркнуть то, что выгодно для работодателя: ты готов заниматься сколь угодно нудным кодерством, чтобы получить необходимый опыт в реальном проекте. Тогда более опытные программисты смогут заняться интересными, а самое главное, важными задачами, и все будут в плюсе. И при этом платить тебе надо сущие копейки. Когда я устроилась на свою первую работу (тогда мой опыт сводился как раз к курсовой работе на Java, а из самым серьёзным из прочитанных авторов по языку был только Шилдт), я была счастлива до чёртиков: надо же, меня будут учить Java, да ещё и платить за это!

Шаг четвёртый

Когда собеседование позади, и ты наконец-то задействован в реальном проекте, главное, как ни парадоксально, вовремя из него уйти. Первое время тебе, конечно, там круто. Тебя учат, ты каждый день профессионально растёшь, начинаешь решать всё более и более сложные задачи, при этом получаешь возможность общаться с опытными специалистами, советоваться с ними по выбору профессиональной литературы и т.п. Но рано или поздно, в зависимости от того, насколько быстро ты развиваешься, процесс твоего роста приостанавливается. Всё это из-за того, что тебя приняли на позицию Junior Developer-а, который решает нудные задачки по программированию, и, собственно, ты изменился, а проект – нет. Те задачи, которые полгода-год-полтора назад казались тебе интересными, сейчас так же скучны, как были они тогда для старших товарищей, для разгрузки которых тебя, собственно, и наняли. Хорошо, если ты попал в компанию, которая предполагает постоянный рост своих сотрудников, но в моём случае всё было иначе, поскольку там самым простым способом перейти с Junior Developer на Middle – это уволиться, а потом снова наняться. Чтобы понять это, я потратила целый год в попытках то добиться повышения сложности задач и заодно зарплаты (удалось однажды, но ненадолго: вскоре я снова переросла этот уровень), то устроиться в соседний отдел, где вроде бы требовались именно Middle Developer-ы. В итоге пришлось уволиться. Но мне бы хотелось ещё раз повторить: не стоит ждать повышения! Лучше вообще в качестве превентивной меры регулярно ходить по собеседованиям, но об этом – в шаге пятом.

Шаг пятый

И вот ты – молодой программист с неким опытом работы и большим желанием доказать миру всю глубину своей крутизны. Конечно, проще всего это сделать, пройдя собеседование на какую-нибудь привлекательную позицию.
На этом шаге мой опыт составлял чуть больше двух лет. Профессиональный рост на моей работе остановился примерно через год после того, как я на неё устроилась, и поэтому единственным спасением было постоянное саморазвитие: чтение книг, посещение семинаров, etc. Следует заметить, что собеседование само по себе содержит некоторую обучающую составляющую, поскольку если ты чего-то не знаешь, то можно или узнать об этом у интервьюера, или – позднее – из других источников. Хотя бы поэтому стоит ходить по собеседованиям, даже если не находишься в поисках работы. К тому же интервью держат тебя в курсе событий, позволяют знакомиться с интересными людьми и проектами, ну и, наконец, чем чёрт не шутит, может, и правда удастся найти интересную позицию? Ещё один довольно полезный совет: стоит устанавливать в резюме желаемую зарплату побольше. Тогда тебя будут рассматривать как кандидата на более серьёзные позиции, и в таком случае скучно уж точно не будет!

Искать новую работу можно не только на соответствующих сайтах типа hh.ru, но и на различных ярмарках вакансий и фестивалях. Кстати, свою нынешнюю работу я нашла благодаря фестивалю НайтиIT весной 2012, перескочив с уровня Junior Java Developer сразу на Senior.

Подытоживая всё вышесказанное, хотелось бы сделать следующие
Выводы


1. Учиться, учиться и ещё раз учиться! Теоретически, практически, самостоятельно, на курсах – как угодно! Главное – в режиме non-stop!
2. Общаться, общаться и ещё раз общаться! С коллегами, специалистами в смежных областях, интервьюерами, лесторами… Это тоже вариант обучения.
3. Регулярно ходить по собеседованиям как тогда, когда ты неопытный студент, как тогда, когда ты уже опытный специалист.
И самое главное – не бойтесь ставить перед собой значительные цели. Стреляйте по звёздам, тогда уж точно попадёте как минимум в луну!
Tags:
Hubs:
Total votes 68: ↑33 and ↓35-2
Comments78

Articles