Профессия Java-разработчик: 6 распространённых мифов | GeekBrains
Специальность Java-девелопера, обросла мифами. Разберёмся, где правда, а где ложь с помощью выпускников GeekBrains и статистики.
https://d2xzmw6cctk25h.cloudfront.net/post/1274/og_cover_image/cbb346cd8b2855c031cd4a69114301c8
Мало вакансий уровня Junior
К 2017 году IT-рынок насыщен специалистами, хотя особенного избытка профессионалов и не наблюдается. По данным портала HeadHunter, в октябре на одну вакансию приходилось 3,3 резюме.
Что касается Java-разработчиков, рекрутеры признаются: хоть этот язык и популярен среди программистов, большого потока на вакансию не будет. Специалисты в этой сфере или уже имеют работу, или очень быстро её находят.
Миф о числе вакансий уровня Junior разбивают истории успеха выпускников профильных курсов GeekBrains. Семь из десяти студентов находят работу ещё в процессе обучения. Например, Михаил Рыбаков работал в банковской сфере, когда стал студентом GeekBrains. Решение о смене профессии он принял ещё до окончания курсов и успешно трудоустроился в IT-компанию.
Чтобы найти работу, нужен опыт участия в коммерческих проектах
Этот тезис одновременно является и мифом, и реальностью. Содержимое портфолио крайне важно, и что попало работодателю лучше не демонстрировать. Но даже учебные проекты, если они качественные и сделаны с умом, могут привлечь работодателя.
Так, Сергей Медный окончил курс «Программист Java» и прошёл стажировку. Эту информацию он отразил в резюме, которое разместил в открытом доступе на hh.ru. Его нашли менеджеры по персоналу компании Mail.ru и предложили работу.
Чтобы получить высокую зарплату, нужен многолетний опыт
Разумеется, работодатели рады заполучить в компанию профессионала со стажем. Однако и разработчики с небольшим опытом могут претендовать на высокую зарплату. Выпускник GeekBrains, который сейчас работает в крупном интернет-магазине, Валерий Туров, говорит, что важно не бояться заявить о себе: «Когда я искал работу, на hh.
Туров посоветовал начинающим программистам не бояться вакансий: «Не стоит думать, что вас не возьмут, если вы чего-то не знаете. Работодатель понимает, что вы junior, и если он разместил такую вакансию, то готов рассмотреть вашу кандидатуру». С ним соглашается Игорь Филиппенко: «Даже если вы не знаете всего стека технологий — шлите резюме. Берут ведь не только «всезнаек», но и просто адекватных мотивированных ребят».
Работодатели хотят сотрудника с высшим профильным образованием
По информации ВНИИ Труда Минтруда России, 30% выпускников в России работают не по специальности. Работодатели обращают внимание не на наличие высшего образования, а на навыки и умения. В случае с Java-разработчиком проверить их легко: достаточно беглого взгляда в портфолио и выполненного тестового задания.
Научиться Java-разработке с нуля за полгода невозможно
Многие выпускники GeekBrains пришли на сайт без какой-либо базы программирования. Некоторые начинали с бесплатных курсов и вебинаров, другие сразу определились с будущей специальностью. Но все они смогли овладеть профессией за положенный срок.
Валерий Туров воспринял мнение скептиков как вызов и опроверг его после прохождения курсов: «Теперь я точно могу сказать, что всё это возможно. Я стал программистом без какой-либо базы программирования вообще». Без опыта разработки на курсы пришёл и Никита Процкий. После обучения он не только стал Java-разработчиком, но и занял 23-е место на Всероссийской олимпиаде по программированию.
Разработчику обязательно знать английский язык на продвинутом уровне
Формально можно считать этот тезис мифом. По данным портала Superjob, в 2015 году только 39% работодателей требовали от соискателя владения английским языком на уровне, позволяющем читать образовательную литературу.
Однако многие нужные материалы есть в сети только на английском языке, и переводить их никто не собирается. Для новичков они слишком сложны и потому бесполезны. Разработчики уровнем выше уже должны разбираться в технической документации на английском, поэтому смысла в переводе нет. Так что на пути в программирование нужно обязательно зайти на занятия по иностранному языку. Поэтому GeekBrains дарит студентам видеокурс «Английский для IT-специалистов» и годовой курс обучения языку от EnglishDom.
Прокачать иностранное наречие советуют все выпускники GeekBrains. Это значительно упростит работу и дальнейшее обучение.
Профессия Программист: где учиться, зарплата, плюсы и минусы
Программист — это специалист, который занимается разработкой алгоритмов и компьютерных программ на основе специальных математических моделей. Профессия перспективная и очень востребованая во всём мире, зарплата программиста в России в диапазоне 25000-200000 (медианное значение). Стать программистом можно любом возрасте. Профессия подходит мужчинам и женщинам с интересами к программированию, математике, языкам, а так же хорошими аналитическими способностями и развитой логикой (пройти тест можешь ли ты стать программистом). Существуют вузы, курсы и колледжи, обучающие программированию, но выучиться возможно и самостоятельно, как правило, выше ценятся программисты с высшим техническим образованием. Существуют разновидности программистов. Профессия имеет свои плюсы и минусы.
Читайте также:
Разновидности
В программировании на первое место ставятся не только практические навыки, но и идеи специалиста.
- Прикладные программисты занимаются в основном разработкой программного обеспечения прикладного характера — игры‚ бухгалтерские программы‚ редакторы‚ мессенджеры и т.п. К области их работы также можно отнести создание программного обеспечения для систем видео- и аудио-наблюдения‚ СКД‚ систем пожаротушения или пожарной сигнализации и т.п. Также в их обязанности входит адаптация уже существующих программ под нужды отдельно взятой организации или пользователя.
- Системные программисты разрабатывают операционные системы, работают с сетями, пишут интерфейсы к различным распределенным базам данных. Специалисты этой категории относятся к числу самых редких и высокооплачиваемых. Их задача состоит в том‚ чтобы разработать системы программного обеспечения (сервисы)‚ которые‚ в свою очередь‚ управляют вычислительной системой (куда входит процессор‚ коммуникационные и периферийные устройства).
- Web-программисты также работают с сетями, но, в большинстве случаев, с глобальными — Интернет. Они пишут программную составляющую сайтов, создают динамические веб-страницы, web-интерфейсы для работы с базами данных.
Особенности профессии
На основе анализа математических моделей и алгоритмов решения научно-технических и производственных задач программист разрабатывает программы выполнения вычислительных работ. Составляет вычислительную схему метода решения задач, переводит алгоритмы решения на формализованный машинный язык. Определяет вводимую в машину информацию, ее объем, методы контроля производимых машиной операций, форму и содержание исходных документов и результатов вычислений. Разрабатывает макеты и схемы ввода, обработки, хранения и выдачи информации, проводит камеральную проверку программ.
Читайте также:
Определяет совокупность данных, обеспечивающих решение максимального числа включенных в данную программу условий. Проводит отладку разработанных программ, определяет возможность использования готовых программ, разработанных другими организациями. Разрабатывает и внедряет методы автоматизации программирования, типовые и стандартные программы, программирующие программы, транслятора, входные алгоритмические языки.
Выполняет работу по унификации и типизации вычислительных процессов, участвует в создании каталогов и карточек стандартных программ, в разработке форм документов, подлежащих машинной обработке, в проектных работах по расширению области применения вычислительной техники.
Плюсы и минусы профессии
Плюсы:
- высокая заработная плата;
- сравнительно высокий спрос на специалистов;
- иногда можно получить работу не имея высшего образования;
- по преимуществу является творческой профессией.
Минусы:
- приходится часто и много объяснять одно и то же, так как то, что понятно и очевидно программисту, совсем не всегда понятно и очевидно пользователю;
- работа в режиме аврала (иногда) в стрессовой ситуации;
- профессия накладывает специфический отпечаток на характер, который нравится далеко не всем окружающим.
Место работы
- IT-компании и web-студии;
- научно-исследовательские центры;
- организации, которые подразумевают в своей структуре штатную единицу или отделы программистов.
Важные качества
Программирование является бурно развивающейся областью, поэтому программист должен уметь быстро адаптироваться к текущему состоянию технологии и постоянно изучать новые технологии. Поэтому способность к самообучению — один из главных навыков, которым должен обладать программист. В противном случае через несколько лет его ценность как специалиста окажется заметно ниже.
Владение английским языком на уровне чтения технической документации является еще одним обязательным требованием, предъявляемым к представителям этой профессии. Для таких специалистов очень важно умение работать в команде, над большими проектами, со средствами коллективной разработки, с крупными финансовыми системами (бюджетными, банковскими, управленческого учета).
Обучение на программиста
Читайте также:
Оплата труда
Программист – одна из самых востребованных и высокооплачиваемых профессий в России. Даже не самый продвинутый специалист может найти работу в соответствии со своим уровнем знаний, а затем постепенно учиться и набираться опыта. Зарплата стажера — около $1000. Штатный программист в компании среднего уровня (не IT) получает до $1500-1800, чуть больше — в организации, связанной с массовой разработкой ПО. Зарплата ведущего программиста — $2500—3000. Следующая ступень — руководитель IT-отдела. К необходимым знаниям добавляется обязательный опыт работы, владение иностранным языком, навыки управления персоналом и др., а заработок может достигать $4000. Хороший программист может стать руководителем крупного проекта по разработке ПО, и тут уровень доходов достигает $5000 и выше.
Ступеньки карьеры и перспективы
Хорошим стартом карьеры может стать присоединение к группе программистов при разработке какого-либо проекта. Крупные проекты часто привлекают внимание западных компаний, которые «перекупают» российских программистов. К примеру, когда-то группа наших молодых ученых разрабатывала процессор «Эльбрус» для Минобороны, а в итоге их всех перекупила корпорация Intel, и теперь наши ученые и программисты работают за рубежом, а сам проект «Эльбрус» потихоньку закрылся. Проблема «утечки мозгов» в этой профессии — одна из самых острых.
Программист может сделать карьеру до руководителя группы программистов (тим-лидер), IT-директора предприятия, менеджера IT-проекта и т.п. В ходе работы программист может перемещаться в рамках своей специальности, совершенствуясь профессионально.
Знаменитые и великие программисты
- Кнут Дональд Эрвин
- Мацумото Юкихиро
- Таненбаум Эндрю
- Рэймонд Эрик Стивен
- Фаулер Мартин
- Хоппер Грейс
- Столлман Ричард Мэттью
- Кей Алан
- Мейер Сид
- Страуструп Бьёрн
Интересные факты
Возникновение программирования как рода занятий и, особенно, как профессиональной деятельности трудно датировать однозначно.
Часто первым программируемым устройством принято считать жаккардовый ткацкий станок, построенный в 1804 году Жозефом Мари Жаккаром, который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт.
Первое программируемое вычислительное устройство, Аналитическую машину, разработал Чарлз Бэббидж (но не смог её построить). 19 июля 1843 года графиня Ада Августа Лавлейс, дочка великого английского поэта Джорджа Байрона, как принято считать, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости.
Читайте также:
В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранили свое принципиальное значение и для современного программирования. В материалах Бэббиджа и комментариях Лавлейс намечены такие понятия, как подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах.
Однако ни одна из программ написанных Адой Лавлейс никогда так и не была запущена.
Аду Августу, графиню Лавлейс, принято считать почётным первым программистом (хотя, конечно, написание одной программы по современным меркам не может считаться родом занятий или профессиональной деятельностью). История сохранила её имя в названии универсального языка программирования «Ада».
Первый работающий программируемый компьютер (1941 год), первые программы для него, а также (с определёнными оговорками) первый язык программирования высокого уровня Планкалкюль создал немецкий инженер Конрад Цузе.
Имена людей, впервые начавших профессионально выполнять работу собственно по программированию (в отрыве от наладки аппаратуры компьютера), история не сохранила, так как поначалу программирование рассматривалось как второстепенная наладочная операция.
Законы Мерфи для программистов
1. Ничто не работает так, как планировалось запрограммировать.
2. Ничто не программируется так, как должно работать.
3. Хороший программист характеризуется умением доказать почему задачу невозможно выполнить, когда ему просто лень её выполнять.
4. На решение проблемы уходит в три раза меньше времени, чем на обсуждение всех «за» и «против» её решения.
5. Обещанный срок сдачи — это аккуратно рассчитанная дата окончания проекта плюс шесть месяцев.
6. Программисту всегда известна последовательность действий, которыми пользователь может повесить его программу, но он никогда не чинит эту проблему, надеясь на то, что никому никогда не придёт в голову эту последовательность исполнять.
7. Настоящие программисты любят Windows — все ошибки, сделанные по собственной тупости, можно свалить на Microsoft.
8. Следствие — 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.
9. В приступе злости все почему-то молотят по невинному монитору, вместо системного блока.
10. В случае голодовки настоящий программист ещё месяц сможет питаться едой, выковырянной из-под кнопок клавиатуры.
11. Настоящий программист уже как минимум поменял три залитых пивом клавиатуры.
12. Все, кто испытывает проблемы с настройкой кодировки, автоматически считаются неандертальцами.
13. Дилетантские разговоры о компьютерах вызывают резкую тошноту вплоть до приступов рвоты. Вопрос о том как поменять «обои» в Windows вызывает желание перерезать горло вопрошающему.
14. У большинства людей, нуждающихся в твоей помощи, причина ошибки в работе программы чисто генетическая.
15. HTML, HTTP, FTP, SMTP, TCP/IP, RTFM и т.д. — это слова, а не аббревиатуры.
16. Словосочетание «мышка-норушка» не несёт никакого смысла.
17. Самые мистические проблемы, широко раздуваемые и афишируемые, в конце концов оказываются твоими глупейшими ошибками.
18. Следствие — если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое.
19. Самое плохое ощущение для программиста — когда вокруг тебя стоят десять человек и все пытаются найти причину проблемы в твоей программе, а ты уже понял, в чём проблема, но боишься сказать, потому что это что-то вопиюще глупое…
20. Решение всех жизненных проблем находится в интернете. Надо только уметь хорошо искать.
21. Конфликт логических указаний в жизни вызывает фатальную ошибку в работе мозга программиста — возможно повышение температуры и сильное головокружение вплоть до рвоты или потери сознания.
22. Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирают программистов, которые презирают тех, кто их презирает.
23. Если ты понял предыдущее — то ты программист.
На этом свете 10 типов людей — те, кто понимает двоичную систему счисления, и те, кто не понимает ее.
Видео: ты ж программист
Разработчики начинают восполнять пробелы в своих знаниях; опыт отточил свои управленческие навыки.Многие посещают уроки программирования, программного обеспечения, эстетики или других областей, связанных с их профессией. Мобильность работы высока. Зарплаты увеличиваются, а часы работы стабилизируются. Удовлетворенность выше среднего.
ДЕСЯТЬ ЛЕТ
Десятилетние ветераны в области разработки программного обеспечения отвечали за ряд проектов и реализовали их от идеи до доработки. Многие отказались от повседневных управленческих обязанностей и либо руководят другими разработчиками, либо переходят в области стратегического планирования компании. Некоторые открывают собственные компании, используя связи, установленные в отрасли. Повышается качество жизни, повышаются зарплаты и сокращаются часы работы.
7 смертельных ошибок в карьере разработчиков
Вы не найдете недостатка в мотивационных фразах для карьеры, связанных с неудачами: быстро терпите неудачу, неудача развивает характер, ключ к успеху — неудача, ошибки заставляют вас расти, никогда не бойтесь неудач. Но идея ошибиться на пути к вершине индустрии программного обеспечения, вероятно, необоснованна.У каждого разработчика будет своя доля ошибок в карьере, но почему бы не извлечь уроки из опыта других и избежать самых дорогостоящих ошибок?
Вот что мы сделали: мы поговорили с рядом технических специалистов, которые помогли нам определить области, в которых ошибок легко избежать. Неудивительно, что ключ к прочной карьере разработчика заключается в симметрии: например, не оставаться на одном стэке или работе слишком долго, но опять же не переключаться между языками и работодателями так часто, что вы поднимаете красные флажки.
Вот некоторые из наиболее заметных карьерных ловушек для инженеров — минное поле, которого можно легко избежать, ориентируясь на постоянно меняющемся рынке технологий.
Ошибка № 1: слишком долго оставаться на месте
В наши дни редко можно проработать десятилетия в качестве разработчика в одной фирме. Во многих смыслах это знак чести, демонстрирующий вашу важность для бизнеса или, по крайней мере, вашу способность выжить и процветать. Но те, кто построил карьеру только в одной компании, могут внезапно оказаться не на той стороне сокращения или «корректировки», в зависимости от популярного в то время модного слова.
Мнения о том, как долго вам следует оставаться на одном месте, расходятся.Правин Пури, консультант по вопросам управления, который 25 лет проработал разработчиком и руководителем проекта, прежде чем основать собственную фирму, не боится назвать некоторые цифры.
«Чем дольше вы остаетесь на одной должности, тем больше стагнируют ваши навыки и зарплата, и вам станет скучно и беспокойно», — говорит Пури. «С другой стороны, если вы смените несколько работ менее чем через два года, это станет красным флажком. По моему собственному опыту, я слишком долго оставался на одной работе, на которой проработал 14 лет — мне следовало уволиться после шести.Я ушел с других должностей в среднем через четыре года, что, вероятно, правильно ».
Майкл Хендерсон, технический директор Talent Inc., видит два основных недостатка в том, чтобы оставаться на одном месте слишком долго. «Во-первых, вы рискуете ограничить свое знакомство с новыми подходами и методами, — говорит он, — а, во-вторых, ваша профессиональная сеть не будет такой глубокой или разнообразной, как у тех, кто меняет команды или компании».
Слишком много внимания уделяется одному стеку, используемому вашим текущим работодателем, очевидно, хорошо для фирмы, но, возможно, не для вас.
«Это преимущество для других работодателей, которым нужен очень специализированный набор навыков, и каждый бизнес индивидуален», — говорит Мехул Амин, технический директор Advanced Systems Concepts. «Но это может ограничить ваш рост и знания в других областях. Очевидно, что оставаться на несколько месяцев на каждой работе — не лучший вариант для вашего резюме, но текучесть кадров в наши дни довольно высока, и работодатели ожидают, что молодые работники, такие как недавние выпускники колледжей, немного передвинутся, прежде чем останутся в компании надолго.
Ошибка № 2: прыжки с работы
Давайте посмотрим на обратную сторону: вы слишком много двигаетесь? Если вас это беспокоит, вы можете спросить, действительно ли вы получаете то, что вам нужно, проведя время в фирме.
Чарльз Эдж, директор по профессиональным услугам в компании JAMF Software, занимающейся управлением устройствами Apple, говорит, что менеджеры по найму могут сопротивляться, если они хотят нанять кого-то на долгое время: «И наоборот, если организация ежегодно сжигает разработчиков, нанимая сотрудника. который проработал в одной компании 10 лет, может представлять сложную культурную среду.Я трачу много времени на развитие своих сотрудников, поэтому хочу, чтобы они были со мной надолго. Однако смена места работы может дать возможность познакомиться со множеством различных методов и технологий ».
Те, кто продвигается слишком быстро, могут не увидеть весь жизненный цикл проекта, предупреждает Бен Донохью, вице-президент по разработке MediaMath.
«Опасность заключается в том, чтобы стать наемником, наемным оружием, и вы упустите возможность получить чувство собственности над продуктом и построить прочные отношения с людьми», — говорит Донохью.«Независимо от того, насколько вы талантливы и осведомлены как технолог, вам по-прежнему нужна способность видеть вещи с точки зрения пользователя, и требуется время, чтобы узнать потребности пользователей, которые удовлетворяет ваше программное обеспечение, и как они используют ваш продукт. »
Хилари Крафт, менеджер ИТ-подразделения Addison Group, откровенно заявляет о себе: «Постоянная смена вакансий может рассматриваться как красный флаг. Работодатели нанимают на работу на основе технических навыков, надежности и, чаще всего, культурного соответствия. Стабильность и завершение проекта часто дополняют эти потребности в найме.Для подрядчиков хорошее правило завершать каждый проект, прежде чем переходить к следующей должности. Некоторые профессионалы склонны «оценивать магазин», чтобы заработать максимально возможную почасовую ставку, но, в свою очередь, сжигают мосты, что в конечном итоге не окупится ».
Ошибка № 3: Прохождение продвижения по службе
В жизни каждого разработчика есть момент, когда вы задаетесь вопросом: это он? Если вам нравится программировать больше, чем управлять шоу, вы можете задаться вопросом, может ли оставаться на месте вашей карьеры.
«Переход к менеджменту должен быть осторожным, продуманным решением», — говорит Talent Inc.Хендерсон. «Менеджмент — это смена карьеры, а не логическое развитие технического направления, и требует другого набора навыков. Кроме того, я видел, как многие компании вкладывают в менеджмент хорошие технические таланты, потому что компания думает, что это награда для сотрудника, но это оказалось ошибкой как для менеджера, так и для компании ».
Познакомьтесь со своей рабочей средой, — говорит консультант по управлению Пури, добавляя, что на этот вопрос нет универсального ответа.
«Я работал в некоторых местах, где недовольные менеджеры не обладали реальной властью, были перегружены документами и встречами, и мне приходилось играть в политику», — говорит Пури.«В таких условиях было бы лучше продолжать разработку. В долгосрочной перспективе я бы порекомендовал всем заняться менеджментом, потому что через 20 лет карьера разработчиков застопорится, и вы не получите намного большей компенсации ».
Другой способ взглянуть на это — самосохранение. Скотт Уилсон, директор по маркетингу продуктов в Automic, задает вопрос: «Кого они поставят на ваше место? Если не вы, они могут продвигать по службе самого некомпетентного или неприятного сотрудника просто потому, что потеря производительности из окопов не будет иметь таких последствий, как потеря более квалифицированных сотрудников.Иногда принятие повышения по службе может дать вам — и вашим коллегам / друзьям — возможность управлять своим рабочим днем. Каждый должен быть менеджером хотя бы раз в своей карьере, хотя бы для того, чтобы понять, почему и как работают менеджмент и компании ».
Ошибка № 4: не платить вперед
Менее очевидная ошибка может заключаться в том, чтобы слишком сосредоточиться на собственном карьерном росте, не принимая во внимание младших разработчиков в вашем офисе. К тем, кто работает в паре с молодыми программистами, часто обращаются, когда команде требуется лидерство.
«Я обнаружил, что наставничество младших разработчиков помогло мне лучше выполнять свою работу, потому что вы изучаете любой предмет глубже, обучая его, чем любым другим методом», — говорит Уилсон из Automic. «Кроме того, поскольку разработчики часто испытывают трудности с навыками межличностного общения, наставничество предоставляет прекрасные возможности для совершенствования этих навыков общения».
«Если опыт — лучший учитель, то обучение других только углубит ваши знания», — говорит JAMF Software’s Edge. Тем не менее, он не обвиняет занятого разработчика, если этого еще не произошло.
«Давайте посмотрим правде в глаза — ни у одной команды разработчиков никогда не было достаточно ресурсов для выполнения того, чего от них требует менеджмент продукта», — говорит Эдж. «Когда у старших разработчиков нет времени наставлять молодых разработчиков, я прекрасно понимаю. Только не говорите это потому, что «я не умею обращаться с людьми» ».
Ошибка № 5: Придерживайтесь своего стека
Ваш опыт в одном стеке может сделать вас бесценным для вашего текущего рабочего места, но помогает ли он карьера? Может ли быть больно слишком сосредоточиваться только на одном стеке?
Донохью из MediaMath не критикует этот вопрос: «Конечно, есть — нет современной должности в области разработки программного обеспечения, на которой вы будете использовать только одну технологию на протяжении всей своей карьеры.Если вы возьмете разработчика Java, который работает на Java в течение 10 лет, и внезапно он начнет работать над приложением JavaScript, он напишет его иначе, чем кто-то с таким же многолетним опытом работы в качестве разработчика Python. Каждая технология, которую вы изучаете, влияет на ваши решения. Некоторые могут возразить, что это нехорошо — если вы примените объектно-ориентированный подход Java к слабо типизированному языку вроде JavaScript, вы попытаетесь заставить его делать то, чего он не должен делать ».
Если слишком сосредоточиться на одном стеке, это может навредить вашей траектории, говорит Talent Inc.Хендерсон, но, возможно, по другим причинам, чем вы думаете.
«Каждый стек будет иметь свою культуру и взгляды, что в конечном итоге расширит и ускорит ваш карьерный рост», — говорит Хендерсон. «Например, я обнаружил, что многие разработчики C # знают об экосистеме Microsoft только тогда, когда существует гораздо больший мир. У Java, возможно, лучшая экосистема, и я часто нахожу, что из разработчиков Java получаются лучшие разработчики на C #, потому что у них более широкая перспектива ».
Уилсон из Automic говорит, что умение — но не мастерство — с одним стеком должно быть критерием, прежде чем переходить к другому.
«Пора двигаться дальше, когда вы хорошо владеете навыками, но не обязательно хороши», — говорит Уилсон. «Я не защищаю посредственность, как раз наоборот. Я говорю, что, прежде чем вы отправитесь изучать новый навык, убедитесь, что вы хороши, компетентны или выше среднего в этом навыке, прежде чем рассматривать возможность двигаться дальше ».
Наконец, Хендерсон из Talent Inc. предлагает следующее предупреждение: «Избегайте ловушки ожидания, что каждый новый язык — это просто старый с другим синтаксисом. Разработчики C # и Java, которые пытаются принудить JavaScript к классическому объектно-ориентированному подходу, причинили много боли.
Ошибка № 6: пренебрежение навыками межличностного общения
Программисты обычно менее общительны, чем, скажем, продавцы. Никакого секрета нет. Но со временем навыки межличностного общения могут быть приобретены, и некоторые нюансы построения успешной карьеры, такие как обучение у наставников и развитие отношений, могут отсутствовать в вашей карьере, пока не станет слишком поздно.
«Когда люди говорят, это улучшает программное обеспечение», — говорит Донохью из MediaMath. «Мягкие навыки и общение с клиентами также могут дать большое чувство сострадания, которое улучшит ваши навыки строительства.Вы начинаете думать о том, что действительно нужно клиентам, вместо того, чтобы чрезмерно изобретать ».
Хендерсон из Talent Inc. говорит, что ваша работа с другими людьми является важной частью построения успешной карьеры разработчика.
«Вся человеческая деятельность носит социальный характер, и развитие не исключение», — говорит Хендерсон. «Однажды я был свидетелем обмена сообщениями в списке рассылки Angular, где начинающий разработчик разместил код с вопросами. В течение часа — и с помощью пяти человек — он получил надежный идиоматический код Angular, более глубокое понимание нюансов и подводных камней Angular и несколько новых контактов.Хотя тролли иногда могут заставить нас потерять веру, в мире полно удивительных людей, которые хотят помочь друг другу ».
Уилсон из Automic говорит, что отсутствие навыков межличностного общения губительно для карьеры. Затем, когда менее опытные программисты продвигаются вперед, разработчикам, у которых нет навыков работы с людьми — или просто не тренируют их, — остается недоумение, почему. Тем не менее, по его словам, все любят начальников, «которые демонстрируют такт и умелое общение».
«Чтобы улучшить свои навыки межличностного общения, Интернет, электронные курсы, друзья и наставники являются бесценными ресурсами, если… Вы скромны и готовы к обучению, — говорит Уилсон. «Кроме того, мы все достигнем точки в нашей карьере, когда нам нужно будет полагаться на отношения, чтобы получить помощь. Если никто не желает стоять в вашем углу, значит, проблема есть у вас, а не у них, и вам нужно ее решить. В своей карьере я ценил способных к обучению людей, а не неподготовленных, когда мне приходилось принимать жесткие кадровые решения ».
Программирование — лишь один из аспектов разработки, — говорит консультант по вопросам управления Пури. «Большая часть — это способность общаться и понимать бизнес-цели и идеи между группами людей с разным уровнем технических навыков.Я видел слишком много ИТ-специалистов, которые пытались сообщить слишком много технических деталей в разговоре с руководством ».
Ошибка № 7: Неспособность разработать дорожную карту карьеры.
Разработка целей и возвращение к ним с течением времени — или, наоборот, разработка гибкого, последовательного подхода — у обоих есть свои сторонники.
«Я меньше занимаюсь разработкой для целей и больше для систем, которые позволяют мне быстро улучшаться и использовать возможности по мере их появления», — говорит Хендерсон. «Тем не менее, я рекомендую составить список опыта и навыков, которые вы хотели бы приобрести, и использовать его в качестве карты, обновляя его не реже одного раза в год.Знать, где вы были, так же полезно, как и знать, куда вы хотите отправиться ».
И, конечно, не менее важно — куда вы не хотите идти.
«В начале своей карьеры я еще не научился говорить« нет », — говорит Эдж из JAMF Software. «Поэтому я согласился с планом проекта, который не мог быть успешно реализован. И я знал, что этого не может быть. Если бы я был более напористым, я мог бы повлиять на план, составленный группой нетехнических людей, и сэкономить время и деньги моего тогдашнего работодателя, моих коллег — значительную часть боли и, в конечном итоге, наши отношения с клиентом.
Уилсон из Automic произносит воодушевляющую речь прямо из учебника главного футбольного тренера Университета Алабамы Ника Сабана, который проповедует веру в свой процесс: «Основное внимание уделяется процессу успеха и использованию этого процесса в качестве ориентира для считайте себя ответственным. Чтобы развивать свой процесс, вам нужно найти наставников, которые получили то, что вы хотите получить. Узнайте, что они сделали и почему они это сделали, а затем персонализируйте, настройте и подпишитесь ».
Авторские права © IDG Communications, Inc., 2016.
Карьера в разработке программного обеспечения | пользователя John Sonmez
Ding!
Вы получили уровень.
Теперь вы веб-разработчик 12 уровня.
Вы открыли новую платформу JavaScript.
И, как в видеоигре, есть пути внутри путей.
Куда вы в конечном итоге попадете в своей карьере разработчика программного обеспечения, будет зависеть от конкретных путей, которые вы выберете.
Выбери неправильный путь, и в конечном итоге ты станешь кобольдом, пишущим COBOL на всю оставшуюся жизнь.
Выберите правильный путь, и вы можете стать белым волшебником или архитектором, живущим в своей башне из слоновой кости и даруя указы свыше.
Ладно, может все не совсем так.
Но выбор вашей карьеры действительно имеет значение ; они действительно имеют значение.
Слишком много начинающих программистов никогда не находят времени, чтобы обдумать свой настоящий карьерный путь и сознательно выбрать, к какому пути и к какой гильдии они хотят присоединиться.
Вместо этого они просто стоят на обочине дороги, крича «ищут группу», и присоединяются к любой отряде авантюристов, которые встретят их на своем пути, которые их поймают.
Эта глава посвящена осознанному выбору карьеры разработчика программного обеспечения и начинается с перечисления возможных вариантов.
Три типа разработчиков программного обеспечения
Я делю разработчиков программного обеспечения на самом высоком уровне на три широкие категории.
Вы, вероятно, не привыкли думать о разработчиках программного обеспечения и разработке программного обеспечения в терминах этих трех категорий, потому что вы действительно можете рассматривать только самую большую из трех категорий, на которую попадает большинство разработчиков программного обеспечения.
Но если мы хотим взглянуть на исчерпывающий список карьерных путей в области разработки программного обеспечения, нам нужно начать здесь.
С учетом сказанного, вот три широкие категории разработчиков программного обеспечения:
1) Карьерные разработчики (наиболее распространенные)
2) Фрилансеры (наемные работники)
3) Предприниматели (гибриды программиста и предпринимателя)
Давайте поговорим о каждом вкратце.
Во-первых, карьерные разработчики.
Фактически, большая часть этой книги посвящена карьерным разработчикам.И именно на нем мы в основном сосредоточимся в этой главе.
Причина проста: большинство программистов либо являются, либо в какой-то момент своей карьеры были или будут карьерными разработчиками.
Карьерный разработчик, согласно моему определению, — это разработчик программного обеспечения, который имеет постоянную работу на кого-то еще и регулярно получает зарплату.
Большинство карьерных разработчиков хотят работать в компании, которая им нравится, получать повышение в этой компании, возможно, время от времени менять компанию, получать хорошую зарплату и, возможно, когда-нибудь уйти на пенсию.
В этом пути нет ничего плохого. Как я уже сказал, это значение по умолчанию.
Далее у нас есть фрилансер.
Мы говорили о том, что такое фрилансер, в предыдущей главе, поэтому я не буду перефразировать это здесь.
По сути, фрилансер — это разработчик программного обеспечения, который работает самостоятельно, не будучи приверженцем какой-либо конкретной компании, а вместо этого предпочитает работать наемным работником и выполнять работу для любого клиента, на которого они хотят работать.
Мы не будем рассматривать этот карьерный путь в этой главе, поскольку мы уже говорили об этом ранее, а карьерный путь фрилансера действительно заслуживает отдельной книги.
Наконец-то у нас появился тип разработчика программного обеспечения, который наиболее близок и дорог моему сердцу, поскольку я один из них, предприниматель-программист или предприниматель-разработчик программного обеспечения, если хотите, разработчик.
Этот карьерный путь отличается от карьеры фрилансера, потому что вместо того, чтобы использовать свои навыки разработки программного обеспечения для работы для кого-то другого, вы используете их для создания собственного продукта или предложения и продажи этого продукта или предложения напрямую клиентам.
Это может быть написание собственного приложения, которое вы продаете, создание обучающих видео или руководств, ведение блогов, написание, черт возьми, даже создание музыки о своем ремесле, и каким-то образом зарабатывание денег на всем этом, чтобы положить немного макарон с сыром на обеденный стол каждую ночь.
Мы не будем говорить об этом карьерном пути в этой главе, поскольку, опять же, нам действительно нужна целая книга, чтобы обсудить, как стать предпринимателем, и мы коснулись основ в предыдущей главе.
Возможности карьерного разработчика
Далее следует то, что, на мой взгляд, является широкой специализацией, которую вы можете выбрать как разработчик программного обеспечения.
Примечание. Это не то же самое, что специализации, о которых я говорил в главе «Универсал против специалиста». Специализации в этой главе слишком широки.
Подумайте об этих специализациях, которые мы будем называть опциями , чтобы избежать путаницы, карьерных путей очень высокого уровня вы можете выбрать в техническом смысле вниз как разработчик программного обеспечения.
Для ясности, эти возможности не ограничиваются только карьерными разработчиками. Любой разработчик должен будет выбрать один из этих карьерных путей.
Вы можете выбрать несколько путей — вы можете «двойной класс» — но вы должны выбрать хотя бы один.
Веб-разработка
Это, вероятно, самый большой класс разработчиков программного обеспечения на сегодняшний день.
Большинство разработчиков программного обеспечения являются веб-разработчиками или, по крайней мере, занимаются веб-разработкой.
Как веб-разработчик вы… ну, создаете веб-приложения. Сюрприз!
Как веб-разработчик, вы можете работать над интерфейсом и делать вещи красивыми, вы можете работать над внутренним интерфейсом и заставлять вещи… работать, или вы можете работать над обоими и быть удивительным, волшебным видом веб-разработки единорог — особенно если у вас тоже есть некоторые навыки веб-дизайна.
Обычно веб-разработчиков, которые могут делать все это, возможно, за исключением веб-дизайна, называют «разработчиками полного стека», поскольку они разрабатывают полный набор технологий веб-разработки: интерфейс, промежуточное программное обеспечение, серверную часть. (Пользовательский интерфейс, бизнес-логика, база данных.)
Мобильный
Приложения человек, приложения там, где они есть!
Знаете, для этого есть приложение.
Сегодня все больше и больше разработчиков программного обеспечения предпочитают становиться мобильными разработчиками, разрабатывая мобильные приложения для телефонов, планшетов, даже телевизоров с поддержкой приложений или носимых устройств.
Разработка приложений предоставляет отличные возможности для разработчика программного обеспечения, потому что с каждым годом появляется все больше и больше приложений.
В настоящее время практически каждой компании необходимо мобильное приложение, а может быть, и несколько.
Настольный компьютер
Разработчики программного обеспечения часто пишут мне, чтобы спросить, существует ли еще разработка программного обеспечения для настольных компьютеров.
Я нахожу это фантастическим, потому что большую часть времени они набирали это электронное письмо с компьютера, на котором запущена программа для настольных компьютеров — конечно, обычно это веб-браузер, но все же программа DESKTOP.
Фактически, как вы пишете код и компилируете его?
Большинство из нас используют IDE для настольных компьютеров, хотя облачные IDE становятся все более популярными.
Хорошо, хорошо! Признаюсь, это не очень хорошо для разработчиков настольных компьютеров.
Вы счастливы? Я сказал это.
Но, на самом деле, я думаю, всегда будет хоть какая-то потребность в разработчиках программного обеспечения, которые пишут приложения, которые запускаются непосредственно на ПК.
Я могу ошибаться, но, по крайней мере, на данный момент, это жизнеспособный выбор карьеры, но не очень популярный.
Видеоигры
Да, я знаю, что вы хотите быть разработчиком видеоигр.
Да, я тоже.
Вот почему я занялся разработкой программного обеспечения.
Но вместо того, чтобы стать разработчиком видеоигр, я начал программировать принтеры, написал кучу веб-приложений, сделал несколько мобильных приложений, сделал кучу других вещей и закончил тем, что написал книги, полные сарказма, и написал кучу Видео на YouTube о том, как подбирать девушек в качестве разработчика программного обеспечения
Жизнь не всегда такая, как вы ожидаете.
Но, если серьезно, это жизнеспособный вариант карьеры. Это просто сложный процесс с большим количеством соревнований, долгими часами работы над видеоиграми, и, я думаю, это все, о чем я могу думать.
Блин, я должен был пойти по этому маршруту.
Иди по этому пути — сделай это!
Встроенные системы
Хорошо, это не звучит очень прибыльно или круто, но поверьте мне, это так.
Когда-то я был разработчиком встраиваемых систем и делал… принтеры!
ДА! Принтеры!
Скажи это вместе со мной.
Скажите это с волнением!
ВСТРОЕННЫЕ СИСТЕМЫ РОК!
Ты молодец, детка!
Хорошо, это не гламурно, но знаете что, холодильник, в котором только что приготовили лед в стакане, из которого вы пьете… в нем мозги.
Сейчас мозги есть у всего.
И кто-то должен писать эти мозги.
И этим кем-то может быть ВЫ.
Разработчики встроенных систем работают в основном над операционными системами реального времени, которые работают внутри электроники, отсюда и название встраиваемых систем — я знаю, умно.
Это хороший выбор карьеры, потому что он пользуется большим спросом и требует специальных навыков, которые очень ценны.
Одна из самых сложных задач, которые я когда-либо выполнял как разработчик программного обеспечения, заключалась в устранении действительно сложных проблем с синхронизацией программ встроенных систем.
Data Science
Это довольно новый карьерный путь, но, похоже, он один из самых прибыльных.
Чем именно занимается аналитик данных?
На самом деле никто не знает… Я думаю, это как-то связано с «большими данными».
Если серьезно, то наука о данных — это огромная и быстрорастущая область, в которую могут войти разработчики программного обеспечения, особенно если они хотят заработать большие деньги.
Специалист по анализу данных использует навыки и технологии из нескольких различных областей, чтобы брать большие объемы данных, разбираться в них и делать выводы и прогнозы.
Специалисты по обработке данных часто используют свои навыки программирования для написания специальных программ для извлечения, обработки и реорганизации данных, чтобы представить их в удобоваримой форме.
Учитывая постоянно растущий объем данных, наука о данных определенно открывает некоторые интересные возможности.
Tools And Enterprise
Многие разработчики программного обеспечения фактически не создают программное обеспечение, которое публикуется на коммерческой основе и продается или используется внутри продукта, который продается на коммерческой основе. Вместо этого они создают инструменты для использования внутри организации или внутренних приложений.
Я на самом деле считаю разработку инструментов чрезвычайно интересной и полезной, потому что, когда вы создаете эффективный инструмент, который помогает вашей команде или другой команде лучше выполнять свою работу, эффект может быть очень заметным.
Корпоративная разработка может быть очень сложной задачей и требует уникального набора способностей и знаний, поскольку корпоративным разработчикам часто необходимо иметь глубокое понимание организации и политических группировок, которые определяют способ создания программного обеспечения.
Облако
Облачная разработка — это тоже довольно новая область, но она также быстро растет, поскольку все больше и больше приложений перемещаются в облако и распределенную модель.
Большинство облачных приложений также являются веб-приложениями, но не обязательно.
Разработчики облака должны понимать, как работает облако, особенно в отношении масштабируемости и доступности.
С облачными IDE вы даже можете быть облачным разработчиком, разрабатывающим в облаке.
Автоматизация
Это довольно удивительное чувство, когда вы смотрите, как написанный вами автоматизированный тест запускается и автоматически заполняет поля в приложении, нажимает кнопки, перемещается по приложению и проверяет результаты.
Автоматизация тестирования — это весело.
Мне это нравится.
Это не только весело, но и быстро расширяется и пользуется очень большим спросом.
Серьезно не хватает талантливых разработчиков программного обеспечения, которые понимают, как правильно создавать фреймворки автоматизации и писать автоматизированные тесты для тестирования другого программного обеспечения.
Разработчик программного обеспечения, специализирующийся на автоматизации тестирования, создает инструменты для автоматизации тестирования приложений и пишет автоматизированные тесты для выполнения и проверки функциональности.
Автоматизация тестирования может быть чрезвычайно сложной и сложной задачей, поскольку по существу требует, чтобы вы написали приложение для тестирования другого приложения.
Но, как я уже сказал, я думаю, что это довольно весело.
Выход за пределы «стеклянного потолка»
В целом вы обнаружите, что, даже если вы выбрали определенный класс разработчиков программного обеспечения, чтобы стать — или, возможно, несколько, — вы в конечном итоге достигнете того, что известно как «стеклянный потолок». потолок.»
Этот стеклянный потолок является практическим ограничением того, насколько далеко вы можете продвинуться или сколько вы можете получать как разработчик программного обеспечения.
Неважно, насколько вы хороши, есть момент, когда вы достигаете вершины и не можете продвигаться дальше.
Но есть способы обойти или пройти сквозь этот стеклянный потолок.
Во-первых, вы можете прекратить работать на кого-то другого.
У фрилансера стеклянный потолок намного выше, хотя все еще существует практический предел того, сколько вы можете заработать как фрилансер, начиная с , вам все равно придется обменивать часы на доллары.
Как предприниматель, он полностью не ограничен, но вы также можете заработать ноль долларов или отрицательные доллары.
Любой из этих вариантов — жизнеспособный путь, который проведет вас через этот стеклянный потолок.
Если вы хотите остаться карьерным разработчиком, вы можете вложить значительные средства в свой личный бренд и собственный маркетинг, и вы сможете найти компанию, которая будет платить вам значительно больше среднего только из-за вашей репутации.
Фактически, я специально создал свой курс «Как продвигать себя как разработчик программного обеспечения», чтобы помочь вам узнать, как это сделать.
Но есть и другой путь…
Вы можете найти крупную корпорацию, к которой можно присоединиться, и пройти по управленческому или техническому пути.
Менеджмент или технический?
Большинство малых и средних компаний имеют практические ограничения на восходящую мобильность.
Как разработчик программного обеспечения, вы просто не можете подняться выше их наивысшего уровня, который может быть совсем не таким высоким.
Но у крупных корпораций, таких как Microsoft, Apple, IBM, Google, Facebook, HP и другие, потолки могут быть намного выше.
Компании такого типа часто нуждаются в самых лучших технических специалистах, поэтому они создают специальные технические треки для их включения.
Обычно у таких крупных компаний есть технический или управленческий путь продвижения.
Вам нужно будет выбрать, хотите ли вы пойти по пути управления и оставить позади свои навыки программирования, или технический уровень и продолжать программировать, пока вам не скажут, что вы больше не можете писать код.
Если вы выберете управленческий путь, вы можете продвинуться по карьерной лестнице, став менеджером разработчика, а затем, возможно, руководителем отдела или менеджером проекта, а затем продвигаться до должностей исполнительного уровня, таких как директор по развитию или даже главный технический директор (CTO).
| Привет, Джон | Может ли кто-нибудь заниматься менеджментом или вам нужно быть «народным» человеком?
Независимо от того, какой путь вы выберете, вам нужно быть человеком.
Я серьезно. Вам определенно стоит сосредоточиться на своих навыках работы с людьми, если вы хотите добиться успеха в карьере.
Эта книга не так сильно фокусируется на человеческих навыках, но прочтите мою другую книгу «Soft Skills: The Software Developer’s Life Manual» или вечную классику Дейла Карнеги «Как заводить друзей и оказывать влияние на людей», если Вы чувствуете, что можете немного поработать в этой области.
Что касается менеджмента, я бы сказал, что самая большая проблема, с которой вы столкнетесь, заключается не в том, можете ли вы быть тем «народным» человеком, который справится с управленческой работой, а скорее в том, можете ли вы быть таким человеком. технический человек, который может жить без технической работы.
Каждый раз, когда меня помещали на какую-либо управленческую должность, моей самой большой проблемой всегда было то, что я хотел писать код и работать с технологиями.
Большинство разработчиков программного обеспечения выбирают эту профессию, потому что им нравится решать технические проблемы, а не просто чтобы заработать кучу денег.
Итак, вы действительно должны спросить себя, сможете ли вы справиться с тем, чтобы не писать код до конца своей карьеры?
Если вы выберете технический путь, вы можете перейти от старшего разработчика к архитектору, а затем к научному сотруднику или старшему научному сотруднику.
Каждая организация будет иметь свои собственные специализированные треки для технического и нетехнического развития, поэтому названия и должности будут сильно различаться.
Но если вы достигнете этого стеклянного потолка и хотите продолжать двигаться вперед, вам придется сделать выбор, следовать ли техническому или управленческому пути.
На самом деле, если вы не работаете в крупной корпорации, которая предлагает продвинутый технический курс, у вас может даже не быть выбора.
Стать менеджером может быть вашим единственным выбором для продвижения по службе — ну, либо это, либо уходить по собственному желанию.
Всегда думайте о том, куда вы идете
На самом деле, цель этой главы — заставить вас серьезно задуматься о том, куда вы собираетесь, и сознательно направить свою карьеру.
Если вы хотите продвинуться по карьерной лестнице, вам нужно знать, в каком направлении вы движетесь.
Итак, сначала хорошенько подумайте, каким разработчиком программного обеспечения вы хотите стать.
Хотите навсегда стать профессиональным разработчиком?
Если да, то какие?
Веб-разработчик? Мобильный? Облако?
А с какой целью?
Хочешь стать архитектором?
Вы просто хотите кодировать и делать крутые вещи и не беспокоиться о том, чтобы продвинуться дальше определенной точки?
Вы хотите подняться как можно выше?
Если да, то вам лучше начать поиск компаний с техническими знаниями высокого уровня.
Возможно, вы в конечном итоге захотите стать менеджером, а может быть, станете техническим директором или даже генеральным директором.
Или, может быть, вы хотите стать карьерным разработчиком в начале своей карьеры, а затем перейти к фрилансеру или даже предпринимателю.
Что бы вы ни решили сделать, важно принять решение и иметь план.
Вы всегда можете изменить план позже — вам не обязательно навсегда следовать выбранному пути, но у вас всегда должен быть хотя бы какой-то план, иначе вы будете бесцельно плыть по карьерной лестнице.
Где получить дополнительную информацию?
Карьерный путь программиста
Уродливая, досадная правда, с которой не хотят сталкиваться многие программисты, заключается в том, что у многих профессий программиста есть пик и неизбежный спад. Со временем будет все труднее найти и сохранить работу программиста. Для многих они открывают эту истину неподготовленными и беспощадными. Сегодня мы рассмотрим важную информацию о карьере, о которой вам следует подумать, чтобы вы могли подготовиться.
TechCrunch написал «Темный секрет Кремниевой долины: все дело в возрасте», в котором содержится ссылка на исследование, которое показало, что эффективная продолжительность карьеры программиста ограничена.Возникающие при этом вопросы экзистенциальны и серьезны.
- Каким будет будущее программиста?
- Как выглядит карьера программиста?
- Каковы варианты карьеры и ожидания от этих вариантов?
Всем известно, что со временем программисты могут превратиться в менеджеров или лидеров. Но многие программисты не понимают ожиданий и требований к должности менеджера. Конечно, у всех нас есть менеджеры, но что значит быть менеджером? Что ожидается? А в чем разница между менеджером среднего звена и руководителем высшего звена?
В этом сообщении в блоге я хотел бы отодвинуть занавес и показать потенциальный карьерный путь от начала технической карьеры в качестве младшего программиста до высшей точки в качестве технического директора.
Примечание: Многие великие карьеры останавливаются на разных ступенях лестницы и остаются там до выхода на пенсию. Некоторые профессии даже пропускают ступеньки лестницы. Но управленческие и руководящие роли подходят не всем, и вы можете обнаружить, что ваш интерес к руководству с годами меняется. В свои 20 вы можете ненавидеть идею быть менеджером, но в свои 40 вы можете ненавидеть идею написания кода. Сложно предсказать. Однако всегда полезно знать и понимать свои варианты и их последствия.
Ниже представлено наглядное представление о карьерных возможностях программиста со средним диапазоном заработной платы. Обратите внимание, что есть люди, которые зарабатывают вдвое или втрое больше денег, работая программистом в определенных сферах (банковское дело, торговля и т. Д.), Поэтому эти числа представляют только средний диапазон, а не весь спектр.
Младший разработчик
- Опыт работы от 0 до 3 лет (обычно после окончания колледжа)
- Может писать простые скрипты
- Предварительное понимание всего жизненного цикла приложения
- Предварительное понимание баз данных и сервисов приложений (очереди, кеширование и т. Д.))
- Не комфортно работать во всех частях сложного приложения
Когда вы только начинаете карьеру программиста, это может быть пугающе и разочаровывающе. В некоторые дни вы чувствуете себя не в своей тарелке, не зная, как можно писать большие сложные приложения. А в другие дни вы удивляетесь, почему вас еще не повысили до старшего разработчика. Вы смотрите на других более опытных разработчиков и думаете, что делаете в основном ту же работу, что и они.
Но отличительная черта младшего разработчика — отсутствие опыта.Даже самые умные и быстро обучающиеся младшие разработчики не сталкивались с достаточным количеством кода или крайними случаями, чтобы обладать мудростью старшего разработчика. С точки зрения программирования, одна из форм мудрости известна как шаблоны проектирования программного обеспечения. Хотя вы можете читать книги по шаблонам, вам нужно написать достаточно плохого кода в своей карьере, который ломает вещи и не позволяет по-настоящему и глубоко понять ценность шаблонов программного обеспечения.
Старший разработчик
- 4-10 + лет опыта
- Может писать сложные приложения
- Глубокое понимание всего жизненного цикла приложения
- Глубокое понимание баз данных и сервисов приложений (очереди, кеширование и т. Д.))
- Комфортная работа в любой области приложения
Старший разработчик — это типичная роль для людей, которые действительно хорошо умеют создавать масштабные приложения. Большую часть карьеры программиста можно провести в качестве старшего разработчика. На самом деле, если вы ненавидите управление и просто любите код, вы можете быть старшим разработчиком на протяжении всей своей карьеры. Я нанял много старших разработчиков всех возрастов, но с этой ролью становится все труднее конкурировать с возрастом.
Эта роль также может быть отправной точкой для перехода на другую ступеньку лестницы.Если вы достаточно хорошо разбираетесь в технологиях, чтобы стать старшим разработчиком, у вас, вероятно, уже есть технические ноу-хау, чтобы стать техническим основателем или техническим директором стартапа. Быть основателем или техническим директором стартапа требует гораздо меньше программирования и гораздо больше навыков работы с людьми. Однако глубокие технические знания имеют большое значение и необходимы для хорошей работы на этих должностях.
Ведущий разработчик или архитектор
- 7-10 + лет опыта
- Те же базовые навыки, что и у старшего разработчика
- Ведущий разработчик: переходная роль менеджера среднего звена
- Архитектор: непереходная техническая роль
Если после 7 с лишним лет программирования вы знаете, что менеджмент — не ваше дело, то быть архитектором — это высший уровень технической карьеры. Иногда архитекторы пишут код, но чаще они проектируют сложные системы, которые будут реализованы командами старших и младших разработчиков. Работа архитектора состоит в том, чтобы использовать свою техническую мудрость, накопленную за годы опыта (изучение шаблонов программирования и анти-шаблонов), для создания структуры успешного программного проекта. По мере появления новых требований архитектор программного обеспечения должен знать правильные способы создания и масштабирования всех видов приложений.
Ведущий разработчик — это старший разработчик, к которому другие младшие и старшие разработчики обращаются за советом и руководством.Хотя ведущие разработчики обычно не нанимают и не увольняют программистов, они выполняют много работы, аналогичной менеджерам. Они координируют работу, которую необходимо выполнить, и принимают решения по реализации при написании кода.
Менеджер среднего звена
- Заголовки обычно включают слова Manager или Director (Developer Manager, * Product Manager или Project Manager)
- Является начальником (например, может нанять / уволить) разработчиков
- Отчитывается перед старшим руководителем
Менеджмент — это традиционная следующая ступенька служебной лестницы для инженеров. Есть разные направления для управления. Если вы любите следить за рабочими потоками и зацикливаетесь на деталях, тогда должность менеджера проекта — ваш лучший союзник. Если вы зациклены на функциях и улучшениях продукта, тогда вам подойдет должность менеджера по продукту.
Однако наиболее распространенным менеджером, в которого превращается программист, является менеджер разработчика. Типичная роль менеджера разработчика — согласовывать потребности менеджера продукта и менеджера проекта с личностями команды разработчиков.Эта роль требует сильных человеческих навыков, таланта в урегулировании конфликтов и часто ведет себя так, как будто группа сокращается. Работа менеджера разработчиков — не только нанимать, но и увольнять разработчиков, когда это необходимо. Значит, с ними сложно дружить. Друзья ставят вас в неловкое положение. Если вы когда-нибудь знали кого-то, кто стал менеджером разработчиков в команде, в которой он раньше был разработчиком, вы знаете, что они, похоже, меняются почти в мгновение ока. Вот почему. Это тяжелая работа, а зачастую и неблагодарная.
Но также может быть очень полезно привести команду к победе. Если вы хотите улучшить свои лидерские качества при подготовке к руководящей должности, прочтите книгу Фила Джексона.
Старший руководитель
- Вице-президент, технический директор или генеральный директор
- Является начальником (например, может нанять / уволить) менеджеров среднего звена
- Отчитывается перед другим старшим руководителем или Советом директоров
Очевидная разница между менеджером среднего звена и старшим руководителем состоит в том, что высшие руководители отвечают за менеджеров среднего звена.Однако менеджерами часто не нужно управлять. Их нужно вести. Менеджеры среднего звена должны знать, в каком направлении им нужно двигаться, а не получать указания от поворота к повороту.
Работа старшего лидера — принимать решения на высоком уровне и вдохновлять своих сотрудников соглашаться с этими решениями и верить в миссию.
Чем выше вы поднимаетесь по лестнице, тем меньше вы будете программировать. Вверху все о людях. Менеджеры среднего звена по-прежнему могут весело провести время, погружаясь в кишки технологий, поскольку старший руководитель должен проводить все свое время, сосредоточенное на проблемах людей: вдохновляя, мотивируя, руководя и разрабатывая стратегии.Если вы все же пишете код, это часто просто побочные проекты (если вы не Билл Гейтс, но почти никто не Билл Гейтс, он — крайний случай). Книгу Фила Джексона необходимо прочитать на этом уровне, а не просто приятно иметь.
Задача старшего руководителя — убедиться, что все в компании гребут в одном направлении, убедиться, что это направление ведет к суше, и убедиться, что все знают, почему они гребут в этом направлении. Это обманчиво трудная работа. Это чревато опасностями, душевной болью и ловушками.Если вы справитесь с этой задачей, прочитайте «Трудное о сложных вещах» Бена Горовица.
Старшие лидеры никогда не рождаются естественным путем. Они сделаны. Чтобы понять это, нужна практика. Прочтите блог Бена Горовица о том, как стать генеральным директором, чтобы увидеть несколько примеров этого.
Заключение
Возможности для программистов сегодня широки и многочисленны. И сейчас программисты востребованы больше, чем когда-либо в истории. Это действительно прекрасное время для программиста. Но планировать карьеру никогда не рано.Я надеюсь, что этот пост дал вам некоторое руководство и пищу для размышлений, которые могут пригодиться.
.