Консультация
Работаем с 8:30 до 19:00Выходной: суббота и воскресенье


Сообщение об ошибке

Обучение

Сообщение об ошибке

Язык C++ - мощный инструмент для творчества и самореализации

4 Июля 2014

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

Это они на самом деле придумывают наше завтра, определяют картину будущего мира и раздвигают границы мироздания. Сегодня без них сложно обойтись в любой сфере человеческой деятельности, завтра — без них станет просто невозможно жить. Так что если говорить о самых перспективных и востребованных профессиях, то программист — это очень перспективно! А если говорить о самых популярных языках программирования, то хотим познакомить вас с C++ — это один из пяти самых-самых используемых языков ИТ-мира! Поможет нам в этом преподаватель программы С++Developer Наталия ДЕЕВА, которая успешно сотрудничает с Образовательным центром Парка высоких технологий и легко превращает для своих слушателей сложный процесс постижения новых технологий в увлекательное и дерзкое проникновение в мир программирования.

ВОПРОС: Наталия, какое место в современной ИТ-индустрии занимает язык C++?

Наталия ДЕЕВА: Язык программирования C++ стабильно удерживается в пятерке лидеров на протяжении последних полутора десятков лет. Согласно рейтинга, публикуемого голландской компанией Tiobe, C++ на конец августа 2012 года занимает четвертое место среди более чем 150-ти языков программирования, известных на сегодняшний день.

Рейтинг каждого из них вычисляется на основании анализа пользовательских запросов самых популярных поисковых машин Интернета. Интересно, что пятерка самых популярных сегодня языков базируется на так называемом C-синтаксисе — это «чистый» С, С++, Java, C#, Objective-C.

С++ — это объектно-ориентированный язык программирования, который сочетает в себе возможности низкоуровневого и высокоуровневого языков, иногда его даже называют из-за этого языком среднего уровня. Если проанализировать долю использования объектно-ориентированных языков, то согласно тому же (приведенному выше) ресурсу, она превышает 50-процентный рубеж, обгоняя функциональные, логические и процедурные языки.

С++ — это мощный инструмент для создания различных приложений, от небольших до достаточно объемных и трудоемких. Главным преимуществом этого языка, по моему мнению, является сочетание в нем возможности работы на низком и высоком уровнях. Таким образом, код создаваемый программистом может быть максимально адаптирован к системным возможностям той платформы, на которой он будет работать. А именно это свойство дает неоспоримое преимущество в оптимальном использовании ресурсов вычислительной системы (компьютера или другого устройства, например, мобильного телефона или игровой приставки).

Язык программирования C++ является зрелым языком, его история насчитывает уже более 15 лет и берет свои начала в языке С, который и сегодня пользуется спросом в системном программировании (разработка операционных систем, драйверов, программирование вычислительных устройств). Конечно, стремительное развитие вычислительной техники, а также методологий программирования может поставить закономерный вопрос об актуальности и современности языка С++, но смею вас уверить, язык живет и развивается. Например, недавно появился новый стандарт C++11, который добавил новые долгожданные инструменты.

ВОПРОС: Где и для чего можно применить знание языка C++?

НД: Основные сферы использования C++ сегодня — это: программирование игр (так называемый gamedev), работа с компьютерной графикой, решение задач с высокими требованиями к производительности и, конечно же, системное программирование (разработка ядра операционной системы, драйверов устройств, сетевые решения и т.д.).

Если вы хотите увидеть список из более чем 1000 наиболее успешных проектов, разработанных на C++, я рекомендую Вам посмотреть следующий ресурс.

Среди приложений, написанных на C++ или содержащих код на С++, можно увидеть проекты таких крупных компаний, как

  • Apple (большая часть операционной системы OS X написана на языке С++);
  • Amazon.com;
  • AT&T (телекоммуникационные задачи);
  • BeOS (многопроцессорная операционная система);
  • CERN (анализ данных);
  • Facebook (несколько важных компонент);
  • Google (поисковая машина);
  • HP (ядро виртуальной машины Java и др.);
  • Microsoft (операционные системы Window XP, Vista, System 7, а также MS Office, MS Explorer и другие продукты);
  • MySQL Server.

Как видно из перечня компаний, язык C++ не просто популярен — ему доверяют самое сложное, самое ответственное, а значит, мы говорим о языке с серьезными уровнем привилегий. С++ — язык для серьезных и ответственных людей, он требует не только знания синтаксиса и правил кодирования, но и глубокого понимания принципов работы с памятью, программными объектами, устройствами и абстракциями, с ними связанными.

ВОПРОС: Где может работать программист, в совершенстве владеющий языком С++?

НД: Скажу, возможно, немного пафосно: если вы владеете в совершенстве языком C++, то вам нельзя молчать — вы должны говорить на нем! Этот язык настолько мощный по своей выразительности, что ваш код — это настоящее творчество. Где можно работать, зная C++? Как правило, это те области программирования, где сложнее всего уйти в рутину: анализ данных, графика, игровые приложения, системное программирование, искусственный интеллект, безопасность. Я думаю, что со мной согласятся многие: C++ — это интересно, хотя и непросто.

ВОПРОС: Самые яркие имена в компьютерном бизнесе (мире), связанные с языком C++?

НД: Самые яркие имена — имена создателей и идеологов языка. Автор языка C++ — это хорошо известный в мире программист Бьерн Страуструп, который и сегодня активно занимается развитием своего детища. Ну и конечно, надо обязательно вспомнить создателей языка C, легшего в основу С++: Кэна Томпсона и покинувшего нас, к большому сожалению, минувшей осенью Дениса Ритчи.

