Кризис на рынке ИТ и растущие зарплаты программистов стали стимулом для представителей других профессий попробовать найти свой прибыльный путь в ИТ. Но сможет ли вчерашний рабочий стать хорошим программистом — это большой вопрос. Мы спросили у экспертов, что является обязательным компонентом успеха в карьере разработчика. Забегая вперед скажем, что далеко не у всех кто хочет получать зарплаты в ИТ, может состоятся переход к новой жизни.
Пять обязательных действий, чтобы стать хорошим программистом
Дмитрий Степанов, архитектор ПО в ABC Solutions.
- Разобраться какие есть направления разработки. Сейчас есть много различных профильных направлений разработки, таких как Front-end, Back-end, мобильная разработка, Data Science и др. Надо понимать в чем между ними разница.
- Выбрать направление разработки, в котором хотелось бы развиваться, поскольку это сильно повлияет на стек технологий для изучения.
- Выбрать технологию с самым низким порогом входа по выбранному направлению. Это позволит быстрее начать делать какие-то практические задачи и разбираться в предметной области в целом, а не тратить время на изучения инструмента.
- Найти online-курсы по целевому стеку технологий (язык программирования, framework)
- Найти стажировку или open-source проект для получения реальной практики. В итоге, всегда самым ценным оказывается практический опыт.
Сложно сказать, что какие-то конкретные действия именно уничтожат карьеру. Если вы, конечно, не делаете что-то противозаконное. Но можно сказать, что точно вам не поможет:
- Не стоит гнаться за большими зарплатами, самое ценное – это опыт, участие в крупных проектах, работа с хорошими специалистами и знание современных технологий. Деньги всегда придут, но не стоит пытаться сразу запрыгнуть на высокую зарплату, часто это приводит к стагнации.
- Нельзя игнорировать новые технологии
- Как и в других сферах, не стоит портить отношения с коллегами. Коммуникации не всегда даются легко, но помогают развиваться самому и развивать продукты.
Для начала надо определиться с тем, какие задачи человек хочет решать. Язык программирования – это инструмент для решения задачи.
Если человек хочет реализовывать UI, то это будет стек front-end разработки (CSS, HTML, JavaScript, TypeScript и т.д.).
В случае мобильной разработки это могут быть: Swift, Kotlin, Java, Dart.
Если же хочется больше заниматься back-end разработкой, т.е. работой, которая не видна напрямую пользователю, но отвечает за логику работы приложения, то тут выбор языков сильно больше. Я бы рекомендовал посмотреть на наиболее распространенные на данный момент, такие как Python, Java, C#, PHP, а уже дальше знакомиться c Go, Rust, Scala и др.
Ну а если же человек решил связать себя с Data Science направлением, то тут в лидерах Python, R, но есть и много готовых инструментов на Java и Scala.
Очевидно, чтобы стать программистом, нужно выучить хотя бы язык программирования
Максим Петриков, Senior Software engineer в компании EPAM Systems.
Очевидно, чтобы стать программистом, нужно выучить хотя бы язык программирования. Можно выбрать любой способ из доступных: просмотр видеоуроков на youtube, чтение книг, обучение в школах программирования.
Также базовые знания на старте карьеры: стандартная библиотека языка, экосистема вокруг языка.
Программист, в начале карьеры, начинает писать код, и этот код получается не очень. Необходимо учиться писать код правильно, сначала на уровне небольших конструкция, со временем увеличивая их сложность и значимость для проекта.
Через это обучение и происходит рост и развитие программиста, таким образом можно добраться до ролей архитектора и технического директора.
б. писать код во время изучения чего-нибудь
Без написания код никакое обучение не работает. Что-то выучили, нужно закрепить через написание кода.
Выучили более сложную концепцию — нужно применить её в проекте, не получается использовать на работе — нужно заводить pet project (проект для себя, в свободное время).
в. думать,
Часто нельзя бросаться писать код, нужно подумать оптимальный ли путь мы выбрали. Может быть можно сделать как-то лучше, причем как с точки зрения текущих подходов, так и развития проекта в будущем, в том числе потенциальных изменений в бизнесе, которые могут повлиять на развитие продукта.
г. общаться (soft-скилы).
Современное программирование нельзя представить без различных обсуждений, общения с представителями бизнеса, выяснения узких мест, чтобы избежать проблем при реализации.
При собеседовании часто оценивается не только насколько человек технически подкован, но и насколько он умеет общаться, как на профессиональные темы, так и личное общение. Иногда эта оценка может быть важнее чем технические скилы.
д. выучить английский язык.
Почти вся документация в программировании на английском языке. Для этого хватает базовых знания языка, и даже пользуясь переводчиком для чтения, вполне можно быть хорошим разработчиком.
В интернете огромное количество обучающих материалов на русском языке, и английский язык, скорее, необходим на продвинутом этапе развития, когда вы используете самые передовые, не очень популярные библиотеки. Для этого нужно смотреть выступления авторов, может быть общаться с ними.
Также часто программисты, для развития, участвуют в open source проектах. Общение в таких проектах идет в 99% случаев на английском языке.
Довольно сложно загубить карьеру программиста.
Давайте пройдем по обязательным действиям, чтобы стать хорошим программистом
а. Человек не учится. Он может устроится в какой-то не самый продвинутый проект, за меньшие деньги, но стабильно и, со временем, проект уйдет на поддержку, нужно будет немного исправлять ошибки и всё. Никакого развития, но и требований минимум.
б. Человек не пишет код, когда учится. Изученные концепции не запоминаются, он не развивается, но при этом в рабочее время выполняет работу в меру сил. Много программистов делают много механической работы, не очень требовательной к скилам, также много программистов делают однотипные проекты.
в. Если не думать, то ничего страшного не произойдет, через несколько лет проект станет невозможно поддерживать, программист может уволиться и устроиться в другую компанию, якобы с наработанным опытом на предыдущем месте работы. А проблемы в старом проекте лягут на деньги бизнеса и на плечи новых разработчиков.
г. Если не общаться или быть очень неприятным в общении человеком, много мест где требуется поддержка проекта, или разработка каких-то не очень больших решений в одиночку, и, возможно, даже в коллективе из-за недостатка специалистов на рынке, такого программиста будут терпеть.
д. английский язык не знает хорошо огромное количество русскоговорящих разработчиков, и им это не мешает работать долгие годы, строя успешную карьеру в России.
Одна из возможностей загубить карьеру, это не выполнять свои обязанности. Если не писать код на работе, то это путь к увольнению. Такого разработчика будут увольнять, со временем будут возникать вопросы, почему он не задерживается на каждом из мест больше 3-х месяцев, но даже в таком случае можно можно потерять трудовую, сказать что только прошел курсы и начинающий разработчик, и всё равно устроиться на работу.
Еще один способ загубить карьеру — какой-то громкий скандал в публичном поле, например с кражей какой-то информации. Но далеко не все компании ищут что-то про прошлое разработчика, и открыт рынок других стран, где можно построить успешную карьеру.
Главная задача программиста — это решение задач
Тимур Мухитдинов, ведущий разработчик программного обеспечения в SberDevices.
- Развитие навыков решения задач.
Главная задача программиста — это решение задач. В описаниях вакансий на английском часто встречается требование Problem Solving Skill — это оно, и это именно навык, он не является врожденным, его развивают. Начать лучше с простых задачек, и нарабатывать опыт. Со временем, вырабатывается дофаминовая зависимость, которая помогает доводить сложные задачи до конца, тебе хочется решить задачу, а решив — ты получаешь удовольствие.
Можно изучить разные языки программирования, изучить библиотеки и фреймворки, но это всё только инструменты, которыми нужно пользоваться в решении задачи. На мой взгляд главное, чем программист (или будущий программист) может себе помочь — это практика программирования. И чем больше технических трудностей встречается на пути тем лучше — это и есть опыт решения задач. Так и развиваются навыки.
- Знать свой основной язык программирования.
Язык программирования — это вторая по важности вещь которая нужна программисту. Чем лучше язык изучен, тем меньше подводных камней будут встречаться в ежедневной работе. Они всё равно будут встречаться, но язык программирования это то, с чем у вас не должно быть никаких проблем.
Знания языка программирования как луковица, которая имеет слоистую структуру и, чтобы добраться до следующего слоя, нужно справиться с внешним:
* Синтаксис языка — это прям базовые знания, внешний слой луковицы.
* Подходы, которые приняты в языке, вы должны понимать, что написано в коде и ваш код должен быть понятен другим программистам.
* Знание платформы языка. Понимание того где и как запускается код. Умение понять живо ли приложение, не отправляя пользовательские запросы.
* Знание многопоточности. Многое в программе может обрабатываться независимо друг от друга, но когда возникает конкуренция — все переходит на новый уровень.
* Знание пределов языка и способов превзойти их. Например, может ли ваша программа выполнить запрос за 10 миллисекунд? А за 100 микросекунд? Сможет ли ваш сервер выдержать 1000 запросов в секунду? И прочие.
- Знать распространенные библиотеки и фреймворки своего языка программирования
Изучить один язык программирования недостаточно. Даже простенькая программа в реальном бизнесе написана с использованием дополнительных библиотек / плагинов / фреймворков. Эти вспомогательные инструменты помогают сэкономить тысячи строк кода, писать в программе только то, что нужно вашему бизнесу.
Например, когда вы пишете сервер, фреймворк помогает вам не беспокоиться о том, как данные передаются по сети. Сейчас на все “стандартные” операции есть своя библиотека. Часто даже приходится выбирать из библиотек и поэтому важны детали их реализации.
- Выбрать и углубиться в доменную сферу.
Выбор доменной сферы очень важен, потому что это именно то, с чем придется сталкиваться каждый день. Когда ты видишь свой вклад в развитие продукта и тебе этот продукт нравится, это позволяет не терять мотивацию на движение дальше.
Когда ты умеешь программировать, полезно знать сферу применения своей программы. Это проще делать уже когда есть работа. Например, если приходится писать ПО для биржи, нужно знать что такое фьючерс или как обрабатываются ордера на бирже. Можно и без этого, но знание доменной области упростит понимание задач, а следовательно поможет вам наладить общение с другими отделами.
- Принять факт, что постоянное обучение это норма жизни.
Нужно привыкнуть, что изучать что-то нужно будет постоянно. Как уже описано в пункте про знания языка программирования, на изучение глубин языка потребуется не один год усердного труда. Более того, периодически выходят новые версии языка. Сравнение с луковицей наверное напомнит про слёзы, но не так всё плохо. Легко не будет, но всё достижимо и не нужно этого бояться.
Изучая что-то новое вы также развиваете умение обучаться, поэтому со временем обучиться чему-то будет всё легче и легче. Так, например, новая версия библиотеки будет для вас в радость, т.к. изучить её будет не сложно, но она улучшит ваши каждодневные будни своим новым функционалом.
Нельзя быть программистом только из-за денег
Что нельзя делать программистам:
- Нельзя быть программистом только из-за денег.
Сейчас наблюдается рост зарплат IT специалистов и особенно программистов. Многим кажется, что программист ничего не делает и получает кучу денег, и что так сможет любой. Это правда только частично — программисты и правда много зарабатывает и так сможет почти каждый. Но потребуется потратить множество времени на обучение и изначальная мотивация в виде высокой зарплаты может исчезнуть, когда сталкиваешься с настоящими сложностями.
Можно даже успеть изучить программирование на достаточном уровне и найти работу, но потом остановиться в профессиональном развитии и не любить своё дело. Правда в этом случае, уже будучи программистом, можно будет перейти, например, в менеджмент или нечто смежное, но для этого тоже придется приложить усилия.
- Нельзя не развивать soft skills.
В современном мире не существует проектов, которые делает один человек. Любой проект это результат работы команды, а следовательно, нужно уметь взаимодействовать с другими людьми. Уважение, эмпатия, сдержанность — это стартовый набор любого члена IT команды.
Часто, когда на вакансию рассматривают двух кандидатов, выбирают человека, с которым было приятно общаться, даже если он уступает в знаниях оппоненту. Знания можно будет улучшить постепенно, а неприятная или натянутая рабочая атмосфера будет большой проблемой для бизнеса.
Из того, что я видел за время своей работы, испытательный срок люди не проходили всего 2 раза и это было не по причине недостатка знаний.
- Нельзя легкомысленно относиться к выбору работодателя.
На начальных этапах очень важно правильно выбирать работодателя. Следует ориентироваться не на зарплату и название должности. Определяющим должно быть наличие сильных специалистов в команде, нужно оценивать что ты сможешь изучить. Современный стек технологий позволит получить знания наиболее востребованные на рынке труда. Наличие востребованного продукта, и зарплата работников формирующаяся из дохода компании, а не из государственного бюджета — такой опыт поможет вам не только получить технический опыт, но и понять как функционирует IT бизнес. Какую ценность приносит работающий код и сколько убытков приносит забагованный.
Если не оценивать работодателя перед трудоустройством, то можно потерять годы на компанию, опыт в которой не будет стоить ничего. И даже если у вас будет должность ведущего программиста, в реальном мире знаний ваших не хватит даже на мидла.
- Нельзя работать без отдыха.
Существует такое понятие, как профессиональное выгорание. Выгоревший человек не просто перестает хотеть работать, он ненавидит свою работу, у него может развиться депрессия и если запустить этот процесс результат может быть плачевным. Взять отпуск и весь его потратить на компьютерные игры — не самый лучший способ отдохнуть, в идеале нужна смена деятельности. Концентрация на потреблении контента мешает творческому мышлению, которое применяется в решении задач. Важно устраивать цифровой детокс, проводить без электронных устройств продолжительное время, это поможет спастись от выгорания после 5-10 лет работы.
Так же хорошо бы найти себе хобби вроде столярного дела или пивоварения, попробовать яхтинг, играть в настольные игры или изучать иностранный язык. Обязательно заниматься чем-то не связанным с основным видом деятельности.
- Нельзя не заниматься спортом и вести пассивный образ жизни.
Наряду с периодическим отдыхом и цифровым детоксом, нужно каждый день делать физические упражнения. Регулярная физическая нагрузка стимулирует кровоснабжение мозга, нейтрализует негативное влияние стресса и не дает иммунитету ослабнуть. Важным аспектом тут является регулярность: лучше каждый день по 10 минут легкой зарядки, чем раз в неделю 2 часа активных нагрузок.
Чтобы стать хорошим программистом нужно много и упорно работать, развивать свои навыки
Нина Бурминская, Инженер-программист 1 категории ICL Services.
По моему мнению, точного плана «как стать хорошим программистом» нет и быть не может. Мой совет применим ко всем специалистам в любой другой профессии – много и упорно работать, развивать свои навыки, постоянно обучаться. Но есть несколько базовых обязательных действий, которые помогут в достижении звания «хороший программист»:
1) Получить базовое профильное образование. Тут могут быть как высшие учебные заведения, так и частные курсы.
2) Иметь математическую базу и умение выстраивать логические связи. Это необходимо, чтобы четко создавать алгоритмы и понимать, что происходит на каждом этапе.
3) Хорошо писать и говорить на английском языке. Минимум — читать и понимать техническую литературу. Очень много информации из источников не переведено на русский язык. Либо переведено, но очень сложно и запутанно, поэтому лучше все читать в оригинале.
4) Каждый день тренировать практические навыки программирования – ни дня без кода.
5) Самосовершенствование и развитие, пожалуй, — ключевые элементы в становлении хорошего программиста.
Читайте как можно больше книг по профильным технологиям
Александр Макеев, Software Engineer at Arcadia.
Пять обязательных действий, чтобы стать хорошим программистом:
1 Найти ментора или наставника, который даст дельные советы по выбору технологий, поможет разобраться в трудных моментах, сориентирует в каком направлении двигаться.
2 Читайте как можно больше книг по профильным технологиям, посещайте конференции, вы максимально исключите все пробелы в знаниях.
3 Изучайте английский язык. Многие курсы и книги доступны только на английском языке. Читая книги только в переводе, вы будете себя ограничивать в знаниях (например, Java Concurrency in Practice была напечатана на русском языке только спустя 14 лет после ее выхода)
4 Изучайте open source проекты. Помимо книг, вы можете почерпнуть лучшие практики, читая код других людей на Github. Очень здорово будет разобраться, как работает ваш любимый фреймворк под капотом, вы научитесь правильно его использовать и понимать его поведение в нестандартных ситуациях.
5 Тренируйте мозг. Помимо языков и фреймворков важно знать алгоритмы. Благодаря им вы научитесь писать более эффективный код и оценивать его сложность. Старайтесь иногда решать задачи на таких платформах как Codeforces, TopCoder, LeetCode или Hackerrank. Регулярная практика таких задач поможет держать ум в тонусе при поиске новой работы.
Пять действий, которые уничтожат будущую карьеру программиста.
Погоня за деньгами.
На первых этапах развития карьеры выбирайте работу и направления, которые больше всего вам интересны, нежели те, что больше оплачиваются. Это принесет больше результатов в вашем профессиональном развитии.
Долго сидеть на одном месте. Если вы никак не развиваетесь, постоянно выполняя monkey work, меняйте место работы или хотя бы проект.
Придерживаться одного стека технологий.
Индустрия разработки программного обеспечения постоянно меняется и развивается, профессиональные навыки должны тоже совершенствоваться. С устаревшим стеком будет проблематично найти востребованную работу.
Перестать учиться.
Чтобы эффективно развивать свою карьеру, нужно продолжать совершенствовать свои знания даже после трудоустройства.
Бояться совершить ошибку.
Без проб и ошибок вы не получите новый ценный опыт.
Самый простой способ выучиться на программиста это онлайн школы и курсы. Перед этим очень важно изучить ситуацию на рынке и определиться с направлением обучения, выбрав интересующий вас язык программирования. Не гонитесь за самым высокооплачиваемым направлением, выбирайте то, чем вы хотите заниматься в будущем, где вы достигните успеха.
При большом желании можно выучиться самостоятельно и без онлайн курсов. Узнайте, есть ли среди ваших знакомых разработчики, которые уже работают в IT. Ментор сориентирует вас с каких ресурсов начать обучение и поможет в будущем в трудных моментах. Даже если такого знакомого нет, есть онлайн площадки, где можно найти наставника. На первых этапах, проще начать с YouTube бесплатных курсов перед тем как погружаться в книги и справочники по документации. Во время чтения книг старайтесь писать небольшие программы по пройденному материалу, ведь очень важно видеть результат своих усилий чтобы не терять мотивацию учиться.
Выбор языка зависит от того, сколько у вас есть времени на его изучение и что вы хотите на нем разрабатывать. Универсального языка на все случаи жизни нет. Самыми популярными и простыми в изучении являются Python и JavaScript.
Надо хорошо учиться в школе и любить математику
Евгений Сафронов, основатель компании «С-Консалтинг».
1 — надо хорошо учиться в школе и любить математику, логику и философию, чтобы потом эти знания можно было превратить в инженерное искусство или в инженерный навык, который далее развивается. Либо развивать в себе навыки дизайнера, художника, чтобы потом использовать их в работе с IT с фронтом и дизайном.
2 — надо любить и хотеть учиться, внутри человека должна быть постоянная потребность в образовании.
3 – надо развивать в себе софт скиллс, что позволяют человеку занять свое место в команде и стать не только хорошим программистом, но и коллегой, который может встроиться в сложную схему взаимоотношений при разработке больших систем.
4 – надо любить работу и постоянно совершенствовать свои навыки, расширяя свою практику и как можно больше находиться в ней, чтобы четко определить свои сильные стороны и дальше идти в этом направлении.
5 – четко ориентироваться по целям, ставить себе карьерные горизонтальные и вертикальные цели. Понятие хороший программист должно выводить в какой-то конкретный контекст, конкретную область, позволяющую добиться максимальных результатов.
Карьеру программиста может уничтожить что угодно, но первое – это профессиональное выгорание, построенное на изначально неправильном выборе профессии. Не нужно идти в IT только потому, что это тренд и об этом все говорят.
Не стоит хвататься за те области, которые тебе неинтересны и в которых ты не чувствуешь свое применение, свою ценность.
Если человек живет без выстроенной цели, ему сложно делать карьеру программиста.
Бытует мнение, что легче всего выучить Python. На мой взгляд, в первую очередь нужно не учить языки, а делать карьерное планирование и профориентацию, а уже затем определять себе профессию и роль в IT, которую может освоить любой неспециалист из рабочих специальностей. Человек из любой рабочей специальности теоретически может уйти в IT и найти себе работу не только программиста, но и аналитика, тестировщика, архитектора, инженера поддержки, менеджера продукта, руководителя проектов. Тут талантов требуется намного больше, чем просто программировать. Сначала нужно изучить отрасль. Даже не все айтишники становятся программистами.
Оптимальный старт в IT – это вузовское образование
Олег Власенко, заместитель генерального директора IT-компании SimbirSoft.
Оптимальный старт в IT – это вузовское образование. Его стоит получить, если есть такая возможность. Студенты профильных вузов во время обучения погружаются в будущую специальность, накапливают систематизированные знания об отрасли, чтобы затем углублять их. Также возможны ситуации, когда в IT переходят из других отраслей. Скорость погружения при этом зависит от того, готов ли специалист к постоянному обучению и самообучению.
Что делать, если вы начинаете с «нуля»:
- Изучите основы программирования. Чтобы стать хорошим программистом, это первое и необходимое условие, своего рода «сердце» разработки. Не освоив как следует базу, невозможно создавать ничего нового. Можно только искать готовые решения, без всякой гарантии, что они будут работать.
- Напишите много кода – от двух, пяти, десяти тысяч строк, даже если он будет достаточно простым. Причина в том, что в основе разработки лежит навык, который нужно тренировать.
Если элементарная база уже есть:
- Выберите, куда вы будете двигаться, чем хотите заниматься: Mobile, Front, Back, что-то иное? Определитесь с конкретной вакансией, которая вам интересна. Выясните, какие знания требуются, чтобы успешно пройти собеседование. Составьте свой собственный road map продвижения от текущего положения к цели – успешному прохождению собеседования!
- Решите много-много-много задач, выбирая темы из своего road map и отрабатывая их, пока не будете уверены в своих знаниях.
Если уже есть ощущение, что стало получаться:
Сходите на собеседование. Если вас пригласят — это уже успех. Возможно, вас не позовут сразу на работу, но, как правило, вы можете попросить совета, что какие знания вам нужно углублять. И скорее всего, вы сможете получить такой совет.
Нужно выбирать проекты, на которых системы имеют максимальное число интеграций
Дмитрий Овчаренко, тренер Luxoft Training.
Если хочется быстро пройти этап работы разработчиком и перейти в архитектуру, нужно выбирать проекты, на которых системы имеют максимальное число интеграций и стараться разобраться в том, как устроено взаимодействие, и какие задачи решают приложения, и какую пользу приносят в целом. Если хочется стать архитектором – не стоит выбирать чистый frontend или мобильную разработку как первый приоритет. Такие задачи обычно хорошо определены и поставлены, и у вас не будет возможности думать о большем масштабе.
Выбирайте задачи с минимальной степенью детализации, тогда вы сможете разобраться сами в проблеме и выбрать решение. Не выбирайте нишевые, суперсовременные и мало популярные языки программирования, в противном случае вы будете знакомиться с enterprise системами. Не пренебрегайте чистым SQL. Реляционные базы данных еще очень распространены и продолжат использоваться, а понимание таблиц и связей, скрываемое ORM-движками, однозначно пригодится.
Нужно найти уже состоявшегося программиста среди друзей
Пётр Ляпин, CTO в Wave Service.
Пять обязательных действий:
- Понять, готовы ли вы проводить за компьютером очень много времени. Если нет, дальше можно не продолжать.
- Найти уже состоявшегося программиста среди друзей или знакомых и попросить его кратко рассказать о профессии и возможных вариантах развития в этой профессии, сориентировать по технологиям и навыкам, которые нужно подтянуть именно вам. Для каждого человека советы будут индивидуальны, в зависимости от образования и навыков.
- Найти курсы, которые позволят вам получить стартовый набор необходимых знаний. Сейчас есть много как платных, так и бесплатных сервисов. Курсы могут быть как в формате online, так и очные.
- Получив минимальные знания — начните делать свой проект. Придумайте любую идею и начните делать. Не нужно придумывать что-то очень сложное, обычного приложения вроде TODO-лист будет достаточно. Его можно делать на любом языке.
- Постарайтесь найти подработку или стажировку. Может быть тот же друг, с которым вы уже общались может взять вас на работу? Будьте готовы начать работать хоть за бесплатно. На старте вам очень важно получить реальный опыт и попасть в команду к профессионалам. Чем раньше у вас появятся реальные жизненные задачи и команда, с которой можно советоваться — тем лучше.
Чего нельзя делать:
- Думать, что вы можете стать программистов даже если вам не особо нравится разбираться в деталях, много учиться и проводить за компом большую часть времени.
- Думать, что покупка курсов по программированию решит все вопросы. Никакие платные курсы не помогут, если у вас нет готовности упорно трудиться и заниматься самообразованием.
- Не применять полученные знания на практике. Бесконечное чтение книг и прослушка курсов не поможет, если вы не начнёте делать что-то своими руками.
- Изучать технологии без привязки к конкретной задаче. Это как в школе — нам давали много знаний, но мы не знали как они применимы к жизни. Изучение языка программирования самого по себе, не применительно к реальное задача вряд ли даст хороший результат.
- Останавливаться в обучении. Языки программирования и технологии развиваются настолько быстро, что полученные вами знания стремительно устаревают. Программист должен учиться всегда, процесс обучение не заканчивается на одном пройденном курсе.
Тракторист безусловно может стать программистом при условии наличия предрасположенности, желания и готовности очень много учится.
На начальных этапах язык не принципиален. Если у человека есть чувство прекрасного и его тянет к визуалу, то может начать с верстки и JavaScript. Если больше нравится решать логические задачи и работа через «консоль» — может начать с C# или Java.
Программистом вряд ли станет человек не способный много и долго учится, усваивать большой объём новой информации. Вряд ли вы станете программистом, если вас в целом не привлекает перспектива проводить за компьютером более 8-ми часов ежедневно.
Классный разработчик должен постоянно развиваться и получать знания
Сергей Голицын, Senior Software Engineer/ Lead Software Engineer.
Для меня одно из обязательных действий это постоянное развитие и обучение. Классный разработчик должен постоянно развиваться и получать знания. ИТ сфера не стоит на месте и за ней стоит поспевать.
Действовать, без страха ошибиться и рисковать — это тоже не мало важный фактор. Не набив свои шишки, ты не узнаешь как было бы правильно. Идеальные архитектуры и приложения пишутся не сразу. И приходится пробираться через кучу багов и провалов. Этого точно не стоит бояться.
Пробовать все новое на домашних проектах. Так вы сможете прочувствовать новую технологию. Протестировать ее. Разобраться и поделиться знаниями с коллегами, обладая практическими примерами.
Понимать бизнес-потребности, а не просто писать код по таскам. Это супер важное действие. Понимание бизнеса твоей компании поможет при проектировании архитектуры, общении с заказчиком, работой с базой данных.
Также стоит развивать критическое мышление. Ведь не все что написано правда и не всему можно доверять. Нужно учиться смотреть с разных сторон. Нужно уметь гуглить и фильтровать информацию.
По моему мнению на старте карьеры нельзя гнаться за деньгами. Это лишь повредит. Я считаю что нужно гнаться за тем что тебе нравится, за знаниями и развитием. Деньги не лучший мотивирующий фактор. Плюс получив первую огромную зарплату, будет сложно сменить работу.
Также нельзя работать очень долго на одном месте. Спустя какое-то время ты затвердеваешь, появляется зона комфорта, ты медленнее растешь и пользуешься только корпоративными технологиями, что не увеличивает твою стоимость на рынке.
Думаю не стоит вступать в открытый конфликт с коллегами. Не стоит таить злость. Если что-то не устраивает, всегда можно поговорить с менеджером и постараться решить проблему или сменить команду. Негативная атмосфера явно не способствует развитию.
Не стоит писать плохой код в надежде, что только вы сможете его поддерживать. Я встречался с такими разработчиками и это явно не делает из них крутых специалистов.
На собеседовании нужно быть открытым, получать негативный фидбэк, а не негативить в ответ.
Стараться учиться по книгам, а не статьям в интернете. Ведь в статьях достаточно часто бывает много воды и неверной информации.
Может ли тракторист, сварщик стать программистом и с чего стоит начать? Конечно же может. Главное желание. Стремление к обучению и мотивация (желательно не деньгами) могут помочь любому сменить профессию. Главное что бы тебе было интересно учиться. Сейчас я бы начал с курсов и дополнительно читал книги по интересующему языку программирования. Можно поискать вакансии на стажеров и посмотреть что требуют компании. Это поможет составить план обучения.
Какие языки нужно начинать учить в первую очередь трактористу, который решил уйти в ИТ и стать программистом? Нет однозначного ответа. Можно выбрать компанию мечты и посмотреть какие языки используют там. И на основе этой компании выбрать будущий язык. Можно пойти другим путем и попробовать начать учить “хайповый” язык или молодой язык. Ведь к тому времени как он разовьется вы станете профессионалом, которого трудно найти на рынке, потому что язык все еще молод.
Кому никогда не стать разработчиком? Мне кажется разработчиком не сможет стать кому не интересно программирование. Те, кому не нравится сидеть сутки и недели за компьютером тоже едва ли смогут стать разработчиком. Те кто думают, что это легко и не нужно ничего делать — у меня для вас плохие новости, вы скорее всего тоже не сможете стать разработчиком.
Важно смотреть лекции, вебинары, слушать подкасты
Стеблова Татьяна, ведущий бекенд разработчик.
Для того чтобы стать хорошим программистом и с легкостью потом найти высокооплачиваемую работу сегодня часто нет необходимости получать высшее образование именно в этой сфере. Можно и даже нужно заниматься самообразованием. Важно смотреть лекции, вебинары, слушать подкасты, записи конференций, митапов на Youtube или на разных обучающих он-лайн платформах(Udemy, coursera). Курсы не должны быть длинными, технологии меняются слишком быстро и знания и информация на этих курсах может устареть уже к концу обучения.
И конечно стоит сразу определиться с тем, чем интересно и хотелось заниматься, от этого будет напрямую зависеть и стек технологий, который придется освоить, и дальнейший план совершенствования — это мобильная разработка, разработка бэкэнд части, frontend или даже направление автоматизации тестирования
Полезно будет сходить на хакатон или подобные соревнования, или марафоны по программированию. На такого рода мероприятиях каждый участник получает качественный скачок как и в знаниях, так и в представлении о том, как делать продукты с нуля, пусть и в не самом хорошем качестве. И к тому же будет возможность найти интересные задачи, чтобы на них дальше развиваться и понимать, что сейчас требуется рынку.
Также стоит прокачать свои soft skills(например, умение слушать, убеждение и аргументация, управление эмоциями, планирование и целеполагание, использование обратной связи, проектное мышление и многие другие). Программисты редко делают что-то в одиночестве, часто готовый продукт — это результат работы большой команды, и для того, чтобы быть продуктивным членом команды, необходимо уметь общаться с людьми разной квалификации, часто из разных культур, нужно уметь сообщать о прогрессе, оперативно поднимать вопросы, решать проблемы и в целом быть хорошим командным игроком.
Стоит обратить внимание на свой уровень английского, хотя сейчас уже есть сильное русскоговорящее сообщество в том же habr, все равно в какой-то момент придется читать документацию к той или иной библиотеке, или идти за помощью на stackoverflow, а там без английского никак не обойтись.
Скорее всего придется заниматься каждый день, программировать разные алгоритмы, потом через время можно пробовать их оптимизировать, делать по-другому, переписывать библиотеки, чтобы понять, как все устроено. В дополнение будет полезным смотреть чужой код, на github можно найти миллионы разных проектов, на разных языках — всегда стоит учиться у профессионалов.
Наверное, самое главное, что может уничтожить будущую карьеру разработчика — это лень. Если вдруг кажется, что уже есть все необходимые знания и можно остановиться и больше никак не развиваться — вот здесь и может произойти необратимый процесс. Важно не лениться, продолжать изучать что-то новое, можно выходить из зоны комфорта и пробовать новые сферы или брать больше ответственности.
Не стоит идти работать программистом, если привлекают только деньги. Эта профессия очень сложная, требует постоянного взаимодействия с людьми и умения думать о других, если интерес только в деньгах — тогда все это быстро приведет к выгоранию и человеку, и его коллегам будет сложно работать в команде с таким разработчиком. Деньги вряд ли будут поддерживать мотивацию и увлеченность в проектах, это сразу станет заметно окружающим.
Говорить “нет” чему-то новому. Очень часто разработчики не хотят что-то менять по причине, что бояться что-то сломать, и поэтому часто начинают говорить, что что-то делать не стоит, менять не нужно, пусть как работало так и работает. Страх лишает разработчика действовать открыто и развиваться.
Не интересоваться новинками в предметной области или бизнесе. Когда человек перестает читать последние новости из сферы, где он работает или не следит за конкурентами — его код становиться бесполезным и вряд ли поможет компании шагать в ногу со временем. Так же часто программисты в принципе не хотят погружаться в тему того, с чем они работают, тем самым усложняя работу всей команды, потому что гораздо легче работать с коллегами, которые точно понимают, как делать, что и конечно, для чего, какую потребность пользователя они смогут закрыть. И вряд ли человек без контекста своей сферы сможет предложить что-то новое и революционное.
Быть монополистом в конкретной технологии. Например, выучили Go и всю жизнь сидите на одном языке программирования и на одних фреймворках — а завтра вдруг может оказаться, что весь мир перешел на какой-то абсолютно новый язык и вы уже станете не нужны рынку как специалист. Вообще, любой язык программирования — это всего ли средство и инструмент. И идеально следить за новостями и популярностью тех или иных технологий и минимально понимать, для чего они нужны и почему развиваются активнее других.
Виталий Арбузов, генеральный директор INPRO.digital
Для того, чтобы стать хорошим программистом, безусловно, нужно знать языки программирования и уметь виртуозно складывать из них программы. Но кроме такого банального, нужно:
1. Развивать творческое восприятие, так как мышление на уровне абстракции помогает интуитивно подыскивать решения задач.
2. Интересоваться тем, как устроены разные механизмы физических предметов. Ведь каждый программист — немного инженер, только он выстраивает рабочие механизмы не физически, а с помощью кода.
3. Развивать критическое мышление: без объективного восприятия происходящего программисту будет сложно писать новый код.
4. Улучшать свои аналитические способности. Если программист всегда решает задачи одним и тем же путем, значит он скором времени станет просто невостребованным.
5. Изучать историю и психологию, так как именно там можно черпать новые идеи для решений. Чтобы понимать как человеку лучше будет взаимодействовать с вашим продуктом — стоит знать их природу поведения.
Я бы выделил одно действие, которое недопустимо для программистов: расстраиваться из-за ошибок. Нужно уметь ошибаться, идти эмпирическим путем и буквально прощупывать свой будущий путь, ведь написание рабочего программного кода — череда проб и ошибок.
- Российские BPMS в цифрах: результаты тестирования и выбор лучших платформ - 06/12/2024 16:41
- В Госдуме предложили выделить 10 тысяч рублей нуждающимся россиянам к Новому году - 06/12/2024 14:22
- Как сохранить психическое здоровье в мире цифровых технологий - 06/12/2024 12:16