Как правильно изучать языки программирования
Автор — Андрей Падалка, преподаватель курса "Программирование С++"
Итак, если вы решили стать специалистом в области программирования, прежде всего вы должны понимать всю серьезность этого шага. К сожалению, большой процент наших студентов очень поверхностно представляет себе, сколько усилий нужно приложить для того, чтобы работать программистом. Нюансы экономики нашей страны наложили серьезный отпечаток на представление молодых людей о работе — купил за десять, продал за двадцать — и уже программист.
Поэтому, давайте я попробую объяснить, все-таки как нужно учиться, чтобы получить достойную работу и чувствовать себя программистом-профессионалом.
Первый вариант — учить язык самостоятельно
Спланируйте свой день так, чтобы вы могли в течение ближайшего года каждый день уделять на программирование не менее одного часа. Иначе вся эта затея растянется очень надолго, хотя бы потому, что для устройства на работу вы должны уже БЫТЬ специалистом, уметь выбирать и свободно пользоваться нужным инструментом для выполнения задания. Для приобретения практического опыта вовсе необязательно устраиваться «за еду» на какую-нибудь мелкую фирму. Достаточно просто много понимать, много писать и разбирать примеры хорошего кода. А для этого нужно выделить время.
Узнайте, какие книжки нужно читать для изучения языка, поскольку немало авторов издают книги ради прибыли и не очень следят за правильностью излагаемого материала (автор был научным редактором одного из киевских издательств компьютерной литературы).
В программировании мелочей нет, но слишком большой поток информации в умных книжках многих пугает. Не пытайтесь с нуля понять абсолютно все, что пишется в книге. Поймите то, что актуально для вас сейчас. Хорошие книжки по программированию перечитываются 2–3 раза. Это нормально. За один раз понял что-то. Потом поднялся выше, прочитал еще раз и понял то, что раньше пропустил или не думал, что это настолько важно.
Постарайтесь заиметь друга программиста, поскольку вы все равно будете сталкиваться с непонятными для вас темами и понятиями и у вас будут возникать вопросы. На них можно получить ответ несколькими способами: потратить кучу времени на поиск ответа в книгах (причем часто ответ на вопрос потребует знаний сразу нескольких тем и наличия нескольких книжек), забить вопрос в гугле и опять же таки потратить кучу времени, или же спросить у друга и быстро получить ответ. Заметьте, последний вариант сэкономит вам очень и очень много времени.
Узнайте адреса серьезных сайтов, где программисты выкладывают свои статьи, рассуждения и самое главное — примеры программ, по которым можно посмотреть, как решается та или иная задача.
Второй вариант изучения языка — на курсах.
Здесь не только остаются в силе все предыдущие правила и рекомендации, но и добавляются новые, позволяющие значительно ускорить процесс обучения. Начнем с того, что вам уже не нужно будет искать друга программиста. Опытный преподаватель (который кроме преподавания еще и работает программистом) не только объяснит вам тему, но и даст пример и задачу, где эта тема очень хорошо показана: изучая инструмент нужно обязательно знать, в каких случаях его нужно применять, а в каких нет. Теперь возьмем такой фактор, как сложность решаемых задач. Книжка не видит текущий уровень человека, который ее читает, а преподаватель имеет в своем арсенале задачи самой разной степени сложности — и для начинающего, и для продвинутого студента, и даст вам именно то, что будет вам под силу.
У нас на курсах вам подскажут и книги, и сайты. Но чтобы ваше время и деньги были использованы с максимальной отдачей, давайте рассмотрим правильный алгоритм вашего обучения на курсах.
Постарайтесь не пропускать ни одного занятия. Это не институт, где можно прогулять пару, а потом списать у кого-то. Наш учебный день насыщен до предела. (Если же вы не смогли прийти, обязательно позвоните преподавателю или товарищу по группе и спросите тему и задание, а еще лучше договоритесь с преподавателем о небольшом индивидуальном занятии.) Познакомьтесь с одногрупниками и обменяйтесь электронными почтами, чтоб в случае, если вы не смогли прийти на пару, вам кто-то выслал примеры и материалы пройденные в классе. В день вы должны заниматься программированием не мене часа (чем больше, тем лучше). Если вы хотите, чтоб вас приняли на работу, вы должны и читать, и учить, и писать, и экспериментировать. Вы же не пойдете к стоматологу, который только книжки читал, как-то получил диплом и не имеет практики.
Нужно обязательно понять все, что преподаватель говорит на уроке, потому что в дальнейшем пойдут темы, которые предполагают знание предыдущего материала и навыки их использования (чтобы понимать, какие инструменты лежат в основе какой-нибудь технологии). Для этого обязательно делайте домашнее задание и если что-то непонятно, а в книжке за 10 – 20 минут не можете найти ответ, сразу записывайте ваши вопросы в тетрадь, чтобы потом в начале урока их спросить. В нашем Учебном центре на занятии вопрос можно задать в любое время. Нам нужно, чтобы вы все понимали и не отставали ни на шаг от курса. На уроке не стесняйтесь сказать, что вы что-то не знаете — здесь все равны. Ваша задача - не отстать от группы.
Плюсы курсов еще вот в чем: когда кто-то задает вопрос, часто оказывается, что спрашивает человек, который уже что-то знает и вопрос затрагивает тему на шаг влево или вправо от того, что объясняет преподаватель. В результате все узнают больше информации. В конце урока вы сможете сохранить на флэшку пример правильного кода, который проверил преподаватель, и вы сможете дома посмотреть, почему в классе это работало, а дома не хочет.
Когда пишите программу, или переписываете пример кода, который дал преподаватель или вообще используете любой не ваш код, внимательно пройдите по всем строчкам кода — вы должны убедиться, что понимаете, как работает каждая строчка. Записывайте не в тетрадь, а пишите код в программе: в тетради можно сделать ошибки, а в программе преподаватель поможет вам их исправить, чтобы вы ушли домой с правильным примером. Не бойтесь экспериментировать. Компьютер не взорвется. Учитесь выводить на экран какие-то данные и анализировать их. Например, что и после чего выводится на экран, получили ли вы то, что хотели, и если нет — то почему.
Аккуратно ведите тетрадь, в которую вы записываете формулировки и правила, которые дает преподаватель. Пишите так, чтоб потом можно было легко найти то или иное правило. Используйте широкие цветные фломастеры чтобы выделить в тексте правила, рекомендации, что означает какая-либо информация компилятора и т.д. Называйте проекты так, чтоб из названия было видно, какую тему в нем рассматривали (например pointers_8 — указатели, восьмой урок).
Учите правила. Программирование сложная дисциплина, и в основе грамотно написанного кода лежит знание и понимание правил изучаемого языка. Здесь мало послушать преподавателя и пару раз прочитать это правило в тетради. Вы должны свободно ориентироваться в них и оперировать ими, чтобы делать логические выводы и находить эффективное решение поставленных задач.
На уроке старайтесь отвечать на вопросы. Вам нужно наработать правильную лексику и терминологию, поскольку на собеседовании вы должны будете ответить на вопрос так, чтоб ваш ответ был однозначный и был правильно сформулирован — там никто не собирается размышлять, что же вы имели в виду. Есть принятая терминология, все нужно объяснять правильными терминами. На уроке не бойтесь и не стесняйтесь отвечать своими словами, преподаватель при необходимости подкорректирует ваш ответ.
Не страшно, если вы сразу не смогли сосредоточиться на курсах и видите, что не все понимаете из того, что было пройдено. Вы можете заказать индивидуальные занятия или вообще пройти курс еще раз, начиная с какого-то урока. Это нормально.
В группе, как правило, возникает элемент соревнования между студентами, а это всегда положительно сказывается на качестве обучения. Когда хочется кого-то победить, не так сказывается усталость после работы или учебы.
Отдельно нужно поговорить об обучении детей.
Сейчас многие родители, заинтересованные в том, чтоб их ребенок получил хорошую специальность, отдают своих детей на курсы. Я имею в виду возраст 15-16 лет. К сожалению, многие слишком рано начинают считать своих детей взрослыми и ответственными людьми. Это родители понимают, что нужно серьезно учиться, а многих детей в этом нужно еще постоянно убеждать. Ребенок должен хотеть учиться, понимать, что это ему будет нужно, и что на учебу нужно уделять много времени. Только тогда будет положительный результат от учебы. Иначе ваш сын или дочь будут, просто повинуясь вам, без желания приходить на пары, и придумывать очередную причину, почему у них нет домашнего задания. Преподаватель контролирует вашего ребенка в классе, но он не может контролировать его вместо вас дома. Поэтому, отдавая ребенка на курсы, побеспокойтесь, чтобы он, по меньшей мере, час в день уделял программированию и был мотивирован. Звоните и интересуйтесь, как он учится. Один преподаватель без помощи родителей вряд ли сможет доказать вашему ребенку, что нужно готовиться зарабатывать деньги, а не рассчитывать на то, что мама с папой всю жизнь будут решать его финансовые проблемы. Объясните ему, что многие другие способы зарабатывания денег, которые есть у него в голове, могут оказаться иллюзиями.
Итак, плюсы самостоятельного обучения — возможная экономия собственных денег. Возможная, потому что при самостоятельном изучение языка, если вы после 6–8 месяцев обучения не устроились на работу, есть смысл в стоимость обучения включать деньги, которые вы могли бы заработать, если бы пошли на наши курсы. К тому же самостоятельное обучение подходит только очень организованным людям.
Плюсы обучения на курсах:
Обучение на курсах подходит абсолютно всем, кто влюблен в программирование (у нас есть студенты, которым 15 лет и есть те, которым уже за 50), умеет мыслить логически и имеет математические склонности. Обучение в группе — это получение большого количества систематизированных (то есть разложенных по полкам и по степени важности) знаний за довольно короткий промежуток времени, общение и получение массы новых идей и информации о ситуациях и условиях на работе, практики прохождения собеседований, как от друзей по группе так и от преподавателя. Наши преподаватели работают на результат, поэтому к ним часто звонят и приходят в гости студенты после устройства на работу и рассказывают о всех новых тенденциях и используемых технологиях.
Вот эти рекомендации помогут Вам существенно сократить не только время изучения языка, но и получить максимальную отдачу от вложенных в обучение денег. Для наших студентов срок обучения с нуля до устройства — в среднем 6–8 месяцев. А при наличии начальных навыков программирования наши студенты устраиваются на работу уже в конце Профессионального курса.