Основы программирования: попробовать все и найти свое

Основы программирования: попробовать все и найти свое

Как часто вы совершаете в своей жизни ошибки? Посещала ли вас мысль о том, чтобы вернуться к выбору профессии или профильного образования? Хотелось ли попробовать все и сразу, чтобы определиться уже в процессе? Мы готовы предоставить такую возможность! Если вы решили посвятить свою жизнь программированию, но еще не выбрали направление для развития, рекомендуем к посещению курс по основам программирования.
Сегодня мы поговорим с преподавателем этих занятий Дмитрием Бежецковым.
 

Расскажите немного о себе. Как давно занимаетесь программированием, какими языками владеете?

Профессионально занимаюсь программированием уже 3 года. Считаю, что сейчас нахожусь на уровне middle. Заканчиваю магистратуру в НГУ. Работаю в компании «УниПро». Занимаюсь разработкой программ под российский процессор «Эльбрус», а именно движком для JavaScript.
Программированием начал интересоваться еще в школе. В седьмом классе администрировал школьный сайт, стал писать под web. Первые свои деньги заработал на фрилансе. На них купил себе книги по программированию, чтобы повысить уровень своих теоретических знаний. Мне всегда нравилось программирование, поэтому я решил продолжить обучение в НГУ по специальности «Информатика и вычислительная техника».

Как к вам пришла мысль разработать свой курс и стать преподавателем?

Все началось еще во время учебы в университете. У меня было много хороших преподавателей. Однажды я подошел к одному из них и сказал, что в университетской программе не хватает курса, который помог бы получить полные знания о профессии. Идею поддержали, и для моей специальности дополнительно был проведен экскурс в специальность. Преподавателю понравился результат и он предложил попробовать себя в роли учителя всем желающим бакалаврам. В их числе был я. Параллельно занимался репетиторством. Сейчас я веду семинары по C++ в НГУ на 4 курсе, и для первокурсников мы проводим тот самый экскурс в профессию, который появился 3 года назад.

Почему решил сделать именно отдельный курс дополнительно вне университета? Потому что могу дать в нем знания, не согласовывая программу с деканатом и нормами образовательной программы. Да и обновление материала может производиться сразу как только это требуется, а не раз в 5-10 лет. Конечно, фундаментальные знания живут долго, но технологии и идеи появляются практически каждый день. Поэтому нужно очень быстро подстраиваться. Для этого идеально подходит курс по основам программирования в IT-Академии.

Если вы говорите о постоянных изменениях, то каким вы видите ближайшее будущее программирования?

На самом деле в голову приходят диаметрально противоположные идеи. Если смотреть с технической стороны, то я думаю, что примерно через 10 лет VLIW-процессоры заменят суперскалярные процессоры Intel. В плане технологий акцент будет на встроенные процессоры и FPGA платы, которые можно мгновенно перепрограммировать. Соответственно появятся новые квалификации для низкоуровневых программистов, чтобы можно было поддерживать более быстрые вычисления. Уже сейчас они пользуются спросом, но дальше интерес к ним будет только повышаться.

В любой науке бывают стадии повышенного интереса к конкретному направлению и спада. Если говорить о машинном обучении и JavaScript, то, по моему мнению, они достаточно скоро канут в Лету. Ведь порог вхождения в данную специальность низок, что позволяет каждому второму желающему, если он потратит совсем немного времени, получить неплохой результат. Раз это могут сделать все, значит скоро оно потеряет актуальность.
Я считаю, что войну за web выиграет Google, и все будут писать на Dart’е. Следовательно, будут востребованы программисты, которые связаны с web’ом. Если же в схватке победит Microsoft, то на TypeScript’е. В настоящее время вторая компания опережает первую, но надеюсь, ситуация изменится. Технологии видеостриминга, возможно, поднимутся на новый уровень (Google webRTC). Станут еще больше востребованы специалисты, которые занимаются видеокодеками, видеотрансляциями.

У языка C++ проявятся сильные конкуренты - например язык D. Надеюсь на это в скором времени.

Дмитрий, как вы считаете, почему следует начать именно с основ программирования? Кому этот курс будет полезен больше всего? Каких учеников вы ожидаете увидеть на занятиях?

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

