どうもlisです。以前あったことについてのちょっとした雑記です。
以前、友人に唐突に「プログラミングやりたいから教えて!」と頼まれた時のお話です。
経緯
こうなった経緯というのが、全然別の業種で働いていた友人が、他の業種で勤めたいと思ったそうで、「プログラマ/SE」というのが眼に入ったらしいのです。
しかしながらPCの経験や、ましてやプログラムの経験が全然ない状態だったので、僕に教えてほしいとのメッセージを飛ばしてきた訳です。
人に教えた経験なんて、あまりないものの、友人がプログラムに興味を持ってくれたというのが嬉しくて、二つ返事でOKしたところからが始まりです…
やったこと
やったことは次のようなことです。 ちなみに教えようとしたのはC言語です。
- PCのセットアップ(環境構築)
- C言語の入門本を買ってもらう
- 実際に数回会って、PCを使って教える
- その他諸々…
その時に起こったこと、感じたことです。
まず環境構築で苦戦
この時点での盲点が。昔gccコンパイラを使っていたので、それを使おうとしたところ、Windows10にインストールできず…
原因はあまり詳しく調査してないのでわからないのですが、何故かできないので困惑してました。
そこで色々調べて「MinGW」から、Cコンパイラをインストール。
コンパイラ入れた。よし。と思ってたら問題が。
彼はPCに全然詳しくない。
なので操作説明が凄く難しい。
ある程度分かる人と話してると、「ここをこんな感じで」とか「こんな名前のやつ」とか言えばなんとなくやってくれるんですが、そうもいかないので、うろ覚えな中操作しつつ教えるという状況になる。
これが非常に時間を浪費する。プログラムを教えるはずが、セットアップだけでかなりの時間を使ってしまったりと、序盤からスローなスタートとなってしまった。
入門書で入門できない
折角勉強するならネットで勉強でもいいけど、初心者向け参考書持ってた方が楽だし、ネットサーフィンする時間を短縮できるし、いいかなぁと思って、「まずこの本を買おう」と「C言語の絵本」を提案しました。
後日買ってもらったのはいいものの、前述の環境構築はした後、「1人の時に読み進めて試してみて!」と言ったものの、全然理解が進まなくなったそうで…
もはやこれは放置に入るのでしょうか。
どこまでガイドラインを作ってあげて、どこまで一緒にやってあげればいいかわからなかったのです。
というか今でもどこまでが正解だったか…なんて微妙にわかりません…
PCユーザとスマホのみユーザのギャップ
これは環境構築も含めてなんですが、PCを使って教える為に、実際に会って数回教えていました。
そこで思ったのは「ほんとにPCわからないんだな」でした。
当たり前なのかもしれませんけど、ショートカットもわからなければ、ファイル管理すらまったくわからない。
これがスマホしか使わない人とのギャップなのかもしれませんね…
「コマンドプロンプトがよくわからない」とかは「まぁそんなもんだよな」って思ったんですけど…
このレベルだと流石に驚きましたね…
その時になってよくよく思ったのは、スマホ使ってるとファイル/フォルダって概念がなくなるんですよね。意識しない限り。
あるアプリが作ったファイルは、そのアプリが作ったフォルダに入れられて、そのアプリしか使わないからユーザは意識しない。
そのアプリ上で必要な情報は、共有機能や文章のコピペで他のアプリに渡るので、「そもそもファイルを使っていてもファイルを使っていることにすら気づかない」。
そしてキーボード入力がすこぶる遅いというのもギャップの1つですね…
まぁ超アナロガー高齢者とかのように、「マウスってなに?」「クリックって?」みたいな感じでないだけ、PCの超基礎は知っているだけよかったですけどね。
でもそこで勧めたのは「プログラムの勉強もだけど、まずPCを使いこなすところから始めよう」ということでした。
反省点
この件で感じた反省点です…
相手のスキル(力量)を理解していなかった
こんなにギャップがあると思っていませんでしたからね…
PCの操作や知識だけでも、どれだけ知っているか?を知っていれば、もう少し身構えた準備ができたかもしれません…
「アプリケーション」というものに対するギャップが大きかった
PCの操作も含め、ごくごく簡単な初めのプログラム「Hello World」を教えても何も理解してもらえなかった。
まずコンソールアプリ(CUI)というものに馴染みがない為、「文字が表示された」=「アプリが表示した」という概念がまったくもって生まれなかった。
僕「まずコレを打ち込んでみて」
僕「コマンドプロンプトってやつを起動して」
僕「コレを打ち込んで"コンパイル"っていうのをするとexe(アプリ)が作られるよ!」
僕「この名前を打ち込んでENTER押して!
僕「おめでとう!文字が出力されたよ!初めてのアプリが作れたよ!」
友「????????」
友「え???え????全然実感わかないんですど」
ですよね。当たり前ですよね。
よくよく考えなくても、現代はPCだってGUIのツールしか普通は操作しないし、スマホの普及によって綺麗な見た目のGUIツールが沢山普及しています。
というか、それしかないです(一部コンソール的なアプリもありますけどね…)。
そんな彼にCUIのアプリで「文字出たよ!やったね!」とか言っても感動するか、って話ですよね。
「楽しい!」と思わせる
アプリに対するギャップでも書きましたが、GUIとCUIって楽しさ全然違うと思うんですよね。
僕はCUIのツールでも、作るの全然楽しいですけど、初心者なら「楽しいと思えること」を主眼に置いて説明すべきだったかなと反省をしています。
少し技術が付いてから、深堀で詳しくなればいいのに「基盤がなっとらんとあかん!」的な観点で初めてしまったのがよくなかったですね…
適当にVisual Studioでもインストールしてもらって、適当なフォーム作って、ボタン押したらテキストボックスに文字が出る…
こんな適当なプログラムから始めて、さて詳しくなっていこうか!の方が、CUIよりもGUI文化の人間としては「なんかアプリ作った!」感があるでしょうし、テンション上がりますよね。
「好きこそものの上手なれ」じゃないですけど、好きになる事、興味を持つ事が、物事を吸収する第一歩だと思うので、これは完全なしくじりです。
あとがき
僕は僕で人に教える経験なんてあまりなかったし、ましてや普段からゴリゴリPC使っているので、PCの経験がないというのを分かっていながら考慮できていなかったですね…
唯一の救い?は、彼がちょっとPCに前向きになったことくらいですかね。
キーボード操作が早くなりたいということで、タイピングゲームでスコア更新に燃えてみたり、LINE等のメッセージをあえてPCで返すようにしたり。
後はExcelに興味を持ったことですかね。
割とどこ行っても使うと思うんですけど、使い方をなんとなくしか知らなかったみたいで。
僕がゴリゴリ作った無駄な機能も満載な、勤怠管理を見せたらちょっとテンション上がったようで、「家計簿みたいなのとか作ってみようかな!」と熱意を燃やしていました。
あれからいい感じにできたのだろうか…
また今度改めて教えて欲しいとなったら、今回の反省を踏まえて教えていきたいと思います。
それでは。