Карьерный путь программиста: от стажера до ИТ-директора. Три пути развития карьеры программиста IT в моей жизни

Подумайте о карьере. Фото: кимберлитовая трубка Удачная, Якутия.

Плох тот программист, который не стремится стать ИТ-директором. Амбиции и стремление к карьерным вершинам,как правило, идут бок о бок с желанием стать отличным профессионалом в своей области.

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

Рассмотрим вариант карьерного пути программиста на примере вертикального движения, так как это классический и наиболее распространенный путь от стажера до руководителя. Кроме того, именно вертикальный рост способствует наиболее быстрому продвижению по карьерной лестнице.

Стажер (Junior Developer)

Большинство программистов начинают свою карьеру именно с этой первой ступени. Среди основных требований при приеме на работу:

Высшее или неоконченное техническое образование.
Владение основами языков программирования.

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

Разработчик программного обеспечения (Developer)

К моменту перехода на эту должность программист должен как минимум:

Обладать дипломом специалиста (лучше технической специальности, но не обязательно).
Знать все о программной инженерии.
Владеть несколькими языками программирования.
Иметь представление о системах управления базами данных, web-сервисах, ОС.

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

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

Ведущий разработчик (Senior Developer)

Требования к претенденту дополнительно включают:

Опыт работы в крупной профильной компании, от 2-х лет.
Участие в коммерческих корпоративных проектах.

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

Руководитель отдела разработки (Team Leader)

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

К основным обязанностям, как правило, относятся администрирование проектов и принятие проектных решений, организация работы в команде, решение всевозможных технических задач.

Менеджер проекта (Project Manager)

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

Двигаться дальше - в нескольких направлениях: перейти в другой, более интересный и масштабный проект, развиваться как директор по разработке или стать ИТ-директором. Выбранный путь во многом зависит от интересов специалиста и той области, в которой он стремится себя проявить.

Рано или поздно перед каждым разработчиком встает вопрос: а что дальше? Куда двигаться? Можно стать экспертом, к которому обращаются за советами, можно стать директором IT-компании, а можно сделать свой стартап. Какой выбор будет наилучшим для вас? К чему он приведет?

Существует два типа карьеры — вертикальная и горизонтальная.

Подробнее об этом, а также о третьем пути

  • Горизонтальной мы называем карьеру «Эксперта» — глубокого специалиста в своей отрасли.
  • Вертикальная — это карьера менеджера, руководителя с людьми в подчинении.
  • Третий путь — это стартап, собственный проект.

Про горизонтальную карьеру

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

В рамках горизонтальной карьеры цель — стать лучшим специалистом в деле, которым ты занимаешься, например, в java-разработке или в базах данных. В IT нельзя быть широким специалистом во всем, можно быть либо хорошим архитектором, который умеет проектировать системы, либо можно быть выдающимся специалистом по базам данных, который знает досконально DB2 или Oracle и умеет настраивать эти базы данных так, как никто другой. Зачастую производительность систем зависит от тонкой настройки, от создания индексов, от оптимизации SQL-запросов, от многих вещей, которые приходят только с опытом и наработкой навыков.

Точно так же для java-специалиста можно быть экспертом в каких-то средах приложений, например, WebSphere, WebLogic, Tomcat, когда знаешь, как правильно писать код, применять и наследовать классы. И более широкое понятие, как объектно-ориентированное программирование. Оно применимо как к java, так и к C++. Но если хочешь стать экспертом, нельзя стать шикарным экспертом и в С++, и в java, — на определенном этапе они расходятся. Имея базовые навыки объектно-ориентированного программирования, потом все равно надо выбирать направление и специализироваться либо в java, либо в C++.

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

И еще про горизонтальную карьеру — выбрав этот путь, человек становится очень востребованным, он дорого стоит, его уважают.

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

Любой эксперт проходит два этапа:

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

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

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

Экспертную карьеру нельзя отнять.

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

Про вертикальную карьеру

В первую очередь надо начинать горизонтальную карьеру, а затем делать вертикальную. Потом при движении по вертикальной карьере глубокие знания будут очень сильно помогать. Потому что подчиненные сотрудники всегда будут пытаться «развести», объяснить, что что-то сделать невозможно, это так не делается. Когда ты эксперт, ты можешь с этим аргументированно поспорить и заставить сделать как надо. А когда ты только управленец, тебе могут навешать любую лапшу.

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

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

Про стартап

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

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

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

С чего начать

Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый - родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант - модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант - хобби, которое переросло в работу.

Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

  • Самообразование . Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно , и приложений , которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
  • Университет . Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
  • Ментор . Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о , где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
  • Специализированные практические курсы . Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

