?

Log in

No account? Create an account
Компьютерно-лингвистическое - Журнал Витуса. — LiveJournal
[Друзья] [Свежие записи] [Dreamwidth] [Фото] [Тексты] [Друзья Ирины] [Матерные писатели] [Сообщества] [3 круг]
November 30th, 2007
02:58 pm
[User Picture]

[Link]

Previous Entry Share Next Entry
Компьютерно-лингвистическое
Пришла мне в голову мысль, что "современные программисты" учат языки программирования примерно так, как учат иностранные языки матросы торгового флота - что-то перехватить у более опытных коллег, что-то - на опыте, набивая синяки и шишки (в случае матросов - часто в буквальном смысле) в процессе живого общения.

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

Мне приходилось общаться с людьми, которые предпочитают "Perl Cookbook" Camel Book-у. Первая книга - это "военный разговорник", для людей изучающих язык первым методом. А Camel Book - как раз систематическое изложение. Лично мне, когда исчерпался запас знаний, почерпнутых из этой книги, потребовалась уже "Пантера".

Но вот в чем беда - для некоторых "мейнстримовых" языков по-моему, просто нет учебников, по которым бы их можно было учить привычным мне способом. Скажем, мне пока не удалось найти такой учебник по client-side скриптингу в Web. Все книги по Javascript, которые я видел, были именно "военными разговорниками", сборищами готовых рецептов.

Tags:

(90 comments | Leave a comment)

Comments
 
Page 1 of 2
<<[1] [2] >>
[User Picture]
From:vashik
Date:November 30th, 2007 12:12 pm (UTC)
(Link)
[User Picture]
From:spb_nick
Date:November 30th, 2007 12:14 pm (UTC)
(Link)
О, спасибо :)!
Должно быть не сильно я искал :)
Но предпочту по-английски прочитать.
[User Picture]
From:spb_nick
Date:November 30th, 2007 12:13 pm (UTC)
(Link)
Ага, я вот тоже хотел по JavaScript'у найти что-нибудь приличное. Но не нашел.
[User Picture]
From:shaplov
Date:November 30th, 2007 12:26 pm (UTC)
(Link)
Ну не знаю... Я например учусь новому только читая чужой код. По другому не получается. Не могу... :-/
[User Picture]
From:arilou
Date:November 30th, 2007 12:31 pm (UTC)
(Link)
Ага. Помню, как-то тоже отследил у себя, что бывает, когда язык "применяешь для реализации" какой-либо идеи, не факт ещё что для него подходящей. А бывает, и оно куда приятнее, когда начинаешь уже "думать на этом языке". С перлом это было особенно забавно, когда сначала он воспринимался именно как удобное средство, потом, видимо как раз по ходу включения режима "думания на языке", ощущение сменялось на восхищённо-офигевшее "Ну и изврат!" (или точнее "насколько ж извращённонеобычно надо мыслить, чтобы эдакое измыслить"), а уже затем этот "изврат" начинает казаться вполне естественным и логичным. :-)

А с лиспом, помню, как меня возмутило существование PROGN. Вроде уже мысли (по ходу чтения книги) настроились на лад функционального программирования, и тут - БАЦ! Прямо посреди этого цветника лежит кирпич "старого доброго" процедурного стиля. Как овощной винигрет (который мне равится) прямо посреди вкусного кремового торта (тоже нравится, но не одновременно же!).

Что же до Javascript... У меня есть ощущение, что именно "военые заговорники" и являются самой естественной формой обучения ему. Он для таких заговоров и создавался IMHO. Это как Знаки у ведьмаков - ещё не настоящая магия, а такая вот магическая приправа драке с монстром.
[User Picture]
From:spb_nick
Date:November 30th, 2007 12:50 pm (UTC)
(Link)
> У меня есть ощущение, что именно "военые заговорники" и являются самой естественной формой обучения ему.
Ага, и мне так кажется. Особенно если учесть что реализации разнятся заметно.
[User Picture]
From:potan
Date:November 30th, 2007 12:34 pm (UTC)
(Link)
На сколько я понимаю, за JS культуры нет. Язык создавался для отладки Java, потом его стали встраивать в HTML, а потом он эволюционировал вместе с вебом в основном за счет конкуренции между браузерами. Примерно как пхп, только с вложениями со стороны крупных корпараций.

Сейчас уже пытаются транслировать в ставший стандартом JS нормальные языки. Может стоит посмотреть на эти разработки?
[User Picture]
From:vitus_wagner
Date:November 30th, 2007 12:43 pm (UTC)
(Link)
Что самое интересное, на мой взгляд, с одной стороны, отсутствие "культуры" в твоем понимании не является препятствием для создания систематического курса. Ну будут в этом курсе отсылки к истории эволюции языка. Ну так и в естественных языках их есть, и в Perl, парадигма которого минимум пару раз менялась за время его существования, тоже.

