Карьера в IT #руководства

Как старшекласснику понять, подойдет ли ему работа программиста

24 мая 2019 Читать ~ 10 минут

Содержание:

  1. Над чем могут работать программисты
  2. Как понять, подходит ли вам программирование
  3. Как становятся программистами
  4. Какие белорусские вузы готовят программистов
  5. Если вы решили стать программистом

IT-специалисты востребованы во многих странах, например, в США профессию программиста назвали лучшей работой, оценив уровень доходов и карьерные перспективы. В Беларуси IT-индустрия также активно развивается: в страну приходят компании из Европы и США, и зарплаты белорусских программистов уже сопоставимы с европейскими. Благодаря этим факторам карьера программиста привлекает все больше абитуриентов.

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

Над чем могут работать программисты

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

Системное и прикладное программирование

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

Прикладные программисты разрабатывают программное обеспечение для решения практических задач пользователей, например, сайты, различные приложения, бизнес-порталы, игры. В этом направлении богатый выбор языков программирования, среди которых наиболее популярны – Java, Python, С#, PHP, Ruby.

Популярные направления в прикладном программировании

Веб-программисты разрабатывают сайты, социальные сети, интернет-магазины – все программы, которые работают через браузер.

Разработчики мобильных приложений специализируются на разработке под Android (языки Java, Kotlin) или под iOS (языки Objective-C, Swift). Также можно писать кроссплатформенные приложения, используя специальные фреймворки, например, Xamarin.

Разработчики десктоп-приложений создают программы, которые устанавливаются на компьютер пользователя и могут работать без доступа к интернету (например, пакет программ Microsoft Office). Такие приложения пишутся под определенную операционную систему (Windows, MacOS или Linux) и чаще всего на языках программирования C#, С++.  Однако сегодня десктоп-приложения разрабатываются не так активно, как мобильные и веб-приложения.

Специализации для разработчиков приложений

Приложение состоит из серверной части (back end), отвечающей за обработку информации,  и клиентской (front end), которую видит пользователь. Эти компоненты пишутся на разных языках программирования, поэтому разработчики обычно специализируются или на back end, или на front end.

Frontend разработчики воплощают через код дизайн пользовательского интерфейса, реализуют различные визуальные эффекты. Основной набор технологий для разработки клиентской части приложений – тройка языков программирования HTML, CSS и JavaScript.

Backend разработчики закладывают программную логику системы. Они решают, как именно приложение будет передавать информацию, взаимодействовать с базой данных. Сегодня самые популярные языки программирования для back end разработки – PHP, Python, С#, Ruby, Java, Perl.

Программисты, знающие технологии как backend, так и frontend разработки, относятся к full stack разработчикам. Тем не менее, сложно стать по-настоящему универсальным веб-программистом. Как правило, full stack разработчик выбирает один из языков либо для back end, либо для front end как основной и изучает его более глубоко.

Перспективные направления в программировании

Большие данные (Big Data)

Понятие big data означает не только огромные наборы данных, но и технологии для их сбора, хранения и обработки. Развитие big data тесно связано с такими трендами IT, как искусственный интеллект и интернет вещей. Современному программисту полезно знать принципы работы с большими данными, а чтобы специализироваться на этом направлении нужно изучать такие технологии, как Hadoop, Spark, Kafka. 

Искусственный интеллект (Artificial Intelligence – AI)

Говоря про искусственный интеллект (AI), мы имеем ввиду программы, которые способны имитировать умственную деятельность людей, например, обучаться на основе данных и делать логические заключения. Уже сейчас такие технологии улучшают многие привычные вещи и процессы. К решениям с элементами AI относятся чат-боты, голосовые помощники в смартфонах, системы прогнозирования и распознавания изображений. В основе современного AI – алгоритмы машинного обучения и технология глубокого обучения (deep learning) многослойных нейронных сетей. Сегодня нейросети умеют генерировать реалистичные фото людей и воспроизводить естественную человеческую речь. Разработкой искусственного интеллекта занимаются исследователи данных (data scientists) и инженеры машинного обучения. Самый востребованный язык программирования в данной сфере – Python.

Интернет вещей (Internet of ThingsIoT)

Интернет вещей – это целая экосистема устройств, которые взаимодействую между собой через сеть без участия человека. Технологии IoT применяются в «умных домах», промышленности, медицине, логистике и многих других сферах. Например, кондиционер в «умном доме», получая через интернет данные о прогнозе погоды, может автоматически настраивать оптимальный режим температуры в квартире. Программисты могут работать с IoT на аппаратном уровне, то есть программировать микроконтроллеры устройств (системное программирование), или на прикладном – писать программы для управления системой, например, мобильные приложения для пользователей.