Какой язык, технологию и направление выбрать

Когда вы станете программистом, через годик-другой будете вольны выбирать любой язык, который вам нравится. Но при выборе первого языка программирования новичок должен учитывать следующие критерии:

  • Наличие на рынке вакансий . Конечная цель этого пути - найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения . Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса . Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли - разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.

В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.

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

Во-вторых, вам нужно найти свои первые проекты. Это, наверное, самый сложный вариант, но рабочий. Вам придётся самому искать заказы, выполнять их, заморачиваться с оплатой. Для новичка это архисложно, но зато затем все остальные варианты покажутся плёвым делом. Выполненные проекты можно будет записать в опыт и показать вашему будущему работодателю. Реальные проекты являются большим плюсом в вашем резюме.

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

Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или . Не стесняйтесь задавать там вопросы.

Четвёртый вариант получения опыта - помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.

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

Почему стоит выбрать Python

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

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

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

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

Языки C и C# очень сложны для новичка. Ruby - хороший выбор в качестве второго языка, но не первого. JavaScript - очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

Что нужно знать, кроме языка программирования

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что - зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.

Последние шаги

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

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

Зарплата программиста

Хочу рассказать о зарплатах программистов. Как собственно обстоят дела с зарплатой, куда лучше идти работать, а куда - нет. Если вы не программист и попытаетесь самостоятельно разобраться в этой теме, то можете получить набор очень противоречивых данных. Все дело в том, что главным фактором, влияющим на зарплату программиста, является не его квалификация, а место работы. Иногда, при одинаковой квалификации, разница между хорошим и плохим местом может достигать 2-10 раз(!) В каждый конкретный момент времени ваша квалификация постоянна. Вы не можете за месяц стать опытнее в два раза и получать в два раза больше. А вот сменить за месяц работу и получать в два раза больше - очень даже можете. Однажды в течении двух месяцев моя зарплата выросла в три раза(!) - незабываемое впечатление. Давайте же выясним, где лучше всего работать. Вот три фактора, которые очень сильно влияют на уровень зарплат в компаниях:
  1. Является ли разработка ПО основным бизнесом компании.
  2. Ориентирована ли компания на международный рынок или на внутренний.
  3. Собственником фирмы является западная компания или отечественная.
Обратите внимание, что город, в котором вы живете не играет решающей роли. Т.е. если вы получаете в 10 раз меньше, живя в Дрездене, чем ваш знакомый в Нью-Йорке, значит, в дело вступили перечисленные выше факторы.

Конкретные цифры

Сложно привести какие-то конкретные цифры для всего мира. Я дам описание ситуации для Восточной Европы, которая в целом справедлива для всех стран, где более-менее развит IT-outsource/outstaff. Ниже приведен расклад зарплат программистов для Киева – это крупный центр ИТ-аутсорса Восточной Европы. В СПб зарплаты на 10% выше, в Москве где-то на 20%. Не встречал в Восточной Европе ни одного города-миллионника, где бы зарплаты были на 30% меньше чем в Киеве. Так как вы все из разных городов, предлагаю увеличивать приведённые мною цифры, в соответствии с указанной шкалой:Вот сколько может зарабатывать Java Senior Developer с пятью годами опыта работы, в зависимости от уровня компании, в которой работает:
Уровень Зарплата в месяц Описание
1 $200 - $500 Внизу находятся фирмы, где ИТ - это непрофильное направление бизнеса компании, заказчик - внутренний рынок, а собственник - государство. Например, ИТ-отдел в налоговой или другой государственной организации.
2 $500 - $1500 Ниже среднего находятся ИТ отделы различных не государственных структур: банков и т.д.
3 $1,000 - $2,500 Средний уровень - это фирмы, которые занимаются разработкой ПО
4 $3,000 - $4,000 Выше среднего - это фирмы, которые занимаются разработкой ПО, и заказчики у них с запада
5 $4,000 - $5,000 На вершине - фирмы, занимающиеся разработкой ПО, заказчики у них с запада, и собственник тоже. Их мало. Открытые вакансии бывают нечасто, и попасть туда непросто. Но они есть.
Что самое странное в сложившийся ситуации? Половина всех программистов работает в фирмах уровня 1 и 2. Хотите узнать, в чем подвох? Есть сотни открытых вакансий программистов в фирмах уровня 3 и 4. Эти компании готовы предложить более высокие зарплаты и, обычно, гораздо лучшие условия труда. Я знаю двух Java Junior’ов, один из которых пошел работать на $100 в месяц (в фирму уровня 1), а второй на $1,000 в месяц (уровень 4). Зачем получать меньше? Спрос на программистов превышает предложение – не идите работать туда, где мало платят! Вывод 1: Средние зарплаты Java-программистов в Киеве - около $1,200 в месяц Вывод 2: Ваша средняя зарплата, через 5 лет, если вы не пойдёте работать в фирмы уровней 1 и 2, а пойдете работать в фирмы уровня 3 и 4, будет выше $3,000 в месяц. Чего можно добиться, если не тупить Если вы будете постоянно заниматься саморазвитием в области программирования, то ваша зарплата, начиная с сегодняшнего дня, может выглядеть примерно так.