ВОПРОС: Насколько востребованы программисты, владеющие языком C++, на рынке труда?

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

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

Но язык C++ обладает еще и известной универсальностью. Недавно увидела у кого-то хорошую фразу на эту тему, позволю себе ее воспроизвести с некоторыми собственными правками: «Пусть язык C++ нельзя выучить за 24 дня, а порой на это требуются и годы, но при переходе на любой другой язык с него вам будет достаточно 24-х часов». Вот именно поэтому C++ можно назвать лучшим для изучения его в качестве первого языка! Он заложит ту базу, с которой вам будет легко работать программистом. Да, C++ — не самый простой для изучения и понимания, необходимо приложить усилия, чтобы вникнуть в тонкости его внутренних механизмов, но вложенные силы и время вернутся сторицей не только при работе с ним, но и при изучении практически любых иных языков программирования (по крайней мере, императивных).

Добавлю, что язык C++ — это целая философия, и те, кто пишет на нем после осознанного выбора, любят его и понимают.

ВОПРОС: Как долго нужно учиться языку C++?

НД: Этому языку можно учиться постоянно, пока вы работаете на нем. Но для того чтобы начать писать программы, вам не нужна вся жизнь — достаточно нескольких месяцев. Правда, с условием, что вы очень хотите стать C++-программистом.

ВОПРОС: Сколько зарабатывают программисты, владеющие языком C++?

НД: Финансовая сторона вопроса всегда самая животрепещущая. Как и в любой другой отрасли, оплата труда в данном случае зависит от массы факторов: вашей квалификации, величины компании, наличия хорошего стабильного клиента и т.д. Учитывая, что на этом языке решаются, как правило, нетривиальные задачи, программист, владеющий C++, вправе рассчитывать на достойный уровень зарплаты. Хотя, многое все-таки зависит от вас самих, от уровня вашей подготовки и вашей мотивации.

ВОПРОС: Можно ли программисту-белорусу в перспективе устроиться на работу в иностранную компанию?

НД: Разумеется, да! Быстро развивающаяся в нашей стране ИТ-сфера уже сегодня может предложить вам массу возможностей по трудоустройству в иностранные компании.

ВОПРОС: Как Вы занялись программированием?

НД: Любовь к программированию пришла ко мне еще в школе. Я училась в физико-математическом классе гимназии. Первым языком, который мы изучали, был Basic. Скажу честно, он не произвел на меня такого сильного впечатления, как позже Pascal. 11-й класс я заканчивала с уверенностью, что программирование — это мое. Поступила в университет на специальность «Программное обеспечение информационных технологий», с удовольствием изучала там новые технологии. Тогда же начала самостоятельно изучать язык C++, писала на нем курсовую с элементами assembler по защите авторских прав.

За время учебы приняла участие в нескольких ИТ-проектах. Затем написала и защитила магистерскую диссертацию. А когда меня пригласили работать в университет на факультет математики и информатики, начала и сама учить студентов программированию. В 2010 году стала участницей программы по подготовке ИТ-тренеров в Республике Индия. Это был отличный опыт с точки зрения повышения квалификации как в области программирования, так и в области методики преподавания.

ВОПРОС: Почему Вы выбрали именно C++?

НД: Язык C++ — это философия и большие возможности. Он позволяет тебе творить, он дает средства для выражения собственных мыслей, он позволяет идентифицироваться в стиле написания кода, в нем столько мощности, что мне ничего не оставалось сделать, как его полюбить!

ВОПРОС: Какими качествами должен обладать успешный программист вообще и специалист по C++ в частности?

НД: Давайте сначала определимся с понятием «успешный программист». Кто это? Тот, кто много зарабатывает? Или тот, кто не только зарабатывает, но при этом еще и реализует себя в своем творении — программном коде?

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

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

Специалисту по C++,  как мне кажется, не нужно обладать какими-то особыми качествами, а всего-то: трудолюбием, любознательностью и увлеченностью языком.

ВОПРОС: Ваша сверхзадача, связанная с программированием?

НД: Я не ставлю каких-то сверхзадач перед собой, есть задачи, задачи интересные, их хочется решать, и это здорово. Ближайшая перспектива — изучение стандарта C++11, уверена это будет увлекательно.

ВОПРОС: Ваши кумиры в программировании?

НД: У меня нет кумиров, но есть люди, мнение которых для меня важно. Назову несколько очень известных имен: Бьёрн Страуструп, Джеффри Рихтер, Гради Буч, Уолтер Липпман, Брюс Эккель.

ВОПРОС: В чем заключается Ваше участие в совместном белорусско-индийском проекте?

НД: Это большая для меня удача, что я попала в проект. Согласно меморандуму подписанному правительствами двух стран — Индии и Беларуси. В 2010 году индийская сторона взяла на себя обязательство обучить 8 тренеров, для дальнейшего продвижения обучению в сфере информационных технологий в Республики Беларусь и создания учебного центра, который бы взял на себя миссию схожую с тренировочными центрами в Республики Индия. Кроме того, индийское правительство оборудовало 5 компьютерных классов в Минске, в Гродно, Витебске, Бресте и Гомеле.

ВОПРОС: Как вы попали в эту программу?

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

ВОПРОС: Чему могут белорусы научиться у индусов?

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

ВОПРОС: Что вам лично дал этот проект?

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