Как понять, подходит ли вам программирование

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

Программист=математик?

В Беларуси программирование как специальность часто изучают на математических факультетах. А при поступлении в вуз, на ЦТ нужно сдавать не только математику, но еще и физику. Интерес к этим предметам часто и приводит школьников в программирование. Однако для разработчика важен, скорее, аналитический склад ума, чем глубокие познания в точных науках. Так, в прикладном программировании многие алгоритмы уже реализованы в библиотеках, поэтому можно обойтись и школьными знаниями математики. Но есть направления, для которых нужна более серьезная подготовка: чтобы заниматься машинным обучением, важно понимать математический анализ, а для разработки компьютерных игр и виртуальной реальности (VR) пригодится линейная алгебра.

Как попробовать себя в роли программиста

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

Академия информатики для школьников при БГУИР принимает учеников 7-11 классов. Здесь можно попробовать себя в мобильной разработке под Android, начать писать на языках Java, C++, JavaScript, Python или С#. В среднем курсы рассчитаны на 2-4 месяца.

Образовательный центр ПВТ помимо Минска, работает в Гродно и Гомеле. Для старшеклассников здесь предлагают курсы по веб-разработке (front end) и по программированию для компьютерных игр. Занятия проходят раз в неделю в течение всего учебного года. На курсы принимают учеников 9-10 классов.

Варианты краткосрочных курсов можно найти в минской школе CompAs. Для старшеклассников есть обучение веб-разработке на языках Java, PHP и JavaScript, а также программирование на C, C#, C++.

Если нет возможности посещать учебные центры, то можно выбрать дистанционное обучение. Например, в школе Айтигенио проводятся индивидуальные скайп-уроки по изучению языков Java, Python и JavaScript. Можно найти и бесплатные онлайн-курсы, правда, они будут ориентированы просто на новичков в программировании, а не конкретно на старшеклассников. Например, в образовательном центре ПВТ есть курсы по основам Java.

Как становятся программистами

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

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

Однако IT-cфера развивается динамичнее, чем система образования. Не стоит полагаться только на те знания, которые заложены в образовательные программы. Лучше уже с первых курсов совмещать учебу со стажировками и работой над собственными проектами.

Какие белорусские вузы готовят программистов

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

В 2017 году исследование белорусской IT-cферы показало, что больше трети сотрудников компаний-резидентов Парка высоких технологий (ПВТ) закончили БГУИР. Скорее всего, это связано с тем, что в этом вузе –  больше всего факультетов для обучения на программиста. Например, только в этом университете есть направления, где готовят разработчиков для игровой индустрии, а также перспективная специальность – «искусственный интеллект».

В БГУ получить диплом программиста можно, закончив один из трех факультетов:

В БНТУ будущих программистов обучают только на факультете информационных технологий и робототехники. Здесь подходящие специальности – «программное обеспечение информационных технологий» и «информационные системы и технологии».  

Программирование выбирают абитуриенты с высокими результатами ЦТ, поэтому последние годы на профильных факультетах повышаются проходные баллы. Например, в 2018 году, чтобы поступить на бюджет в БГУИР в среднем нужно было получить 339 баллов, при конкурсе полтора человека на место. Среди всех перечисленных специальностей в 2018 году самый высокий проходной балл – 371 – был в БГУИР на факультете «информатика и технологии программирования», а также в БГУ на специальность «прикладная информатика». А проще всего было поступить на бюджет в БНТУ, куда зачисляли абитуриентов с баллами от 334.

В областных вузах проходные баллы обычно ниже, чем в Минске. Например, в 2018 году для бесплатного обучения в Гродненском государственном университете нужно было набрать от 297 баллов, а в Витебском – от 277 баллов. С такими баллами поступить в перечисленные минские вузы можно только на платное отделение. Однако это не значит, что в столичных университетах уровень образования выше. Можно добиться успехов в профессии, закончив и региональный вуз. Например, Евгений Невгень – создатель приложения MSQRD, купленного Facebook (сейчас Евгений и сам работает в Facebook), учился на факультете математики и информатики Гродненского университета.

Если вы решили стать программистом

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

 

Владимир Степуро
Директор HR-отдела в ScienceSoft