Mlack
@Mlack
iOS dev, *nix lover, userR

Как правильно самостоятельно изучить ЯП?

Добрый день всем хабражителям! Я абитуриент и все экзамены сдал. А так как сейчас уже июль и заняться мне особо нечем я хотел бы изучить какой-нибудь ЯП, так сказать, «для души».

В связи с тем что я немного знаю Си и с++, т.к. в школе у нас был спец.курс по подготовке к олимпиадам, где нам давали алгоритмы в связке с синтаксисом Си а так же чуток ООП (хотя оно не сильно пригодилось на олимпиадах), то мой выбор пал на язык python. Я скачал одну очень неплохую книгу по этому ЯП под названием «Язык программирования Python» (Г.Россум, Ф.Л.Дж.Дрейк, Д.С.Откидач).

А теперь вопрос: как мне проводить самообучение?

Поясню, что имею в виду: когда у меня был преподаватель, он давал ну где-то 50% материала на занятии + остальное он давал домой по своим же конспектам. Дома я изучал только то, что он давал и иногда использовал сайт: www.cplusplus.com. Позже мы отрабатывали это все на алгоритмах и маленьких тестах, которые тоже давал наш преподаватель.

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

Вот поэтому у меня и возник вопрос: как правильно заниматься для максимально эффективного результата? Что нужно делать? Стоит ли заводить себе тетрадь и делать конспекты? Какие задания посоветуете выполнять? Какие «фишечки» использовали при обучении?
  • Вопрос задан
  • 15997 просмотров
Пригласить эксперта
Ответы на вопрос 11
@gleb_kudr
Начать делать какой-нибудь проект, желательно с максимальным охватом областей. Не важно, принесет ли он вам деньги или что-то еще. Главное, чтобы был интересен. А вот по ходу уже периодически читать отдельные главы из книги.
Обучение на практике самое эффективное.
Ответ написан
leventov
@leventov
Основной синтаксис языка можно освоить за полдня. Книга дает кругозор в языке — понимание, где искать ту или иную функциональность. Поэтому заучивать содержание и делать упражнения, на мой взгляд, не обязательно.

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

Более объемные — ИИ для соревнований типа Robocode или aichallenge.org/. Если интересуешься какой-то определенной областью, например графикой или лингвистикой, имеет смысл сделать проект в этой области.

Главное — чтобы задача интересовала сама по себе. Тогда будет дополнительная мотивация изучать язык. Дальше просто: в процессе решения задачи сталкиваешься с трудностями, лезешь в книгу по памяти, или документацию по стандартной библиотеке, или на SO, или в Гугл, в итоге преодолеваешь трудности и быстро прокачиваешь скилл.
Ответ написан
Комментировать
@joneleth
Как тут где-то писали — сделайте какой-нибудь проект по своему хобби. Безпроигрышный вариант.
Ответ написан
Комментировать
Learn code the hard way — хорошее начало, ну и, конечно, практика: придумайте какой-нибудь небольшой проект (или клонируйте существующий — twitter/formspring etc.) — и реализуйте.
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Найти или придумать для себя проект для выполнения реальных задач.
Для меня таким стало написание веб версии домашней бухгалтерии, благодаря этому я достаточно сильно продвинулся в C#, Asp.Net, Html, jquery, Linq, Ms Sql.
Ответ написан
Комментировать
AmdY
@AmdY
PHP и прочие вебштучки
Помимо вышеописанного не забудьте слазить на гитхаб и покопаться там в либах и проектах, чтобы посмотреть как делают другие.
Ответ написан
Комментировать
На мой взгляд, большей проблемой при изучении языка является не изучение синтаксиса, стандартной библиотеки, а «best practices».
Именно поэтому нужно просматривать и работать с чужим кодом.
Ответ написан
Комментировать
mage
@mage
На udacity полно курсов, где в качестве языка программирования для выполнения заданий используется python. Например:
Introduction to Computer Science
Introduction to Theoretical Computer Science
Design of Computer Programs
Algorithms
Ответ написан
Комментировать
ks_ks
@ks_ks
Правильный результат может получиться только тогда, когда есть цель.
Желательно ещё понимать — зачем ты это делаешь. Дальше, повышенный уровень мотивации и энтузиазм ответят на все твои поставленные вопросы и сделают процесс обучения максимально эффективным… так работает наш мозг.) Если четкого понимания — «зачем это все», нет, то любой данный тебе совет отправляется в мусорное ведро. Если питон интересен — ю а велкам, можно прицепиться к уже существующему проекту и учиться на практике.
Ответ написан
Комментировать
Mlack
@Mlack Автор вопроса
iOS dev, *nix lover, userR
Всем большое спасибо за толковые советы и помощь в виде конкретных ссылок! Буду идти примерно так: сначала немного времени потрачу на сам синтаксис и прочие основы языка, а дальше уже сразу займусь каким-нибудь проектом, да возможно даже и тем, что посоветовал юзер выше.
Действительно, без практики особо ничего не запомнишь и ничему не научишься.
Ответ написан
Комментировать
А конспектировать то надо?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы