プログラミング未経験の人からお金をいただいて教える時に考えること
アジェンダ
- GitHub転職向け
- 本題
- 例:超初心者にGemfileの仕組みを教える
- 例:超初心者に「Ruby on Railsはオワコンかどうか」解説する
- 例:ある程度Rubyに慣れたエンジニアに「Ruby on Railsはオワコンかどうか」解説する
- 注釈
GitHub転職向け
生徒に聞かせる話ではないけど、なんとなく気にしてくれたら嬉しいワガママのコーナーです。 私から「これからプログラミングを学ぼうと思っている人向け」の記事はちょこちょこ出してますが、tagをわざわざ作成まではしていませんでした。 これからもうちょっと考えたいな~、などと思っていますが、現状は保留で。
本題
現場のティーチングで何が困るといえば、教えている相手はエンジニアではなく、彼らから評価される立場であるということ。 職場で後輩や新卒、果ては畑違いの先輩(クライアント)に教えるようなやり方は通用しない、ということです。
たとえば、HTML5/CSS3とWordpressとか個人用途でないもので、法人向けにJavaとRubyを教えている(教えていた)私ですが、講義スタイルや1on1スタイルのどちらもに対応していました。 が、その教え方とかアプローチはまるで異なります。すべての人が同じ教え方でうまくいくことがない、というのは児童教育の場でも散々議論されており、大学レベルの教育学を専攻していれば考える範囲かと思います。1
例:超初心者にGemfileの仕組みを教える
たとえば、Gemfileのgem 'rails', '~> 4.0.1'
みたいな書き方をしているとして、最新版が執筆時点でです。
こういうのは分かりやすいんでいいです。 問題は次。
例:超初心者に「Ruby on Railsはオワコンかどうか」解説する
やっていいのかどうか、という倫理的な話は無視できませんが、ここでは前提を抜きにして解説する事を考えましょう。 この回答ですが、「エンジニアによって答えが異なる」のではないかと思います。 例えば、ガッツリRailsに従事してきた方と、できるだけRailsに触れてこないようにしてきた方では意見が全く異なります。 同じように、Railsをやりたかったけど縁がなかった方もいらっしゃるでしょう2。
人によって意見が異なるものを、一概にどうだと言ってはいけないんじゃないかと思っています。 案件次第では苦手な言語を触らないとダメなタイミングはどうしても出てきますし、エンジニアの仕事は一生勉強です。 現案件でJavaを使っているからJava以外できない、では戦力外もいいところです。
私が超初心者に「Ruby on Railsはオワコンかどうか」を教える前に、「Ruby on Railsの何が苦手か」をヒアリングする事にしています。 そちらの方がより建設的です。
例:ある程度Rubyに慣れたエンジニアに「Ruby on Railsはオワコンかどうか」解説する
その道に特化したエンジニア集団の討論会でも結論らしい結論が出ないので、人に事実だけを説明することは非常に難しいと思われます。 であれば、Ruby on Railsと他のOSSなりを比べて、どういう時にどういう選択をすべきか、という観点でお話をするべきかと思います。 好きだから、嫌いだからという理由で技術選定をする事は一般的にありえないと思いますが、そういう場がないわけではないと思います。
自分がプロダクトオーナーだったら? CTOだったら? 自身のテクニカルスキルや言語への習熟度なども影響するのではないでしょうか。
注釈
-
【教え方のアプローチは生徒により異なる】私の専攻は教育学ではありませんが、教育コースを自ら履修していた程度でもワークショップ形式で試行錯誤をしていました。TA3経験者にも感じるところはあるのでは? ↩
-
【Railsに触れてこなかった】Web系エンジニアでもなければそもそも使われないでしょうし、カッチリしたシステムだとようやくJavaになってきたような時代です。 ↩
-
【TA】ティーチング・アシスタント。給料が高いとか強制とかは教授によって異なるようですが、私の学部では遊んでるのに家庭教師顔負けの報酬が支払われるオイシイ案件でした。 ↩