План

0-3 месяца (Ученик) Вы знаете о программировании очень мало. Может учили в школе и/или университете, но очень поверхностно. Ваша задача - учиться программированию и изучать Java. Ваша цель - устроиться на работу Java Junior’ом в компанию не ниже 3-го уровня. Первые три месяца на плане вы не получаете ничего, т.к. просто изучаете программирование. В будущем, когда у вас будет семья и куча кредитов, сменить специализацию будет гораздо сложнее. Чтобы исправить ошибку вам понадобится отложить денег на год нормальной жизни. Не делайте глупых ошибок. 3-15 месяцев (Java Junior Developer) Вы уже работаете программистом, и ваш опыт растёт с каждым днём. Не прохлаждайтесь. Вам ещё многое предстоит сделать, чтобы можно было почивать на лаврах. Ваша задача - изучать технологии, которые понадобятся вам как Middle разработчику. Какие именно технологии? Мир меняется. Я сейчас насоветую, а жизнь все поменяет. Найдите в интернете несколько вакансий и посмотрите, что для них требуется. Обязательно прочитайте книгу Брюса Эккеля «Философия Java». Ваша цель в первый год работы Java Junior’ом - дорасти до уровня Java Middle. Никто не говорит что это очень легко, но вполне возможно для целеустремлённого человека. Это сразу даст скачок ЗП до полутора тысяч. 2-й год работы программистом (Java Middle Developer, level 1) Вы хорошо потрудились в прошлый год, и теперь вы - Java Middle Developer. С зарплатой в полторы тысячи можно нормально жить. На работе вам дают серьёзные задания, и ваш опыт растёт как на дрожжах. Вы дорастёте до Java Senior Developer за два-три года. Нет смысла ускорять этот процесс. Сильного роста в зарплате вы все равно не получите. Ваша задача - изучите паттерны проектирования, прочитайте «Совершенный код» МакКоннела. Улучшайте качество своего кода и свои навыки работы в команде. Можно взять за правило каждую неделю читать одну книгу по ИТ. Тогда через год, вы будете на 50 книг умнее остальных. Не стоит откладывать это на потом: свободного времени у вас больше не станет. Вполне вероятно, что у вас появится семья, или пополнится, если уже есть. Ваша цель - выбрать несколько технологий, в которых вы будете специализироваться как Senior-разработчик. Всего вам все равно не изучить. А быть гуру в небольшой области – это хорошее решение. 3-й год работы программистом (Java Middle Developer, level 2) Вы уже опытный Middle разработчик и начинаете подумывать – стать Senior Developer. Это приятно и престижно. Ваша зарплата превышает 2 тысячи долларов (данные для Киева). С этого момента спрос на таких профессионалов как вы, превышает предложение. Вы всегда сможете устроиться на работу за пару дней, и вряд ли будете получать меньше, чем сейчас. Если, конечно, не выкинете какую-нибудь глупость. Ваша задача - продолжить изучение выбранных технологий. Работайте лучше. Не ради работодателя, ради вас самих. Проситесь в проекты с перспективными технологиями (такими как Big Data, на момент написания этой статьи). Вы все равно будете проводить в офисе 8 часов в день, так почему бы не получить за это немного больше денег и, что гораздо важнее, ценнейший опыт, который вам ещё понадобится. Ваша цель - сменить работу. Хороший коллектив есть везде. Вы столкнётесь с новыми проектами и технологиями. Не стоит раньше времени прирастать к стулу. Если вы все ещё работаете в компании третьего уровня, подумайте над переходом на четвёртый уровень. Пятый уровень, хоть и очень привлекательный, пока недостижим. 4-й год работы программистом (Java Senior Developer, level 1) Вы стали Senior разработчиком. Поздравляю. Возможно, стали им незаслуженно, и вы это чувствуете. Все равно поздравляю. Не важно, достойны ли вы сейчас вашей должности, главное чтобы вы стали достойны её в будущем. Согласитесь, лучше сначала получить хорошую работу, а через год дорасти до неё, чем дорасти до хорошей позиции и ждать её ещё год. Надеюсь, вы не забыли мой совет и читали по одной книге в неделю - теперь вашим возможностям позавидует любой студент. Вернее он готов молиться на них. Подумайте, у вас серьёзная зарплата, приближающаяся к трём тысячам долларов. Скорее всего, вы ещё молоды. Весь мир у вас под ногами. Ваша задача - ещё раз просмотреть выбранные вами технологии. Возможно, вам нужно сменить специализацию. Мир изменился, технологии изменились, да и знаний у вас за два последних года прибавилось. То, на чем вы сейчас остановитесь – станет вашим выбором на несколько ближайших лет. Самое время выбирать любимые технологии. Ваша цель - выбрать направление, в котором вы могли бы развиваться дальше. Их очень много, всех вариантов никто не перечислит, но выбор нужно сделать прямо сейчас. Если сегодня вы немного измените своё настоящее, это приведёт к большим изменениям в вашем будущем. 5-й год работы программистом (Java Senior Developer, level 2) Вы определились с вашим будущим и работаете над воплощением вашей мечты. Правильно выбранное направление в совокупности с желанием идти вперёд и результат не заставит себя ждать. Поздравляю. Я рад, что ещё одним счастливым человеком стало больше. Есть одна мудрая истина. Люди часто переоцениваю чего можно добиться за один год, и недооценивают, чего можно добиться за пять лет. Оглянитесь на пять лет назад. Так оно и есть. Ваша задача - не принимать глупых решений и не идти на поводу у лени. Ваша цель - выбрать направление и двигаться дальше. А вы думали это конец? Вспомните свой выпускной класс. Это не конец, это только начало.

