DUICUO

神経多様性の観点から見たCプログラミングにおけるオープンソースの旅

私は1982年に生まれました。人間の年齢に換算するとたった40歳です(この記事を書いている時点では)。しかし、コンピュータの発展という観点から見ると、それは遠い昔のことです。10歳の時、初めてのコンピュータ、コモドール64を手に入れました。その後、Amigaを購入し、13歳の時には「IBM互換機」(当時は皆そう呼んでいました)を購入しました。

高校時代はグラフ電卓を使って基本的なプログラミングをたくさんやりました。3年生の時にはC言語の基礎を学び、4年生になるとライブラリ、ポインタ、グラフィカルインターフェースを使ってより高度なC言語プログラミングを始めました。

プログラミングを学ぶ学生から教師になるまでの私の旅

大学時代にJavaを学んだので、これが私の第一言語になりました。また、現代のスマートフォンの前身であるPDA(Personal Data Assistant)と呼ばれるデバイス用のC#プログラムもいくつか書きました。Javaはオブジェクト指向でクロスプラットフォームであり、GUIプログラミングが容易なので、今後のプログラミング作業のほとんどはJavaで行っていくと思います。

大学では、教える才能にも気づき、プログラミングの指導をしました。コンピュータサイエンスを専攻していた頃は、数学の指導も受けました。大学ではその後、C言語のプログラミングコースを受講し、基本的な組み込みプログラミングと計測機器の制御を学びました。

30歳を過ぎてからは、高校生にC言語のプログラミングを教えるためにC言語を教材として使いました。また、Fritzingを使って高校生にArduinoのプログラミングを教えました。昨年、大学生にコンピュータサイエンスのニュアンスを学ぶ手助けをする仕事に就いたことで、C言語プログラミングへの興味が再燃しました。

C やその他のプログラミング言語を始めるにはどうすればよいですか?

学び方は人それぞれです。アスペルガー症候群とADHDを抱える私は、神経多様性を持つ人間です。

私は画像やテキストで考える傾向があります。個人的には、物事を段階的に解読し、理解していく必要があります。そのため、C言語は私の学習スタイルにぴったりです。コードを学ぶときは、目の前に# include <stdio.h>のように、1行ずつ研究し、観察することで、徐々に脳に取り込んでいきます。オンラインで見つけた他の神経多様性グループの説明によると、その中にも同じような学習スタイルを持つ人がいるようです。私たちは「コードを内面化する」のです。

自閉症の人の中には、私よりも大量のコードを記憶するのが得意な人もいますが、そのプロセスは私と変わらないようです。プログラミングのチュートリアルや書籍にあるような視覚的な補助教材は、構造体、ポインタ、ポインタへのポインタ、行列、ベクトルといった概念を理解するのに非常に役立ちます。

ファイル入出力(I/O)、ネットワークプログラミングなど、低レベルの処理がどのように行われているかを理解するためにC言語を使うのは楽しいです。だからといって、文字列操作や配列作成といったタスク用のライブラリが嫌いなわけではありません。Javaで配列やベクトルを簡単に作成できることも気に入っています。しかし、ユーザーインターフェースの作成に関しては、C言語でそのようなコードを見たことはありますが、NetBeansなどのグラフィカルエディタを使うことを好みます。

アプリケーションを作成するための理想的なオープンソース C 言語 GUI ツール。

C言語でGUIを作成するための理想的なオープンソースツールを想像すると、例えばNetBeansのような、ドラッグ&ドロップでGTKインターフェースを作成できるようなツールになるでしょう。また、C言語の関数をボタンなどにバインドして、アクションを実行させることもできます。もしかしたら、そのようなツールが存在するかもしれません。正直に言うと、私はまだ十分に探していません。

多様な神経学的背景を持つ若者にCプログラミングを学ぶことを勧める理由

ゲーム業界は巨大です。神経学的多様性を持つ子供は、他の子供よりもゲームに集中しやすいという研究結果もあります。神経学的多様性を持つ高校生や大学生には、C言語を学べば、グラフィックカード用の効率的なドライバーの作成や、お気に入りのゲームを最適化するための効率的なファイルI/Oルーチンの作成など、基礎的なスキルを習得できると伝えたいです。正直に言うと、学習には時間と労力がかかりますが、その価値は十分にあります。一度習得すれば、ハードウェアなどの制御能力が格段に向上するでしょう。

C言語を学ぶには、神経伝達物質が豊富な子供には、初心者向けのLinuxディストリビューションをインストールし、オンラインでチュートリアルをいくつか探すことをお勧めします。また、ステップごとに分解し、ポインタなどの図を描くこともお勧めします。私は概念をより深く理解するためにこれを試しましたが、うまくいきました。

最後に、肝心なのは、先生や他の生徒が何を言おうと、自分に合った学習方法を見つけ、興味のあるオープンソースのスキルを習得することです。それは可能ですし、誰にでもできます。