Как быстро и эффективно учиться: советы начинающему программисту

6
2521
views

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

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

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

Основы алгоритмизации

Чтобы научиться программировать, необходимо двигаться от простого к сложному, и от основных принципов – к нюансам. А потому имеет смысл строить самообучение по тому же принципу, что и программы в ВУЗах.

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

А новичкам мы предлагаем:

  • Тренируйте мозг. Решайте логические задачки и головоломки. Это тоже – математическая логика. При этом сам процесс увлекателен и воспринимается, скорее, как развлечение.
  • Найдите учебник по булевой алгебре (алгебре логики). Изучите основные логические операции. Попробуйте решать те самые головоломки с использованием методов алгебры Буля.
  • Изучите графические нотации алгоритмов. При этом постарайтесь сразу запомнить основные стандарты и правила. Может показаться, что нет никакой разницы – нарисуете вы квадратик или ромбик в графическом алгоритме. Но на самом деле, лучше привыкать сразу к варианту алгоритма, который смогут быстро прочитать коллеги.

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

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

Первый язык программирования

Первый язык программирования

Здесь все зависит от ваших потребностей. Кто-то начинает учиться с Visual Basic, просто потому, что появилась потребность в создании элементарных макросов. Для кого-то первым языком оказывается C/C++ или современный и столь любимый многими Python. Для некоторых знакомство с кодингом начинается вообще с HTML (хоть сейчас многие профессионалы и скривятся презрительно, так как вполне обоснованно не считают HTML вообще языком программирования). Но все же – бывает и так.

Что важно для новичка:

  1. Язык программирования должен быть «высокого уровня». (попытка освоить Ассемблер без понимания основ программирования заведомо обречена на провал)
  2. Выбирайте подходящий язык для решения поставленной задачи. Какой из них лучше, можно спросить в профессиональных сообществах или почитать в статьях с советами новичкам. Если вы будете учиться и одновременно решать ваши задачи, мотивация к обучению будет много выше.
  3. Избегайте «квази-языков» с русскоязычным синтаксисом. Большинство современных языков имеют сходный друг с другом синтаксис на основе английского, а потому если вы выучите один из таких языков, прочитать код на другом вы окажетесь вполне способны. А русскоязычные варианты почти всегда – потерянное время. (даже если вы планируете программировать только в 1С, все равно – стоит учить английский вариант кода, русским воспользоваться вы потом сумеете, если захотите).

Выбор формы обучения

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

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

Главное: у вас «под рукой» должен быть удобный справочник, где в удобной для вас форме будут описаны основные принципы выбранного языка, а также описываться синтаксис и возможные конструкции.

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

Практика для новичков

Практика для новичков

Если вы хотите действительно быстро выучить язык программирования, практика для вас должна быть на первом месте. Узнали о новом операторе – посмотрите, как это работает. Прочитали о новой конструкции – и снова пробуйте на практике.

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

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

Ставим большую задачу

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

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

При этом ваше обучение будет выглядеть так:

  1. Поставили задачу;
  2. Составили алгоритм;
  3. Разбираемся в средствах языка для реализации каждого шага.

В результате вы, сами не особо замечая этого, освоите синтаксис, разберетесь с «подводными камнями» и важными особенностями языка. Кстати, подобная методика прекрасно работает и при изучении языков опытными программистами – изучаются основы, а с нюансами можно разобраться на практике. Так намного быстрее.

ОПП и другие стандарты

Обязательный этап: ООП и другие стандарты

Объектно-ориентированное программирование (ООП) – это не просто принятые стандарты и «культура кодинга». Для написания действительно больших проектов ООП – осознанная необходимость.

Просто представьте два варианта:

  1. Вы пишете все в общем «теле» огромной программы. А потом начинаете отлаживать огромный кусок кода. При этом ошибка может быть в первых строках, а ее видимые последствия – где-то ближе к финалу. Очень трудоемко, нечитаемо, отладка становится почти нереальным процессом.
  2. Весь ваш код разделен на небольшие «объекты», связанные между собой. Каждый из этих объектов можно отладить отдельно. Просто передаете при помощи нескольких «отладочных» строк на «вход» нужные значения, а на «выходе» контролируете результат. Правда же, так намного проще?

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

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

Не бойтесь ошибаться и спрашивать

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

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

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

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

Не всем нужно учиться программированию

И напоследок немного психологии

Очень многие люди начинают учиться программированию и бросают дело на половине пути с пояснением «видимо, мне это не дано». На самом деле, надо быть совсем законченным гуманитарием, чтобы не суметь выучить хотя бы один язык программирования. Здесь, главное, понимать, зачем вам это надо.

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

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

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

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



6 КОММЕНТАРИИ

  1. Здравстуйте
    у Вас опечатка в статье
    «Обязательный этап: ОПП и другие стандарты» — не ОПП, а ООП должно быть

  2. Спасибо, ребят. Отличная статья, прямо какая-то «добрая»:) Доходчиво, конструктивно, хороший слог копирайтера.

  3. Хорошая статья, напишите пожалуйста, что делать, когда не получается и опускаются руки. Где находить мотивацию?
    Спасибо

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here