Будущая специализация

Вы можете развиваться как технический специалист (верхняя ветка), как управленец (нижняя ветка) или как наемный профессионал/независимый консультант (средняя ветка). Все зависит от ваших предпочтений.

Карьера программиста

Профессия программист отличается от других профессий. Здесь нет необходимости делать карьеру менеджера, чтобы хорошо зарабатывать. Нередки ситуации, когда старший программист получает больше, чем его начальник-менеджер. Чем больше вы набираете опыта, тем сильнее ваши отношения с начальством движутся от точки «начальник-рабочий» к отношениям вида «кинозвезда и её менеджер». Зажравшиеся, знающие себе цену программисты перебирают и проектами и вакансиями. Порадуемся за своих. Что же нужно, чтобы стать таким высококлассным и востребованном в мировом масштабе программистом? Вы должны иметь большой опыт в самых новых и востребованных технологиях. Как этого достичь? Ответ ниже. После того, как вы первый раз устроились работать программистом, с вами начинают происходить две вещи, которые, как ни странно, не всегда бросаются в глаза.
  1. Вы начинаете быстро набирать опыт работы в реальных проектах. Один год опыта работы программистом может дать вам больше знаний и навыков в вашей специальности, чем 5 лет университета. Опыт – это настолько значимый показатель, что в IT-вакансиях зачастую пишут «требуется Java-программист с тремя годами опыта работы».

  2. Вы по 8 часов в день изучаете новые технологии, а вам за это ещё и щедро платят. Значимость этого фактора трудно переоценить. В некоторых случаях полученные навыки настолько ценны, что ради их получения можно работать бесплатно, а то и доплачивать. Если вы грамотно выбираете проекты, на которых соглашаетесь работать, то вас ждёт головокружительная карьера программиста.
Вот только, что же выбрать? Зачастую, если вы не знаете, какие технологии будут вам полезны, вы начинаете выбирать технологии по принципу «нравится, не нравится» или «модно, не модно». Тут уж как повезёт. Так что, лучше знать заранее, куда вы хотите попасть. Путей развития программиста очень много, поэтому я, для простоты, выделю несколько из них, и напишу своё видение полученной ситуации. Не стоит воспринимать эту схему как жёсткую позицию, скорее как упрощённый взгляд на вещи, с целью внести хоть какую-то ясность.

Двухсотлетний программист

Если больше всего вам нравится программировать , то ваш путь: Senior Developer, затем Tech Lead Developer и архитектор. Также вы можете просто работать программистом лет 50. Зачастую зарплаты старших программистов и техлидов превышают зарплаты их менеджеров. Не прогадайте.

Менеджер. Тебе повезло, ты не такой как все

