Программист – профессия, требующая специальных знаний и навыков. Практически в любой профессиональной области нужно учиться и совершенствоваться, прежде чем стать специалистом. Но так ли разнятся сроки подготовки программистов, как, скажем, хирургов. Ведь есть хирурги в поликлиниках, а есть в больницах – те, которые оперируют. И времени, чтобы стать оперирующим хирургом нужно в разы больше.
Программисты тоже бывают разные: дипломированные и самоучки, веб-разработчики, разработчики под Android и iOS, программисты 1С, инженеры-программисты и так далее. Так сколько же времени нужно, чтобы стать программистом – один день или, может быть, целая жизнь?
«Отсчет времени начинается еще со школьной скамьи»
Дмитрий Раковец, javа-разработчик:
Однозначно на этот вопрос ответить нельзя, так как время подготовки программиста зависит от нескольких параметров: усердия, способностей. Обладая ими в должной мере, за один год можно изучить язык программирования и необходимые технологии. На выходе получим начинающего разработчика.
Если же говорить о Программисте (с большой буквы П), который может на своих плечах вытащить проект, то сюда можно добавить еще два параметра: увлеченность тем, чем человек занимается, и база, заложенная в школе, университете. То есть в целом отсчет времени начинается еще со школьной скамьи.
Однако стоит обратить внимание, что этих знаний все-таки недостаточно. Для того, чтобы стать успешным программистом, обязательно нужно снова практиковаться, изучать что-то новое и тут же применять это на практике.
Если же подходить к рассмотрению вопроса со стороны качества работы, то здесь, как в спорте – логарифмический рост показателей. То есть с каждым годом рост качества выполняемой работы становится все меньше. Ну а рынок, само собой, задает планку качества, после которой кандидат получит определенный оффер.
Мой программистский путь начался, увы, поздно. Я с программированием столкнулся только в университете (с Паскалем). Это было связано с тем, что школа, в которой я учился, к сожалению, не могла дать мне даже самых примитивных знаний в этой области. Но с учетом того, что я занимался олимпиадной математикой – сразу же начал делать успехи и в программировании. Не сразу, но все-таки решил сделать шаг навстречу промышленной разработке. За месяцев 6 изучил все необходимое для старта на курсах, и на данный момент работаю javа-разработчиком.
«Программированию нужно учиться всю жизнь»
Дмитрий Тулупов, ведущий веб-разработчик:
Все зависит от выбранной специализации. Ведь программированию нужно учиться всю жизнь. Поскольку требуется постоянное обучение и переобучение... Так как постоянно выходят обновления, создаются новые библиотеки, появляются новые языки программирования. Понятное дело, нужно учиться, чтобы не отставать от передовых технологий. Вышла новая веб-технология – изучил ее.
Кроме того, библиотеки состоят из миллиона различных функций, и их изучение за короткий промежуток времени просто не представляется возможным физически.
Я, например, занимаюсь программированием примерно с 2009 года, может чуть раньше. Сначала начинал с создания простых страниц на html и табличной верстки. Потом постепенно стал изучать CSS, JavaScript и PHP. Затем пошли готовые CMS (Системы управления контентом), их программирование и программирование модулей для этих систем. После этого я подробно разбирался в различных PHP-фреймворках и так далее. Сейчас технологий слишком много. Применяемых и новых, востребованных и забытых. Понятное дело, все знать невозможно. Но совершенствоваться и стремится к новым знаниям мы обязаны.
Здесь ещё очень важно учитывать, что подразумевается под словом «программист». Это примерно, как на музыкальном инструменте играть. Есть те, кто играют 3-4 аккорда до 5 лада и называют себя гитаристами, а есть те, кто в состоянии идеально исполнить всю дискографию Хендрикса, но на вопрос «ты умеешь играть?» они ответят: «ну, так, поигрываю чуть-чуть»...
Так и с программированием. Например, я в данный момент могу назвать себя программистом. Но так, скорее всего, должны называть тебя коллеги, ученики и другие причастные люди. Ведь программистом сейчас могут назвать себя даже школьники, которые программируют на «детских» языках.
«Без постоянного обучения твои навыки быстро устаревают»
Александр Сташкевич, инженер-программист:
Если под словами «стать программистом» подразумевается получить работу, то первым делом нужно освоить базовые знания в выбранном направлении.
Обучаться (не в университете на факультете информационных технологий) можно разными способами:
- Самообразование;
- Ментор;
- Курсы.
Если говорить о самостоятельном изучении программирования с нуля, то очень многое зависит от заинтересованности человека в обучении. В интернете можно найти очень много материала, который позволит освоить базовые знания в выбранной области. Этот период очень сильно различается по времени (от 2 недель до 3 месяцев). После чего, а лучше параллельно с изучением, следует начать делать собственный, интересный самому себе же проект, так как обучение без практики не приносит должного эффекта.
С развитием проекта человек будет постоянно учиться и улучшать качество кода. Временные рамки этого этапа очень персонализированы, для некоторых проектов может потребоваться 1-2 недели, а для некоторых – пару месяцев. Опубликовав один (2-5 месяцев), а лучше несколько (3-10 месяцев) проектов, можно отправляться на поиски работы.
Наставник, понятное дело, ускоряет процесс изучения. Он указывает на ошибки и области, в которых обучаемому не хватает знаний. Возможно, он даже поможет с поисками первого проекта/работы.
Прохождение курсов (обычно от 2 до 6 месяцев) научит человека решать определенную задачу, и все его знания будут ограничены именно этой задачей (от А до Б, если говорить о краткосрочном обучении). Если по окончании обучения на курсах человек сразу не найдет работу или не начнет участвовать в интересном ему проекте – такое обучение не принесет никакого эффекта. Ведь в программировании, как и в любой другой профессии, без постоянного обучения твои навыки быстро устаревают.
Если же говорить о классическом вузовском образовании, то университет требует намного больше времени на обучение, но и должен давать более широкий спектр навыков. Такой спектр обширен, однако не всегда дает глубокие знания в конкретных областях. Грубо говоря, после 2-го курса нужно выбрать интересное для себя направление и углублять свои знания, развивать навыки именно в нем.
Можно ли получить эти знания не тратя 4 года? Если в самом начале изучения человек уже выбрал направление своего развития, то на прохождение нужных именно ему университетских программ он потратит намного меньше времени. Университет ведь помимо образовательных функций, развивает в человеке личность. А это тоже требует времени.
«Даже художник может стать программистом»
Евгений Вишневский, веб-разработчик, руководитель веб-студии:
Я думаю, что нет конкретного временного промежутка, чтобы стать программистом. Вопрос в том, кто и что закладывает в это понятие. То есть, если кто-то считает, что программист – это тот, у кого есть диплом о среднем специальном или высшем образовании, где прописана специальность «техник-программист» или «инженер-программист», то, наверное, достаточно срока обучения в учебном заведении, если же брать того, кто действительно может считаться программистом – наверное, учиться надо всю жизнь.
То, чему я учился в университете на 1 курсе, к 5 уже давно стало не актуальным. Например, когда я был студентом 2-3 курса, Стив Джобс презентовал первый iPhone, а когда я заканчивал университет – смартфон уже был обыденной вещью. Это именно та сфера, в которой все очень быстро меняется, так что учиться приходится постоянно.
Я не считаю, что в настоящий момент просто для того, чтобы сидеть и писать код, нужно иметь высшее или даже среднее специальное образование. У меня были знакомые художники, которые стали программистами. Они занимались графикой, живописью, а потом решили, что им это больше не интересно и стали программистами. То есть они прошли полугодовые курсы и в итоге работают программистами в весьма немаленьких компаниях. Но здесь вопрос в другом: какие задачи могут решать эти люди? Просто сидеть и писать код... с такими навыками и уровнем подготовки они не смогут в нашей стране претендовать на зарплату свыше $2000.
Вообще, белорусский рынок изначально развивался как аутсорсинговый для Запада. То есть там есть ребята, которые получают большие деньги, отдают заказы белорусам, а последние просто сидят и кодят. Вся экспертиза там, в Беларуси программисты просто выполняют механические действия. Сейчас этот вектор уже немножко смещается, даже экпертиза во многом уходит в Беларусь. Здесь есть самые современные «вещи» – нейронные сети, искусственный интеллект. У нас много стартапов, которые нацелены именно на это. И вот там все ребята имеют минимум высшее инженерное образование. Ведь эти знания им действительно необходимы: статистика, матанализ и так далее, с теорией вероятности им нужно быть хотя бы знакомыми. И это тоже программисты.
Но с другой стороны, есть условный товарищ, который дома «на коленках» пишет сайты (не важно какого они качества), однако он тоже себя считает программистом. Хотя посмотрел три видеоурока, научился ставить CMS-ку и добавлять на неё картинки. В итоге у него получается сайт. И он тоже программист.
Сроки подготовки здесь очень сложно оценить. А вот если оценивать профессию по срокам вхождения в неё, то самый короткий путь у веб-разработчиков (даже если не брать в расчет тех, кто за пару дней осваивает технологию по видеоурокам), именно у тех, кто работает с вебом на PHP. Потому что этот язык сам по себе прост, у него большое сообщество разработчиков, по нему есть уйма книг, видеоуроков, курсов и много другого. Самой времязатратной областью программирования будет, я думаю, как раз-таки сфера искусственного интеллекта и нейронных сетей, потому что там помимо хороших знаний в программировании нужны и глубокие знания в математике.
В любом случае, я считаю, что если есть желание, человек сможет стать хорошим программистом. Снова вспомню знакомого художника. Даже имея «лирическое» образование, человек сможет постигнуть профессию. Возможно, ему будет сложнее в силу отсутствия технической базы, специализированных знаний. Но дальше я проблемы не вижу.
«Не все люди, которые закончили вуз по программистским специальностям, в итоге становятся программистами»
Алексей, фронтенд-разработчик:
В первую очередь, все зависит от базовых знаний в Computer Science. Это архитектура ЭВМ, знание того, как производятся вычисления и тому подобное. Во вторую – от базового понимания основ программирования, ведь наличие этих знаний может сильно сократить путь становления программиста.
Количество затрачиваемого времени также сильно зависит и от предметной области, в которой ты хочешь стать программистом. Поскольку могут понадобиться дополнительные знания в этой самой предметной области: биология, физика+математика, искусственный интеллект, блокчейн, компьютерная графика и так далее.
Естественно, все во многом зависит и от самого человека, который учится. От его способности к самообучению, заинтересованности, уровня интеллекта, в конце концов. Более того, важна правильность подхода к обучению. Учитывается насколько он системный, не скачет ли человек от одного к другому и тому подобное.
Качество знаний, конечно, тоже напрямую зависит от количества времени, которое человек инвестирует в обучение. Кто-то может уделять программированию по 2 часа раз в два дня, а кто-то может по 12 часов в день сидеть. И вот все это вместе может составлять умопомрачительно разные сроки обучения.
В итоге все сводится к тому, что сроки – это нечто, сложно оцениваемое. Можно, допустим, сказать, что на каком-то языке программирования стать Junior Developer можно за 1 год. Только как об этом корректно судить? Ведь этого джуна, например, взяли на какую-то одну работу, а в 20 других мест, где нужен джун, не взяли. Так что статистически он рынку был не особенно нужен.
Кроме того, умение программировать – не единственное умение, которое требуется от программиста. Потому что всегда есть всякие смежные «вещи»: базы данных, верстка, системы очередей, какая-нибудь анимация, системы контроля версий, системы развертывания, облачные технологии и так далее. То есть это как бы не совсем программирование, но при этом джава-бэкэнд разработчик без знания баз данных никому и даром не нужен.
В общем, очень сложно оценить сколько времени нужно, чтобы стать программистом. Главное, помнить сакраментальную вещь: не все люди, которые закончили вуз по программистским специальностям, в итоге становятся программистами.
Комментарии
Лысому -- расчёска, Логику -- АЭС, а журналистам -- "Как стать программистом?"
:)
Топiк ящэ доiцца! (С)
Программирование - найскучнейшее занятие. (С)
То ли дело что-то ... долбать, или ... пилить, или ... рубать, плавить, строгать или ... рисовать, писать, декламировать или ... строить, шлифовать, точить или ... фоткать, ехать, нырять, ловить, перегружать и ... прыгать!
Программирование - найскучнейшее занятие. (С)
После художника и такая з/п неплоха