Как проверить, сможешь ли ты научиться программировать? February 21st, 2016

Когда я поступал в институт, то планировал идти учиться на программиста. Уже тогда в 90-е это было очень перспективное направление. Компьютеры только только начали массово появляться в быту, бизнесе и производстве. Но скорость этого процесса была настолько велика, что никто не сомневался в том, что программисты будут "в цене".

Многие хотели заниматься программированием, но даже та скудная информация, которую предоставляли в школе по этой теме давала понять что это направление не все смогут осилить. На специальность "программирование" я так и не прошел по баллам, но обучаясь на "автоматизации" самостоятельно и с помощью друзей довольно плотно занимался изучением предмета и практиковался как только мог. Как оказалось не зря. Жизнь меня все же свела достаточно плотно с программированием на базе "1С".

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

Следует отметить, что уже который год профессия программиста является желанной и высокооплачиваемой. Если же говорить о том, кто из программистов наиболее востребован работодателями, то больше всех вакансий в этом году - для . Их более половины от общего количества вакансий. В большим отрывом идут далее программисты. NET и JAVA, а в пятерке лидеров - Mobile Development и C++.

Вот графически это представлено так:

Несомненным и постоянным лидером является , а вот программирование показывало отличную динамику в прошлом году, но за последние пару кварталов утратило свои позиции, пропустив вперед стремительно набирающее популярность.NET программирование.

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

Не сомневаюсь, что и программисты других направлений не сидят без дела даже в кризис. А все потому что эта тема везде. Ну вот буквально везде, даже в вашем Андроиде или IOS на смартфоне.

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


  • Освоите фундаментальные основы программирования;

  • Познакомитесь с основными терминами и понятиями;

  • Научитесь разрабатывать алгоритмы;

  • Получите реальный опыт разработки;

  • Сможете писать простые программы;

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

  • Сможете четко определиться с направлением ваших интересов;

  • Получите материалы и инструкции для дальнейшего развития

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

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

Все мы - источники информации. Каждый день мы посылаем миру великое множество сигналов о своем настроении, самочувствии, статусе, работе или учебе, увлечениях и еще о многом другом. Умение «считывать» людей - очень ценный навык. Вспомните хотя бы того же Шерлока Холмса! Из множества деталей, на которые обычный человек не обратит внимания, он создавал подробные портреты людей, которых никогда не видел.

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

1) Как Вы считаете, негативный опыт – это:

а) жизненный урок, который делает Вас мудрее.
б) ошибка, о которой следует забыть как можно скорее.

2) Внимательно ли Вы слушаете то, о чем вам говорят?

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

3) В путешествии или во время интересной экскурсии Вы:

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

4) Как вы выражаете свои чувства?

а) Вы свободно выражаете свои чувства, будь то любовь, симпатия или, наоборот, неприязнь.
б) Ощутив наплыв чувств, Вы редко их выражаете, чаще всего оставляете при себе.

5) Как Вы относитесь к людям?

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

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

а) При первых же встречах с этим человеком.
б) Начинаю замечать, после того как буду неприятно удивлен их поведением!

7) О чем в первую очередь Вы вспоминаете, когда нужно кого-нибудь охарактеризовать?

а) О манере человека вести себя, стоять, ходить, говорить и т.д.
б) О том, что слышали об этом человеке из разных источников.

8) Как быстро Вы находите нужную вещь или решение?

а) Вам часто удается найти что-то первым.
б) Вы часто «пасете задних».

9) Когда Вы бываете в приподнятом настроении, то:

а) можете звонко смеяться, напевать или громко разговаривать.
б) чаще всего просто нальете себе чашечку чая или съешьте вкусную конфету.

10) Как Вы справляетесь с трудностями?

а) Вы знаете, что способны выдержать любой удар судьбы.
б) Когда происходит что-то неприятное, Вы часто боитесь, что не сможете это пережить.

11) Что делает Вас счастливым?

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

Эксперты компаний Acronis, КРОК, Mercaux Inc., «СТРИМ», ICL Services и Bell Integrator рассказали, по каким признакам определяется «предрасположенность» к программированию. Что же делает вас потенциальным разработчиком?

У вас математический склад ума

«По своей сути программирование очень похоже на „инженерные специальности“, человек с „математическим складом ума“ может с одинаковым успехом заниматься проектированием колесных машин либо написанием кода. Если из этого исходить, то один из главных признаков того, что у человека есть талант к программированию - это наличие аналитического склада ума, то есть склонности к изучению, анализу и выстраиванию в „законченные формы“ любой информации, которую он получает» - говорит Антон Енакиев, Вице-президент Acronis по разработке .

«Нужно дружить с математикой, как говорил один русский ученый, „она ум в порядок приводит“» - соглашается Сергей Стрелков, руководитель направления собственных разработок компании КРОК .

Любимый вопрос новичков или «насколько программисту нужно знать математику?»

«„Математический склад ума“ в контексте программирования вовсе не синонимичен типичному представлению об „ученом-математике“, которых обычно изображают в фильмах. Программист - это не Рассел Кроу в роли нобелевского лауреата Джона Нэша , погруженный в цифры и постоянную аналитику. В 90-95% своей работы программисты используют только базовый математический аппарат, и лишь в 5-10% задач необходимы глубокие знания математики. Поэтому, мне кажется, что нет особого требования к наличию чересчур глубоких познаний в теории графов или теории вероятности для программиста, но это всегда будет считаться плюсом» - считает Антон Енакиев, Вице-президент Acronis по разработке .

