(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

[Перевод] Как я читаю книги по программированию

Источник: habrahabr
AlexBonel

Я получил образование по специальности "Электротехника" и единственными языками программирования, которые мы изучали были C/C++, ассемблер и Matlab. После того как я посетил Startup Weekend, я понял, что информатика и разработка программного обеспечения мне небезразличны и решил погрузиться в эти области с головой. Также я осознал, что мне требуется изучить еще несколько языков программирования, помимо тех, которые я изучал в университете.

За прошедшие полтора года я начал изучать Java (для Android), а также Python, JavaScript, HTML и CSS (для web-разработки) и выявил для себя, что лучший способ изучать язык программирования, разбирая книгу или туториалы, - читать все по три раза! Да, именно по 3 раза!!! Чтение нового материала подобным образом, хорошо помогло мне понять новые языки программирования и концепции.

Первое чтение

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

Второе чтение

Во время второго прочтения материала, я приступаю к написанию кода. Чаще всего, я переписываю каждый пример из какого-либо раздела. Основной причиной, по которой я сперва прочитываю раздел, а затем возвращаюсь в начало и приступаю к написанию кода, является приобретение понимания того, о чем написан раздел и что может/должен делать код. В этот момент, я ясно понимаю, что происходит. Я не просто вслепую, переписываю код, в ожидании получить последующие разъяснения относительно того, что он делает в следующих параграфах, чтобы затем вернуться и начать чтение заново. Печатая код, я стремлюсь понять синтаксис языка.

Третье чтение

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

И еще кое-что...

Этот метод сработал для меня при изучении Java, Python и JavaScript. Иным хорошим способом изучить языки программирования или какие-то концепции является реализация персонального проекта. Так что, например, если Вы хотите лучше понять принципы построения графического интерфейса пользователя или реализации компьютерной графики на Java, попробуйте написать свои "Шахматы", это повлечет за собой Ваше обращение к книгам по графике, анимациям, GUI, событийно-ориентированному программированию и т.д.

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

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

Примечание от переводчика:

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

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

P.S.

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

Для Web-разработки:
-Head First JavaScript by O'Reilly
-Think Python by Allen Downey
-the Django book
-The Art & Science of CSS

Другие
-Beginning Android Games - Mario Zechner
-Thinking in Java - by Bruce Eckel

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

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 15.01.2013 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Kerio Operator - Server (incl 5 users, 1 yr SWM)
Bamboo
NERO 2016 Classic ESD. Электронный ключ
Microsoft 365 Business Standard (corporate)
Panda Gold Protection - ESD версия - на 1 устройство - (лицензия на 1 год)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Компьютерные книги. Рецензии и отзывы
Один день системного администратора
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Отличается ли ДрифтКазино от беттинга? (23)
Друзья, давно заметил, что на Дрифте уже несколько месяцев во всю рекламируется и предлагается...
 
Особенности покупки программного обеспечения - легальный софт vs. кряки/crack, keygen и пр. (4)
А Linux не пробовали? Там ЛЮБОГО добра хватает :) Без всяких кряков, кейгенов и т.д. При этом...
 
Создавая свой веб-сайт, не превращайте его в призрака (3)
Если автор имел что сказать, то почему он этого не сказал. Если не имел, то с какой целью он...
 
Игровые автоматы на настоящие деньги (3)
Только играя в интернет-заведении с лицензией...
 
Детейлинг центр (1)
Ездили в отпуск в Москву, сломалась выхлопная система - отремонтировали здесь:...
 
 
 



    
rambler's top100 Rambler's Top100