見出し画像

文化人類学専攻院生、プログラミングを学ぶ

プログラミングの学習本を「コンピューターの民族誌」として読む女のプログラミング学習記録。

「プログラミング」の世界は、文系の私が軽々しく足を踏み入れてはいけないような、数学や機械に詳しい人のみに許された絶対領域だと思っていた。

何かを専門として大学や大学院に行くと、文理の区分なんてナンセンスで、それぞれの分野で誇りを持って学ぶのが素敵な姿勢だということはなんとなくわかってくる。
私も文学部を卒業して、今は文化人類学専攻で儀礼の研究をしている、いわゆる「文系」の院生だけれど、自分の研究を文理で区別したことはない。文理の区別をしたところで特に何も生まれないなと思う。生まれていたらごめんなさい。

それでも、高校の文理選択で「数学は苦手だ」とはっきり意識したことや、コンピューターなどの機械に詳しい理系学生と話して本当にチンプンカンプンで情けなくなったことなど、文理の区分を感じる場面で育成された、いわゆる「理系」の学問領域に対する「文系」としての苦手意識は強く残っている。

そんな人間がなぜ、壁を感じていたプログラミングを学ぼうと思ったのか。それは意外にも自分の研究領域との共通点を見出したからである。

元々、畏怖という意味でプログラミングというかコンピューターに詳しい人の話に興味があったから、先日「コードを書く」みたいなプレゼン会に参加した。ふわふわした記憶から知識のなさが見える。
私の2000倍くらいはその分野に詳しい人間に解説を受けながらコードが並ぶ画面を見ていたのだけれど、ふと「このプログラミング?って結局何してるんや?」と思った。どういうレベル?

隣で解説をしてくれていた賢人(かしこいひと)に「このプログラミングって結局何をしているんですか」と聞くと、「コンピューターに命令してるんだよ〜^^」みたいなことを言う。

反射的に「じゃあ日本語で命令すればいいのでは?」などと極めて愚かなことを言うと「日本語とか普通の言語は表現に限りなく揺れがあるから、専用の言語でコードを書いて、それをコンパイラっていうソフトが翻訳して、コンピューターに命令するんだよ〜^^」と優しく教えてくれた。優しいし、易しい。

無知の私は、プログラミングの目的と、それがコンピューターに届くまでの過程を聞いて爆裂ロマンを感じた。目を限界まで見開いた記憶がある。それくらい驚いたし、めちゃくちゃ興味がわいた。


ここで私の専攻について少しだけ説明をしておくと、「文化人類学」というのは人類が作り上げた文化とか社会の調査や記録をして、研究をしている分野。であると私は捉えている。

かなり広い分野だし、文化に対する人間の態度と一緒に歴史の中で変容し続けてきた学問で、本当に色々な研究の観点とか手法があるから、この説明は全く完全ではない。それに私は端くれの人間なので、学問全体の定義をするにはまだ早すぎる。

端くれではあるけれども、私も大学院で研究をしているため、研究テーマに関する文献や調査対象の文化や社会について書かれた民族誌などを日々読んでいる。

私の調査対象地は海外で、現地語で書かれた民族誌を理解するのはシンプルに言語能力の問題で体力のいる作業だ。現地語をネイティブレベルで読めるわけでもないので、間違った解釈を避けるために、現地語の意味を一つ一つ日本語で確認しながら読んでいる。

そうしていると、単に言葉を翻訳するだけでなく、「現地語でしか表せない言葉」「現地語でしか説明できない概念」、つまり独自の文化を翻訳するという課題にぶつかる。
文化を翻訳するのは難しいし、自国の言葉で他国の文化を形容することはその文化に対して正しい態度なのか?みたいな話もあって、ぐるぐる考えてしまうこともある。

そういう意味で、全く違う社会や文化的背景を持つ人たちの言語を翻訳するということは、単に言葉を自国語に置き換えるだけでなく、彼らの持つ思想なども含めて翻訳することになるので、大変難しいことだなと私は日々感じている。