С другой стороны, определенная логика за JS всё же есть. Я её нюхом чую. Есть разделение на собственно язык и объектную модель с которой он оперирует. В этой объектной модели выделяется внутренняя для языка часть и объекты предоставляемые окружением, в котором он работает (всякие там document, window etc. А JScript в WSH - там совсем другая объектная модель в этой части). Естественно, что эта объектная модель эволюционировала с развитием браузеров. Но эта эволюция вполне обозрима и описыеваема.
(Deleted comment)
(Deleted comment)
[User Picture]
From:jerom
Date:November 30th, 2007 12:38 pm (UTC)
(Link)
"Пантера" - переведи, пожалуйста
[User Picture]
From:vitus_wagner
Date:November 30th, 2007 12:46 pm (UTC)
(Link)
[User Picture]
From:aceler
Date:November 30th, 2007 12:40 pm (UTC)
(Link)
JS - это несколько языков в одном. Это как языки инопланетян - общую сущность уловить можно, но инопланетяне с планеты IE поймут тебя так, с планеты FF - иначе. На более редких планетах WebKit или Opera вообще все свое.
[User Picture]
From:vitus_wagner
Date:November 30th, 2007 12:47 pm (UTC)
(Link)
Ну нет. Различия между этими "планетами" на уровне "С Масквы, с пасаду, с калашного ряду" vs "Вологодская корова зободала поровоз"
[User Picture]
From:vadiml
Date:November 30th, 2007 12:50 pm (UTC)
(Link)
Camel прочёл за один заход и до сих пор пользуюсь как справочником, но её данных сильно уже не хватает, всё высматриваю perldoc
а Cookbook тоже как-то не пошла, я в ней не увидел ни чего нового.

А у Вас ссылки на Пантеру нет? её я не читал
[User Picture]
From:vitus_wagner
Date:November 30th, 2007 01:20 pm (UTC)
(Link)
Выше по треду я эту ссылку уже давал.
[User Picture]
From:as_pushkin_by
Date:November 30th, 2007 12:54 pm (UTC)
(Link)
Потому что методически – это не enterprise. Сейчас ведь ценят в основном скорость разработки, так что "военные разговорники" нынче в моде.
[User Picture]
From:tolikl
Date:November 30th, 2007 12:57 pm (UTC)
(Link)
Сейчас я этим не занимаюсь, и ссылки прямо под рукой нет (но наверное еще поищу). Но у меня оставила хорошее впечатление именно ореллевкая книга по жаваскрипту. Именно систематичное изложение.
[User Picture]
From:yarikas
Date:November 30th, 2007 12:59 pm (UTC)

Хорошая аналогия!

(Link)
Витус, а Вы пробовали разговаривать тем иностранным языком, который Вы учили в школе систематически, с носителями?
Вот приблизительно это и происходит в мире разработки ;)

Проблема старения информации при быстром мутагенезе.

PS: По javascript'у выше уже привели "правильную" книгу.
[User Picture]
From:vitus_wagner
Date:November 30th, 2007 01:21 pm (UTC)

Re: Хорошая аналогия!

(Link)
Ну, надо сказать что из всех иностранных языков я где-то как-то могу разговаривать только на том, который учил в школе систематически (английском). На всех, что пытался изучить по "военным разговорникам" (немецком например) разговаривать так и не научился.
From:lazyreader
Date:November 30th, 2007 01:06 pm (UTC)
(Link)
А главное - эти люди (в отличие от вас :) совершенно не переживают о том, что они не знают культуры, стоящей за языком. Они, наверное, даже и удивиться могут: как так, за языком - какая-то вдруг культура? Это же всего лишь буквы, чтоб компьютеру задание задавать!

Это, в общем, женский подход. Я иногда и молодёжь мужского пола вижу, таких вот, но вообще такая практичность - она женская.

Это, кстати, известная разница между mappers и packers - сама по себе культурная.
[User Picture]
From:nasse
Date:November 30th, 2007 02:35 pm (UTC)
(Link)
? Практичность типа "забить на бэкграундную культуру - женская"?
[User Picture]
From:blacklion
Date:November 30th, 2007 01:13 pm (UTC)
(Link)
(1) Давай разделять JavaScript и "учебник по client-side скриптингу в Web.".
(2) Client-side скриптинг в Web — это любой язык + DOM. Да, во всех браузерах разом есть только JavaScript, но это техническая деталь. Для изучения CS скр. в Web надо изучать DOM, а не языки.
(3) JavaScript отлично изучается по своему стандарту. Если ты технарь, конечно — он ОЧЕНЬ формальный. Зато мозги прочищает враз.
(4) DOM изучается, опять же, (surprise!) по стандарту от w3c :)
(5) Дальше начинаются технические детали несоответствия браузеров стандарту. И вот-тут то и пригодится разговорник, где всё расписано про особенности.
[User Picture]
From:vitus_wagner
Date:November 30th, 2007 01:24 pm (UTC)
(Link)
Стандарты - это всё же reference, а не guide. Изучить JavaScript (ECMAScript) по стандарту еще можно. Он достаточно компактный, чтобы весь уместился в голову в несистематизированном виде, и система уже там выстроилась. А вот с DOM и CSS у меня так не получается. Тем более что начинается смешение с куда более прямой и логичной XML DOM и когнитивный диссонанс, когда при первых же экспериментах натыкаешься на несоответствие браузеров стандарту.

Возможно, если прижмет и я дня два-три потрачу на изучение этого добра по стандарту методом погружения - получится. Но пока такой необходимости у меня не было.
[User Picture]
From:vnaum
Date:November 30th, 2007 04:30 pm (UTC)
(Link)
Так ведь и программирование нынче такое.
Важнее уметь быстро материться, а не правильно говорить на латыни...
[User Picture]
From:taris_marh
Date:November 30th, 2007 04:47 pm (UTC)
(Link)
С JavaScript вообще всё плохо. Применительно к web-программированию проблема заключается в том, что просто не существует стандарта на внутренюю сруктуру браузера с точки зрения скрипта. У каждого браузера - своя.
My Website Powered by LiveJournal.com