Вы перешли на сторону врага. Шучу. Если у вас открылись недюжие организаторские способности , то ваш путь: Team Lead, а затем Project Manager. Это даст вам шанс стать директором и поможет при открытии своего дела. Вы ведь этого хотите, не так ведь?

Украсть трактор

Если вы успели завести семью и детей , то возможно вы хотите тихой и безбедной жизни в стране со стабильной экономикой. Задумываетесь над переездом/иммиграцией в Канаду, США, Швейцарию или даже Австралию. У вас есть отличные навыки и востребованная профессия. Вам не придётся начинать с мойщика посуды. А, например, с Senior Java Developer. Да ещё и, вероятно, на большую зарплату. Не так уж и плохо.

Посмотреть весь мир, кроме Парижа и не умирать

У вас ещё нет семьи, и вы хотите попутешествовать . Upwork – ваше все. Найдите себе заказчика, обговорите с ним рейты – от $20/час, берите ноутбук и вперёд. Вашей зарплаты должно хватить, чтобы нормально жить в любой стране мира. Почему бы не приступить к исполнению своей мечты прямо сейчас? Программирование – это комфортно.

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

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

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

Особенности обучения

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

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

Работа IT-техника может иметь несколько направлений:

  1. Прикладной техник. Специалист занимается программным обеспечением, его разработкой и усовершенствованием для удобства работы в организациях. Обычно это специалисты программы 1C, техники занимаются настройками, описаниями функций и доработкой под требования конкретной фирмы.
  2. Системное направление. Работники занимаются разработкой и описанием баз данных, интерфейсов. Также они являются администраторами социальных сетей.
  3. Специалист ТП (технической поддержки). Незаменимые работники, помогают устранить неполадки и ошибки в сжатые сроки.
  4. Тестировщик. Они, в частности, занимаются доработкой и тестированием уже готовых программ.

Несмотря на то, какое направление будет выбрано, любой программист занимается разработкой стандартных или узконаправленных программных кодов и средств.

Каким должен быть программист?

Безусловно, чтобы стать специалистом, нужно обладать определенными качествами, это касается также и программистов. Чтобы получить знания, а в дальнейшем и работу, будущий специалист должен обладать следующими талантами:

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

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

Положительные стороны и недостатки профессии

Как и любая профессия, специализация в программировании имеет свои положительные стороны и недостатки. Главный плюс профессии – востребованность, а также высокий доход. IT-техник являются очень популярной должностью, разнообразие рабочих мест дает возможность будущему работнику выбрать свое направление, а также место работы (на Родине или за рубежом).

Но все же существуют следующие минусы профессии программист:

  1. Высокая конкуренция. Лучшие места забирают те, кто знает свою профессию на «отлично».
  2. Нужна усидчивость и кропотливость. Не каждый человек сможет сидеть несколько часов подряд над разработкой программы или решением алгоритма.
  3. Нужно много учиться и постоянно обновлять свою базу знаний, поскольку мир технологий не стоит на месте, и чтобы быть первым в своём деле, нужно постоянно развиваться.

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

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

Где найти работу?

IT-техник в целом – многогранная профессия. Несмотря на то, что по статистике на 1 рабочее место приходится 15 работников, всё же реально получить своё место под солнцем. Всё зависит от навыков и целеустремлённости каждого, ведь если сидеть и ничего не делать – навряд ли удастся получить высокую должность.

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

Если выбор пал на компанию, то первым делом необходимо написать резюме. В нем следует указать:

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

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

Если был выбрано «свободное плавание», то тут нужно также постараться. Главным преимуществом фрилансеров является то, что в большинстве случаев работодатели не требуют документов, а также свобода в выборе работы. Самостоятельно можно искать проекты, ТЗ и выполнять в любое для себя удобное место. Но все же есть и минус – такая работа нестабильна и не даёт гарантий. Какой путь выбрать – решает каждый.

Зарплата программистов

Как уже говорилось, программист – весьма прибыльная профессия. Однако всё же многих интересует вопрос, сколько зарабатывают программисты? Заработная плата зависит от уровня специалиста, а также от того, где он работает. В больших городах специалисты работают в хороших фирмах, и для каждого находится своё место. Что касается более маленьких городов, тут зарплаты меньше, но соответствуют уровню жизни.

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

Чтобы стать руководителем IT-отдела, нужно обладать твердым характером, уметь принимать собственные обдуманные решения, отстаивать их, а также быть терпеливым и целеустремлённым. Все эти качества помогут в далее продвинуться по карьерной лестнице и стать первоклассным программистом.