プログラミングに話を戻すと、コンピューターという、全く人類と異なる、もはや人類でもないモノに対して、精確かつ正確にこちらの意思を伝えられる言語があるということに私は大変感動した。
別にそんな壮大なことではないよ、と言われるのかもしれない。けれど、研究で正確に言葉の意味を読み取ったり伝えたりすることに困難を覚えていた私にとっては大変な革命だった。


コンピューターという、多分めちゃくちゃ複雑な構造をしている社会の言葉をどうやって理解して、どうやってこちらから命令を出して、コンパイラなるものがどうやって翻訳しているのか…無限に疑問が湧いてワクワクした。

興奮して矢継ぎ早に賢人に質問をすると、コンピューターの仕組みを勉強してみると楽しいかもしれない!とワクワク提案をしてくれた。そして今に至る。

プログラミングの勉強というと、専用の言語を勉強して…コードを書いてみて…みたいなところからしか入れないと思っていたので、コンピューターの仕組みを知って、プログラミングが動く原理から勉強するのは大変魅力的だった。

ということで、おすすめされた本を今読んでいる。

爆裂おもろい。
今回の勉強した範囲はCPUと2進数。

そもそも少しはコンピューターないしプログラミングに知識のある人が読むものなのかもしれないけれど、とってもわかりやすい。

でも、もちろん全く知らない単語や構造が出てきて、最初は読むのにかなり時間がかかった。研究で文章を読む機会が比較的多い方なので「読めばいけるやろ!」みたいなパワープレイができると思ってたけど、全然できない。

眉間に大シワを寄せながら何度も同じところを読んでいるうちに、ふとアイデアが浮かんだ。
「全然知らない分野の話だけど、自分の研究分野の本だと思えないか?」

私は民族誌、つまり他の地域や社会について生業から宗教まで詳細に記述がされている本を研究で読んでいる。
この『プログラムはなぜ動くのか』も「"コンピューター"というどこかの社会の構造や文化を記述した民族誌」として読んでみたらいかがかしら!などと脳内のお嬢さまが言う。

そうすると、なんか急に理解が速くなった。実際に読むスピードが速くなったのかはわからないけれど、コンピューター社会のことを知りたくてどんどん読めた。

コンピューターのCPUの構成や、命令を実行する仕組みを見ていると、とても体系立てられた社会で感動した。めちゃくちゃ社会システムと組織の体制がしっかりしている。割と住みやすそう。

「マシン語」という言葉もめちゃくちゃかっこいいし、マシン語と一対で英語の略語を対応させているアセンブリ言語とかいうのもかっこいい。
そもそもコンピューターが0と1でしか喋ってないのもおもろい。それに翻訳できる言語とかコンパイラって何者なん??となる。これから読み進めるのが楽しみ。

0と1しか喋ってない件についても、その0と1を組み合わせた数字が私たちの使ってる0~9の数字で表せるのもめちゃくちゃびっくりした。今後は人の年齢とかも全部0と1の2進数で言いたい。私は今2進数で言えば11001歳。ご長寿グランプリ1位。


2進数を10進数にするのが
楽しい人のノート

といった感じで最近は研究と一緒にプログラミングが動く仕組みを学んでいる。
どこで繋がるかわかんないけど、人類学の研究にも活かせたらいいななどと思う。
それこそ翻訳についてぐるぐる考えていることも新しい観点が得られるかもしれない…現地語で全てを理解すればいいのだけれども。


ただのウキウキ初学者であるし人類学も端の院生なので、間違っていることもあるかと思われるけど、お手柔らかに教えていただきたい。

今後もぼちぼちやっていこう。次の単元は小数点数の計算です。

とっても真面目に書いてしまったし、長くなってしまったけれど、また来週。
真面目のハードルが低い。


この記事が気に入ったらサポートをしてみませんか?