Какая именно нужна математика рассказывает Алексей Светлов, руководитель отдела разработки технического департамента ООО «Стрим » : «Основа программирования - дискретная математика . И хороший программист должен любить и понимать этот предмет. Это база для развития. Математика дисциплинирует человека и учит искать рациональный выход из любого положения. Иначе любая нестандартная ситуация поставит программиста в тупик и он, не найдя ответа на всех известных ресурсах, сложит руки и распишется в своей беспомощности».

«Можно не знать досконально теорию вероятностей и высшую математику, но линейная алгебра должна быть неотъемлемой частью мышления в решении большинства задач или „записана на подкорке мозга“ (как говорят некоторые учителя) - это врожденная грамотность, но в математическом смысле» - считает Воротников Денис, ведущий веб-программист Mercaux Inc .

Вы ленивы

«Хороший программист должен быть ленивым, - так говорил один наш преподаватель в университете. И это правда! Потому что, чем меньше программного кода выполняет поставленную задачу, тем обычно гениальнее он написан. А ленивому программисту лень писать много кода - он будет искать способ, как сделать меньше работы с тем же результатом» - объясняет Алексей Светлов, руководитель отдела разработки технического департамента ООО «Стрим» .

Вы любите решать нестандартные задачи

«Не стоит забывать и о том, что программирование в большой мере творческая профессия. Несмотря на всю четкость алгоритмов и следованию гайдлайнам (правила программирования на каком-либо языке), специалисту этой профессии очень часто приходится придумывать гармоничные решения для реализации нестандартных задач. Стоит учесть, что речь идет о специалистах, разрабатывающих современные программные продукты для широкого круга пользователей, потому как в некоторых областях есть специфика, которая требует четкого следования определенным правилам и где нет места творческому подходу - например, низкоуровневое программирование на языках, близких к базовым» - объясняет Воротников Денис, ведущий веб-программист Mercaux Inc .

Альтернативный экспресс-тест на склонность к программированию

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

«Уверен, что добиться успеха в том или ином виде деятельности можно только упорным трудом, который всегда приносит должное вознаграждение. Разработка софта - не исключение. Если такая работа продолжает радовать, если хочется еще что-то поделать „для себя“ - поисследовать, изучить что-то новое - признаки таланта налицо.» - убежден Сергей Стрелков, руководитель направления собственных разработок компании КРОК .

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

Начало усердной работы: профессия « ».

Вам должно не просто нравиться программирование - вы должны болеть этим. Чтобы достичь успеха, нужно быть немного фанатиком своего дела, как Никола Тесла или Ричард Докинз.

Спросите себя, почему вы хотите стать программистом. Если ответ - «Это модно» или «Чтобы заработать деньги», то вам лучше заняться чем-нибудь другим. Нет ничего ужаснее, чем ходить на работу просто потому, что надо.

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

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

Умение проявлять гибкость

Одно из ключевых качеств для программиста - это системное мышление. Быть технарём мало. Важно быстро вычленять главное, уметь дробить и синтезировать задачи и просчитывать всё на несколько шагов вперёд.

Без системного подхода вряд ли получится овладеть несколькими языками программирования.

Работодателю на заметку: эксперт в С++ или Java - это здорово, но ещё лучше, если программист, специализирующийся на том или ином языке, разбирается в остальных, знает, как устроен не только back-end, но и front-end.

Современный программист должен проявлять гибкость мышления. Без неё невозможно ориентироваться на результат и смотреть на продукт глазами пользователя.

Готовность обучаться

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

  • Читайте книги по программированию.
  • Подписывайтесь на блоги известных кодеров.
  • Обменивайтесь опытом с коллегами в специализированных сообществах.
  • Посещайте тематические конференции.
  • И, конечно же, смотрите онлайн-курсы.

Подспорьем послужит сервис GeekBrains.ru. Там вы сможете совершенствовать навыки кодинга на Python, PHP и других языках, с которыми работаете, и прокачивать сопутствующие скиллы. Например, в области системного администрирования, SEO или SMM.

Планирование

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

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

Вы должны мастерски управлять своим временем, грамотно распределять ресурсы и расставлять приоритеты. Это называется планированием.

Умение работать в команде

Почему программисту так важно следить за временем? Потому что он не один. От своевременности его действий зависит работа большого количества людей: дизайнеров, менеджеров, маркетологов.

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

Работодателю на заметку: предложите программисту-стажёру провести небольшую самопрезентацию перед коллегами - поймёте, нет ли у него проблем с общением.

Человек, испытывающий трудности с коммуникацией, не командный игрок. Он не объяснит коллегам задачу и не поймёт фидбэк.

Умение быстро входить в состояние потока

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

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

А что нужно вам, чтобы войти в состояние потока? Изучите одноимённую книгу Михайя Чиксентмихайи и выработайте свой алгоритм.

Терпеливость

Написать код - полдела. В работе программиста много рутины: проверка кода, поиск и устранение багов и - самое ненавистное - правки. Это требует усидчивости и терпения.

Простой тест: выберете один из GeekBrains и пройдите от начала до конца. Выполните все задания не халтуря. Если справитесь, то с настырностью (в лучшем понимании этого слова) у вас порядок. А как насчёт стрессоустойчивости?

Умение справляться с трудностями

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

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

Хороший программист не пасует перед трудностями. Даже если на первый взгляд проблема не имеет решения, попытайтесь его найти. С этого начинаются инновации.

Здоровая порция лени

Ларри Уолл, создатель языка программирования Perl, в своей книге называет три важных для программиста качества:

  • высокая самооценка;
  • нетерпеливость;
  • лень.

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

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

Амбициозность

Плох тот программист, который не мечтает стать начальником IT-отдела или запустить стартап. Амбиции - рычаг, приводящий в движение остальные шестерёнки качеств, из которых состоит крутой кодер.

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