Как обучиться программированию

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

«Нет ничего невозможного», — говорит Дмитрий, iOS-разработчик компании SFERA. Навыки написания программ может приобрести любой желающий в любом возрасте. Главное — мотивация и упорный труд».

Мы побеседовали с Дмитрием о том, как стать квалифицированным программистом и какие перспективы есть у этой профессии.

1. С чего начать изучение программирования?

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

2. Какие источники для изучения использовать?

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

Следующие книги помогут вам в освоении профессии:

  • «Паттерны проектирования», Эрик Фримен, Элизабет Фримен;
  • «Чистый код», Роберт Мартин;
  • «Совершенный код. Мастер-класс», Стив Макконнелл;
  • «Алгоритмы: построение и анализ», Томас Кормен, Чарльз Лейзерсон;
  • «Искусство программирования» (все тома), Дональд Кнут;
  • «Сколько стоит программный проект», Стив Макконнелл.

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

3. Как выбрать язык программирования?

После освоения основ переходите к языкам Pascal и С++. Далее из множества языков выберите тот, который подойдет под ваши цели и задачи. Создание кодов начинайте с самых простых команд. Затем напишите те программы, которые облегчат выполнение определенных задач в будущем. Занимаясь по 2–3 часа в день, вы сможете начать писать уже через 2–3 месяца. И не переходите на следующий уровень, не разобравшись досконально с каждой мелочью.

4. Как наработать опыт?

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

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

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

На этих ресурсах вы сможете обмениваться опытом с коллегами:

5. Будут ли востребованы разработчики в будущем?

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

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

Чтобы узнать больше о масштабном IT-стартапе SFERA, подписывайтесь на наши страницы в социальных сетях:

Как обучиться программированию
1313
26 комментариев

Глупости какие-то. Так квалифицированным программистом не стать никогда. То же самое, что и учиться в онлайн-школе типа GB или SB.

1) С чего начать изучать программирование?
С программирования. Других вариантов здесь быть не может. Берём простейший код, который понятен будет построчно, изучаем, к чему приводит каждая строчка, пишем что-то своё. После самые простейшие задачи решаем кодом. Не получается – гуглим. Не находится конкретный вопрос – ищем конкретное решение. Это как ГДЗ в школе: если воспользовались, будьте добры для начала разобраться в решении, а не просто переписывать. Просто так в программисты не идут. Придумайте задачу, которая должна быть решена при помощи кода: автоматизация рутины, программа, приложение, бот. По мере разрастания функциями и возможностями, будут появляться новые знания. Да, многое будет непонятно в начале (например, нашли функцию для работы с сетью, но всё, что смогли там сделать – вписать свой URL и параметры, – это замечательно, уже разобрались и в такой мелочи), но постепенно будете возвращаться к своему коду, будете встречать каждый раз в разных вариациях какие-то конструкции, тогда потихоньку начнёте вникать в их суть по мере усложнения требований к своей разработке. Даже если понимаете, как работает функция, но не можете запомнить её – а зачем? Главное, что в будущем будете знать, какая функция нужна, и где её искать. Чем чаще её использовать – тем быстрее она запомнится. Математика нужна, но какая именно? Обычно достаточно математики 6 класса. Так что если в школе было всё до этого момента хорошо – то не о чем переживать. Математическое мышление – это уже другая сторона, здесь нужно по мере прочтения задачи представлять ход её решения, хотя бы пошаговый, без чисел. Тут уж сами, просто нужно больше решать задач, в которых много действий, и одно выходит из другого. Ещё может понадобиться координатное мышление, чтобы не теряться в многомерных массивах – для этого нужно чертить графики, координатные точки и т.п., это 7 класс, алгебра.

2) Какие источники для изучения использовать?
Интернет. Всё. Никаких книг. Книги по программированию – это как минимум прошлое. Чтобы понимать программирование, писать красивый код, нужно писать код и смотреть на код других. Красивый код = понятный, масштабируемый и универсальный код. Всё, что написано в книгах – это от помешанных гиков для помешанных гиков, адекватным программистам там не место. Я серьёзно. Назовите мне компанию, которая использует ПАТТЕРНЫ ПРОГРАММИРОВАНИЯ. Да, знать это желательно, но необязательно, ничего не потеряете. Так или иначе, это всё равно придёт с опытом, рано или поздно.

3) Как выбрать язык программирования?
"Pascal, C++" – отличный разброс. Я, как и многие другие, начинал с Pascal; кто-то начинал с C++; кто-то с Python; кто-то с Basic. Каждый язык хорош в своей области. Хотите писать макросы для офиса – берём Basic; создавать десктопные программы максимально быстро с красивыми формами – берём Pascal и оттуда идём в Delphi (это тот же язык); хотите контролировать каждый байт памяти и иметь низкоуровневый контролируемый доступ к железу – C++ (это игровые движки, очень нативный код (максимально совместимый с железом)), на котором можно писать быстрейшие приложения, очень мощный, но очень сложный для начинающего. Python – для быстрых прототипов (часто используется в спортивном программировании, хакатонах), но очень медленный и очень зависимый от многих факторов и навыков программиста, здесь нужна внимательность. Как выбрать язык – вечный вопрос. Я не знаю. Наверное, под задачи, которые необходимо выполнить. Ведь есть же ещё веб-программирование и даже визуальное программирование.

4) Как наработать опыт?
Разрабатывать проекты, писать код, улучшать код, общаться на форумах, отвечая на вопросы, участвуя в обсуждениях, изучая неизвестные вопросы. На работу берут новичков реже, чем комета Галлея снова пролетает мимо нас. В нормальные студии разработки не будут брать новичков, потому что это затратно по деньгам и времени, его ещё нужно обучать, чтобы он разобрался с внутренними спецификациями разработки, следить за ним. Какие-нибудь компании офисные наймут, может, но программирования там не увидите. Но никогда не нужно сдаваться, вдруг повезёт. habr – туда же, к литературе; StackOverflow – будет попадаться в гугле чаще, чем видите себя в зеркале.

5) Будут ли востребованы разработчики в будущем?
Такие, как интервьюируемый – скорее всего нет. Разработчик, программист – это не про код, это про умение изучить и влиться в незнакомую область за минимум времени; это про умение найти максимально эффективное решение вне зависимости от имеющихся инструментов; это про тех, кто знает, что написать одну строчку в день – это нормально.

12
Ответить

Вы знаете, Дмитрий, является Менеджером Проекта и ведущим специалистом по IOS. Работал преподавателем в университете. Наверное стоит прислушаться к такому уровню специалиста. 

1
Ответить

Актуальны ли эти советы, если есть желание стать iOS/macOS разработчиком?

Ответить

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

Ответить

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

Ответить

Поддерживаю

Ответить

"Качественные коды" - дальше не стал читать.

2
Ответить