金沢アプリ塾で4日間講師をした

 夏休み最終週、8/28(火) から 8/31(金)まで、金沢アプリ塾で講師をした。

 内容はAndroid Studioを使って「実際にAndroidアプリを作る」という実践的なもので、教科書には『はじめてのAndroidプログラミング 第3版 』を採用し、開発言語にはKotlinを採用した。

 この前日に「初心者コース」というものが行われており、私はその後の「中級者コース」というものを担当した。

 初日28日(火)は環境確認・セットアップと『CHAPTER06 体型記録アプリを作ろう』で、各種UIコンポーネントの使い方や簡単な保存・読み込みについて学んだ。

 2日目29日(水)はライセンスについての講義と『CHAPTER07 加速度センサーで玉ころがしアプリを作ろう』を実践。Androidレイヤーで抽象化されたセンサーデバイスから値を読み込み、サーフェイスを使って「ほぼリアルタイムで描画」、エミュレータにおいてセンサーデバイスのエミュレートらを学んだ。

 3日目30日(木)はVCSについての講義と『CHAPTER08 音の出るスライドショーアプリを作ろう』の前半の実践。アニメーションについて学んだ。

 最終目31日(金)はテストについての講義と『CHAPTER08 音の出るスライドショーアプリを作ろう』の後半の実践と自由課題。音楽ファイルの再生について学んだ。

 課題は後述するが、久しぶりにこんなプログラミング・IDEを教えるようなことをした。ケツは蹴ったほうがいいんだろうし、どうしてもわからん!ってときに質問できる環境というのは素晴らしいが、やっぱりこれらは自分のペースでガッツリやるのが効率いいよなあと再確認した。

見えた課題

「最新版を入れてきてください」では結局バージョンがあわない問題

 かといって古いバージョンを指定して入れてこいというのもとても難しい。ちょうど教科書のエラッタページにも「最新版PreのSDKを用いるとAndroid Studioが動かないのでPreを用いないように」とあったりする。

 参加者ががんばって自力でセットアップした時点が最新版で、本家SDKの開発スピードがはやいので告知から実施まで数ヶ月あるような会ではみんなバージョンがバラバラになってしまう。

 動いている分には問題があるわけではないんだが・・・。動きません!ってときに大変。

へちょいPCでは開発どころではない問題

 Android Studio がもとめるPCの性能要件は一応ここに明示されている。

 現時点でメインメモリ最低3G + エミュレータ使うなら +1Gとあるが、世間一般的なWindows PCではアンチウイルスアプリなどもあるせいで4Gじゃあとても足りなそう。UIエディタがいうことをきかん。ドラッグ操作ですらあやしい。

 そもそも慣れないことやって入門しようというのにこれではかわいそうすぎる。かといってメモリ8G + SSD のPC以外の子は来ないでくださいというのはハードルが高すぎるのではなかろうか。

誰のせいでエラーかよくわからない問題

 今回の教科書の帯には「Javaの入門書レベルはわかる人。」とあるが、実際の受講生は「Javaの入門書は開いたことがあるかないかの人。」であった。

 まー「Javaをやったことない」どころかたぶん他のプログラミング言語を使ったこともなさそう。

 となると、そもそもまず文法がわかってない。変数の宣言、カッコの意味すらわかってない。if文のブロックやインデントすらわかってないのに関数をoverrideしろだの、ラムダを書けだのというのはハードルが高すぎる!加えてXMLまで編集することになる。

 リソースのインポートやコンパイラの自動エラー提示がリビルドしたりするとなおったりして、エラーがおこったときに

・書いたコードがそもそも間違っているのか(言語に対する理解が浅いのか)
・ライブラリの参照が足りていないのか
・SDKの問題なのか
・IDEの問題なのか

 このあたりは私も難儀するほどつらく受講生に「なれるしかない」と言わざるをえないのはとてもつらかった。再起動したらなおる、とか、このボタンを押したらなぜかなおる、とか、一度フォーカスを外すとできる、などオカルティックな指導になってしまって申し訳ない。(そんなのがノウハウになってしまうという開発環境自体に問題はあるとは考えるが、それ言ってたらアプリの開発はできねえ)

 そもそもの課題として「同時に一度のことを覚えようとしている」ってのがマズイ。「何がわからないからできない」と口で明言できて問題解決できていくようにならないとあかん。もっと段階を踏ませるべきだ。

できる子はバリバリ進めてつまらない問題

 ↑のこともあって、言語・IDE・少しでも経験のある子や、ちょいマシなPCを使ってる子はバリバリ進めることができてしまって暇そうで寝てた。

 終いには3日目あたりからこなくなってしまった。完全に「俺だってそうする」から何も悪くない。きびしいこと言えば書籍をなぞっているだけなので「やる気があるやつはいくらでもできる」という内容なのは間違いない。中級者向けという見出しなので、ちょっとかわいそうなことした。

受講生の進捗把握が難しい問題

 「詰まってる人は手を挙げて〜」「困ってる人は手を挙げて〜」といっても手が挙がらない。それはそうで詰まっている・困っているのか自分自身ではわからない。 次の手順に進んだところで初めて「あ、前の手順でそもそもコンパイルエラーでした」なんてのが発覚したりする。

 そして熱中・集中してるときにこちらかの声がけしてもきこえてない。つまり、進捗の把握が難しい。声がけ・挙手はイマイチ効果的ではないので、来年もやるとしたらslackでもLINEでもなんでも「できた・困った」ボタンが必要だ。

 いや、メモリが足りてないというときにslackもあげとけというのはかわいそうか。となるとやっぱスマホに入れてもらうか?何か用意したほうがいいやろなあ…。受講生各位のAndroid Studio のコンパイル状況(WarnやErrorの数)を講師に自動的に通知する機能とかほしいなあ。

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

4

#エンジニア 系記事まとめ

noteに投稿されたエンジニア系の記事のまとめ。コーディングTIPSよりは、考察や意見などを中心に。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。