В первую очередь курс по ОП необходим людям, которые вообще не знакомы с программированием или знакомы номинально. Например, пробовали обучаться самостоятельно, что-то смотрели, что-то читали, но общего представления так и не получили или ничего не поняли. В идеале – это вчерашние школьники или студенты 1-2 курсов. Например, они уже начинали писать что-то для web’а. Но им не хватает базы знаний, которая бы пригодилась для дальнейшего развития. Специалисты на уровне junior в большинстве своем считают, что все языки программирования похожи. На занятиях вы сможете получить практику, навыки, знания и опыт. Поймете, что языки отличаются идеями, но имеют общие основы.

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

Итогом курса станет разведка боем. После посещения занятий вы сможете составить для себя осмысленную программу. Я буду рассматривать C++ как наиболее универсальный язык для обучения в настоящее время, но никто не мешает вам переделать все на Java, C Sharp’е или JavaScript’е. 
В любом случае вы получите прокачку мозга, поймете, программирование – это ваше или не ваше, и какая область для вас наиболее интересна. Если нравится математика, шахматы, нравится решать задачи, заставлять компьютер делать что-то за вас, если любите автоматизировать процессы, то определенно стоит прийти на курс и начать знакомство с программированием.

 

Как вы считаете, можно ли провести параллель между характером специалиста и выбранным языком программирования?
 

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

Характер и навыки, прежде всего, должны подходить выбранному направлению, а не языку. И в зависимости от этого направления уже необходимо выбирать язык.

Какие качества человека станут дополнением для развития в программировании?

Я сторонник того, что самое главное – это старание. Считаю, что это ключевая определяющая программиста. Потому что можно быть талантливым человеком, и на начальных этапах тебе все будет даваться легко. Но без стараний и трудолюбия (это ТОП-1) дальнейшего развития не будет. Как это проявляется? В заинтересованности, в том, что человек задает много вопросов. Второе место в списке качеств необходимых программистов я отдаю фанатизму. Считается, что именно фанатики могут добиться успеха. Если что-то не получается, то не бросать, а пробовать снова и снова, изменять подход, дополнительно обучаться и двигаться дальше. И третье – это смелость пробовать что-то новое. Никогда не нужно бояться сложностей. Самое главное начать, а дальше вы втянетесь в процесс.

Почему так много молодежи приходит в программирование?

Мнение о том, что в программирование приходит много молодежи с большим количеством знаний – миф. Да, соглашусь, в некоторых областях программирования возраст специалистов действительно стал меньше. С чем это связано? Раньше, лет 10-15 лет назад, не было Факультетов Информационных технологий. Выпускники мехматов, физфаков доучивались на программистов самостоятельно еще лет 5. В тот момент, когда они раскрылись как специалисты, им уже 28-30 лет. Сейчас благодаря дополнительным курсам, изменениям в образовательных программах, онлайн-университетам люди начинают получать необходимые знания гораздо раньше. То есть теперь после окончания вуза выпускники уже могут программировать на хорошем уровне и даже работать на фрилансе. Вот поэтому и наблюдается «омоложение» специалистов данной области.

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

В процессе обучения и работы я общался с очень интересными людьми, которые работают у нас в Новосибирске и даже за границей. Могу сказать, что по России junior’ам при стандартном рабочей неделе (8 часов в день) платят 30-40 тысяч, middle получает 60-80 тысяч, senior – от 120-150. В Америке можно зарабатывать 8-11 тысяч долларов в месяц.
Если подходить к развитию в профессии правильно, то вам хватит 1-2 года, чтобы вырасти из junior”а в среднего (middle) разработчика.

К чему должен быть готов начинающий специалист? Как он может справиться с трудностями?

Должен быть готов к сомнениям. По началу будет казаться, что все не работает или работает не так, как нужно. Возможно, будут появляться мысли – «А мое ли это вообще?». Будет казаться, что все слишком сложно и запутанно. Иногда такие мысли приходят и ко мне, когда я приступаю к новому проекту. Как с этим справиться? Надо лечь спать, как ни странно. Наутро встать, подумать и постараться решить задачу. Можно повторить этот цикл. Через какое-то время к вам придет понимание того, что поставленный вопрос решен, и это было достаточно легко. Большой путь всегда начинается с маленьких шагов.

Пару советов новичкам от Дмитрия Бежецкова

Поделюсь советами своих преподавателей: «Никогда не извиняйтесь, не берите в команду идиотов, не пишите плохой код и будьте фанатиками своего дела!»

Подписка

Выберите рассылки, на которые вы хотите или не хотите быть подписанным.