僕は最近、久々に新しいプログラミング言語とフレームワークを必死こいて勉強しております。
というのも、Taxnoteに自動同期機能をつけようと思い、Parseでゴリゴリ数ヶ月やったものの、最近自らの余命を発表されまして、結局Rails勉強するかとなったからです。
しかし、新しいプログラミング言語とかフレームワークを勉強する時って、慣れるまで本当にわからない事だらけなんですよ。ある程度、慣れてきたら起動に乗っていけるんだけど、最初は何が正しくて、何がやらなくていいのかがさっぱりわからない。
もちろん、ネットにはたくさんのチュートリアルがあったり、本でも動画でも学習教材は豊富にある。僕もとりあえずドットインストールのRailsチュートリアルをして、treehouseのAPI設計コースみたいなのをもやってみました。
この基本の基本、チュートリアルを終えるまではいいんですよ。
ただ、その後、自分の作りたいものをさあ作り始めるぞという段階に進み始めると、APIの設計はどうするべきか、どのライブラリを使うのがよいかなど、一気に悩む部分がドバッと襲ってくる。
こんな時、詳しい人にちょっと聞くことさえできれば、
「ああ、そのライブラリは君の用途には向いてないよ。こっちを使うのが主流だぜ。」
とか、
「最初の段階では、それは気にしなくてよいよ。まずは、こっちから進めて、そこは後からでいい。」
とか、
「それだけは最初に設計ちゃんとしないと、後から泣きをみるよ。」
とか、いろいろ助かります。
僕の理想的な効率学習というのは、独学でいける部分は独学で進み、相談したい部分が出るとメンターの人に聞き、また独学に戻り、また相談したい部分が出たらメンターに聞いて、また独学に戻る。
この繰り返しにより、そのうちGoogleさんへの聞き方や検索ワードがわかってきて、メンターへの相談回数が減っていくという流れ。
しかし、そう簡単にメンターが見つかるわけでもないので、こういうサービスがあればいいのになあと数年前からずっと思ってたところ、Codementorがよいという話を聞いてたので使ってみました。
有料で詳しい人に聞けるサービス
Codementorは英語オンリーという敷居はあるが、詳しい人に聞けるサービス。ただ、いかんせん高い。できるプログラマさんの時給は高いからである。
最低でも15分15ドル。平均で15分30ドル。評価の高い、自分の技術に自信ある人なら、15分50ドルの人もいる。
自分の問題を説明して、デバッグしてもらって、解決方法が見つかって、ついでに新しい疑問点を質問して、とかしてたら簡単に30分以上経つし、一時間もしてたら1万円以上すぐいってしまう。
なので、初めてだし、最初は15分15ドルの安い人たちからお願いしてみたんですね。Codementorのシステムにも慣れるために。
ここでは、Zoomという画面共有システムが推奨されてて、これがすごい便利。相手と画面を共有できて、相手に自分のPCの操作権も一時的に許可できるので、代わりにコードを書いてもらえたりできる。
さながら、ネット上でペアプログラミングしてもらえるような感じ。
しかし、回線速度が十分でなかったり、お互いのPCパワーが足りてなかったりすると、メンターの方に自分のPC経由でコード書いてもらう時にすごいラグが出たりする。
初めてRailsでメンターしてもらったインドの人は、15分15ドルで最初のお試し15分は無料という条件だった。
僕の質問が初歩的すぎるというのもあるけど、問題なくサクサク答えてくれて、「おお、聞いてよかった!」となったんだけど、いかんせん英語のなまりがきついのと、回線速度が遅いのかPC操作してもらう時のラグがひどかった。
帯域を確保するためにビデオチャットは切ってくれるかな?と最初に言われた。
ラグがひどいと、単純なコードを書いてもらうのもかなり時間かかるので、
「これ、ラグがひどいから書いてくれない?」
となり、
「OK、わかった。こうかな。。」
と僕が書くものの、そもそもRailsの文法とかに慣れてないから、ちゃうちゃう、いや、ちゃうちゃう、そこはコンマ、そこはセミコロンとか、なんか無駄な部分でダラダラと時間が過ぎてしまったという悲しい事態が生じたりもする。
結果的に教えてくれる人の知識とかは問題なく、ばっちし知りたいことをスパッと解決してくれたのだが、ラグの問題と、それよりも、英語のなまりがキツくて、「うーん、言語と回線問題はなかなか厳しいな。。」というのが最初の感想だった。
ただ、初心者の頃は、本当に簡単な事すぎたり、そもそも疑問が抽象的だったり、設計に関する事だったりで、Googleで調べにくい疑問がたくさん出てくるので、この、お金を払えばさくっとなんとかできるという心の安心感がかなりでかい。
料金が高いからなかなか使えないのが現実なのだが。。
次は慣れてるiOSでも質問してみた
次は、慣れてるiOSで久々にハマった箇所があったので、こっちでも使ってみた。iOSのほうは数年やってるので、かなりピンポイントな質問になった。
ListTimerというアプリがiOS9.3で一部バグってしまい、それを治すために使用してたライブラリを変更したら、軽くハマってしまったと。
具体的には、あるライブラリでStoryboardを使わずにiPadのPopoverの表示方法をTableViewのセルからうまく出せない。という質問だった。
質問をポストしたら、15分15ドルの人が、
「ヘルプしようか?」
とオファーしてきた。一応、質問の内容を具体的に書いて、情報のリンクも貼っていたのだけど、僕は正直半信半疑であった。
自分が頑張って解決方法を調べたけど無理だったから、おそらく、このライブラリでは実現不可能なのだろう。と勝手に思い込んでしまう状態というやつである。
でも、まあ、ダメモトで聞いてみようと思い、セッションを開始。
今回の方はロシア方面の人だったと思うけど、あまり英語が話せてなくて、あれ、コードメンターは審査してるはずなのにおかしいなと思った。
海外のフリーランサーを雇うサービスでは、流暢な英語でちゃんとコミュニケーションできますという謳い文句をよくみるけど、この、英語がちゃんと話せるというのも単価設定に大きく関わってくるのだなと実感しました。
逆に言えば、あんまり英語話せないのにメンターしてるぐらいだから、日本人でやってみたい人も、とりあえず仕事しながら慣れていくんだみたいな、面の皮の厚さがこれからは求められているのかもしれない。
そして、肝心の問題解決だけど、デバッグしてもらった結果、
「うーん、これは無理だと思う。。」
っていう結論なって、そうか、やっぱり無理なのかなという結論でセッションを終了。ちなみに、解決しなくても、時間分は払うので、28ドルぐらい払った。
そして、5スターつけてねと最後に言われたけど、さすがに問題解決してないからなということで、星評価は4で、「問題は解決できなかったけど、たぶんこれは最初から無理な質問だったと思うし、親切でよい人でした。」というレビュー書いといた。
できそうな気がするんだけど、無理なのかなあと諦めていたところ、
「まだ、ヘルプ必要?」
っていうメッセージが突然ポコンっときた!
スウェーデン人が一瞬で解決
Codementor上での質問ポストは、解決済みとなるまで募集が続くようだ。まあ、当たり前か。
今回はスウェーデンの人で、15分30ドルだ。
「確認したいんだけど、TableViewのセルからiPadでPop出したいんだよね?」
と先にメッセージがくる。
前回の人は、あまりこちらの質問ポストを読んでない感じがしたけど、この人は先に読んでくれる感じがしてなんか期待が持てる。
「うん、でも、たぶんこのライブラリはそういう機能がないんだと思う。。でも、なんかデバッグのアイデアがあるなら、セッション開始したい。」
と返信してみると、
「OK、試してみるアイデアがあるから、オフィスに着いた15分後でもいい?」
と帰ってきたので、もちろん了承して、その後セッションを開始。
この人は話を聞くのが上手だった。というのも、あまり聞いてない事を話し続けたりする人はとても多いからである。自分も相談された時そうなっちゃってる時が多いと思う。
「ふむふむ、そうか。そういうことか。じゃあ、ちょっとデバッグしてみようか。このコードでちょっと起動してみて。」
と始まり、
「ふむふむ、なんか落ちたね。ログ見ると、ここが怪しいから、このコードのここ見せてもらえます?」
となり、その時点で原因がわかった僕のほうが、
「なるほど、これが原因だったかーー!!!うわー、すごい簡単なミスだったけど、気づかなかったわーー!!いやあ、まじで助かったわー。これで三時間無駄にしたから、神だわ。昔も似たようなミスしてたのになんで忘れてたんだろう。サンキューベリーマッチ!」
となりました。英語も上手いから聞きやすく、なにより10分で終わってしまった。高い金出してもできる人に頼むのが最終的には安上がりというのをリアルに体験した。
できる人の問題解決の進み方とかも勉強になった。改めて思うけど、自分にプログラミングはあんま向いてないな。
学習の高速道路に乗れる
しかし、このCodementorというサービスは金がかかるから頻繁には使えないけど、お金がある人には最高のサービスだと思う。
RailsとかiOSだったら、ほぼ24時間誰か聞く人がいるし、この、聞きたい時にすぐ聞けるっていうのがいいんですよね。
昔、日本語教えて、プログラミング教えてもらうというスキルエクスチェンジしてた時は、一週間に一回、1時間だけというスケジュールだった。
週に一回の場合、本当に重要な部分だけまとめて、頭で整理して、それ以外は独学で進めるのでバランスはいいんだけど、やっぱり、24時間誰かに聞ける体制があるっていうのは心の余裕が変わってくる。
このシステムを参考に日本語で類似サービス作ったら絶対需要あるだろうし、受験勉強に特化した類似サービスでもよいかもしれない。
独学 + メンターは教室で一斉に習うより効率がいいし、こういうサービスを使うと、学習の高速道理に乗っかる事ができるので、今後どんどん増えてきそうな学習形態だと思った。
英語というのがハードル高いけど、もし興味ある方は、下記のリンクから登録すると、10ドル分の無料セッションがもらえます。
https://www.codementor.io/r/M25NM28UD8
*初めての時は、Zoomの使い方とか、Codementor上の操作で時間取られてお金無駄にしたので、自分で練習しておこう。
*家計簿と読み上げのアプリ作ってます。自己紹介と過去ログはこちら。