LINUX.ORG.RU

Изучение ЯП - методики

 зубреж, ,


0

2

Всем привет. Снова я всех вас достаю своими вопросами. Но, так как считаю, что здесь есть вполне грамотные люди хочу спросить вот, что:

- Как именно нужно учить ЯП?

1. Просто читать книги, смотреть код и стараться его осознать и понять. Так и постигнем Дао C++.

2. Читая книгу - конспектировать в тетрадь часть материала.

3. Сразу брать быка за рога - стараться писать код, что не ясно открывать книгу и в режиме real time изучать.

4. Я что-то не так делаю?

Какой правильный подход? Как лучше запомнить?

Ответ на: пока особых сдвигов нет от muteki_okami

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

Хотя перед началом чего бы то ни было полезно пролистать книжку для ознакомления.

schizoid ★★★
()
Ответ на: комментарий от Deleted

А какую бумагу использовал? Я однажды распечатал книжку Юрова по ассемблеру полностью на обычной бумаге, в итоге был очень сильно удивлен ее толщиной и весом.

trex6 ★★★★★
()
Ответ на: комментарий от Deleted

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

Да и с библиотекам разбиратся будет в разы проще.

trex6 ★★★★★
()

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

Knopka
()
Ответ на: комментарий от trex6

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

Самое длинное, что печатал - Алгоритмы: построение и анализ (Кормен, Ривест, Лейзерсон, Штайн).

Deleted
()
Ответ на: комментарий от trex6

Я бы поспорил. Конечно, без практики ничего в итоге не получится, но прочитав книгу _до конца_ можно сразу же начать воплощать задачу, используя _все_ преимущества языка (ненужные вещи даже после прочтения книги можно продолжать не исопльзовать).

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

Deleted
()

Как именно нужно учить ЯП?

Желательно простые и достаточно непохожие друг на друга.
Вот пример языков: си, го, lua, хаскель, эрланг, tcl, forth, factor, curry, ruby...

Дао C++

Сомнительно. 10 простых языков лучше, чем один монстр.

quantum-troll ★★★★★
()
Ответ на: комментарий от Deleted

после прочтения будут затыки даже с написанием простейшего кода

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

trex6 ★★★★★
()
Ответ на: комментарий от note173

Многие классики (Макконели, Брукс и др.) отмечали в своих книгах, что «красота» кода коррелирует с его «правильностью». А если вы привыкли писать кое-как и лишь бы запустилось и заработало, то с высокой долей вероятности в вашем коде встречаются:
1. Переменные типа x1, x2, tmp1, tmp2.
2. Несогласованные куски, написанные в разные периоды времени и плохо согласующиеся друг с другом.
3. Куски программы, которые никто не понимает и они «просто работают». Ситуации, когда они ведут себя неверно при допустимых входных данных описаны в комметариях, но никто не решается это исправлять.
4. У вас есть несколько типов/классов, которые отображают одну и ту же сущность.
5. Не обработанные результаты выполнения функций, которые могут сигнализировать об ошибке выполнения функции.
6. Архитектура системы никогда не продумывалась досконально, каждый программист просто дописывал нужный ему кусок.

Ну и прочие некошерные вещи, на которые я в свое время уже достаточно насмотрелся.

trex6 ★★★★★
()
Ответ на: комментарий от trex6

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

note173 ★★★★★
()
Ответ на: комментарий от trex6

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

Хороший вариант, в принципе.

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

Правильные либы бросают исключения при ошибках, и тебе трудно будет их проигнорировать. Одна только стандартная либа C++ не такая, как все.

Deleted
()
Ответ на: комментарий от Deleted

Qt не бросает исключения. Все либы, написанные на С (тысячи их), с высокой долей вероятности тоже не выбросят исключение.

P.S. boost бросает исключения?

trex6 ★★★★★
()

Правильный подход: 1+2 и плавно приступать к 3.

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

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

И только после этого уже браться за какую-нибудь задачу. Выдуманную с потолка или поставленную кем-то — не суть важно.

blexey ★★★★★
()

Читать сначала книгу/tutorial, можно не до конца, но чтоб основательно вьехать, набивая примеры в редакторе и выполняя их. Потом побыстрее постараться сделать что-то на данном ЯП реальное, применить где-то, ибо иначе быстро забудется.

После четвертого-пятого языка (в зависимости от того, насколько разными были эти самый изученные языки) проблемы вообще такой стоять не будет, изучение нового языка будет легким и естественным процессом, не отнимающим много времени и сил.

satanic-mechanic
()
Ответ на: комментарий от ados

Как вариант отвечать на тупые (и не очень) вопросы на форуме.

fixed

theNamelessOne ★★★★★
()

Пацаны учат английский и Java + Oracle, а ты тут рассусоливаешь на тему как бы лучше тебе прочитать книгу.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.