涼の成長記録

自らの人生に主導権を持つべく、独立を目指して2014年3月31日を持ってITエンジニアを退職。そんな23歳♂の成長記録。

プログラミングを教える時、まず何から始めたらいいだろう

ただの独り言です。


言語の入門サイトを立ち上げようと思っているのですが、例えばC言語を教えようとする時、その前に学んでおかなければならない事があると思います。早く"プログラミング"というプロセスを楽しみたくて、ウズウズしているユーザーを、うんざりさせるような前置きがあっては、それはそれでかわいそうです。


多くの書籍やWebサイトでは、まず開発環境を整えるところから始まります。テキストエディターやコンパイラーをインストールします。まず、ここで躓くと思うのですよ。「そもそもインストールって何やねん!」、「リンクをクリックしたら英語のサイトやんけ!」と。ここで、「あ、プログラミングってやっぱり敷居が高いかも。。」と思われてはいけません。


やはり、時間をかけてでも、丁寧に丁寧に1つずつクリアしていった方が良いと思うのです。Webサイトの良いところは、他のページへのリンクを貼ることができるということです。ある程度コンピューターに関する知識がある方のコースと、完全にド素人の方のコースでリンク先を分ける等して、どんな方でも気持ち良く必要な情報だけを学んでもらいたいと思います。


コンパイラーの説明で、「人間が書いたプログラムを、コンピューターでも分かる言葉に翻訳してくれるんだよ」なんて教えたところで、実際さっぱりじゃないですか。じゃあ、コンパイラーってどこで動くのさ、テキストエディターのようにウィンドウが表示されないじゃないか。いつ起動しているのさ。って。


多分分からない人は何も分からないと思うのです。テキストエディターだって、何故メモ帳では駄目なのか。MicrosoftOffice Wordじゃ駄目なのか。学習の途中でいきなりあたかも常識であるかのように"二進数"なんて言葉が出てきても、「学生時代聞いたような聞いていないような。。」という方もいるでしょう。


どこまで、自分のWebサイトでサポートするのかという問題もあるのです。例えば"二進数"というワード1つ取っても、自分より上手に説明ができるWebサイトがあるのなら、そこへのリンクを貼った方が、ユーザーからすれば助かるかもしれない。目的はあくまで、ユーザーに快適にプログラミングを学んで頂くことです。その目的から見ると、自分のWebサイトに閉じ込めることに、何ら意味はないのです。


あとは、何をするにも語源や理由を明確にしていきたいと思っています。例えば、いきなり「文字列のコピーはstrcpy()を使うよ!」なんて言われても、勘の鋭い人でなければ、"strcpy"なんて謎のアルファベットの羅列にしか見えません。そのため、覚えられません。文字列の英語は"string"、そしてコピーは"copy"これを略して"strcpy"という関数名になっているということまで、教えた方が理解度は上がると思うのです。


素人の人は何を不思議がってもおかしくありません。何で乗算演算子と間接参照演算子ポインターを表す記号全てに[*]を使うのか、[a + b = c]でなくて[c = a + b]と書くのは何故か、そういうところで疑問を感じて、先に進めなくなってしまったりするのです。実際、そこには意味がなかったりするのですが。昔は使える記号が限られていたから、とか。でも、それを明記してあげるだけでも、心の負担が大幅に軽減されると思うのです。


難しいのは、記憶を喪失しない限り、自分がド素人に戻ることができないことです。そんなことを考えていて、どんな教え方をしていこう。。なんて考えていたら、昨日も3時間経ってしまっていたり等したのですが、このままでは私が進めなくなってしまうので、とりあえず、どんどん手を動かしていこうと思います。


兎にも角にも、ユーザーの声を聞いて反映できるWebサイトを目指そうと思います。そりゃ、ビジネスにしようと思っているので、収益のことを考えて運営する必要があるのですが、まずはユーザーの理解度優先で、とにかく学びやすいだけのWebサイトを作りたいと思います。頑張ります。


ではでは。