前置き
まずこの記事の対象者は"非エンジニア"です。
非エンジニアである僕が、プログラミングスキルを身につけることを目指し、その過程でどんな取り組みをしたかを説明するしょーもない記事です。
ちなみに今はプログラマーとしてやっています、というオチはなく今も勉強中ですし、そもそも勉強の一貫でこうして記事を書いてあるので、突然カバディ部の顧問にさせられた教師が、そのスポーツのルールを覚えるのと並行して部員にカバディを教えるのと同じような図になると思います。
それでもよければ記事をご覧いただき、「あ、自分が思ってた不満って他の人も感じてたのか」みたいな気持ちになってもらえればいいなと思います。
第一回 『Googleカレンダーの内容を LINE に飛ばしてくれるBOT作りたい』
僕はフリーのカメラマンとしてお仕事をすることがあるのですが、よく「空いているスケジュールはいつでしょうか?」とクライアント様からご相談いただくことがあります。
僕としては、いくつか候補日を用意していただけると嬉しいなと思いつつ「この日この時間と、この日この時間なら空いていますよ!」と回答しています。
が、とうとう面倒くさくなってしまいました、、、
というのも僕は勤めている会社の文化で「自分のスケジュールは公私関係なく、移動時間も含めて全てGoogleカレンダーに記載しているからです」
変わった会社ですよね〜。でもおかげで会議のスケジュール決めたりとかはスムーズに話せます。みんなのGoogleカレンダー見て、空いてる時間帯にスケジュールを飛すだけなので。
さて、この文化をフリーのお仕事でも生かしたいと思ったのがタイトルのきっかけです!
「Googleカレンダー共有すればいいだけじゃん?」とか
「Googleカレンダースクショしたの送ればいいじゃん?」って
思った方おられるかもしれませんが、それだとイマイチなんですよ。
だって「スケジュール教えてください!」って聞いた時、カレンダーだけ渡されるとイラッとしませんか?何様だよと。
なんというか、需要と供給の輪郭がはっきり出過ぎるんですよね。(意味不)
LINE Bot であれば「今週のスケジュール」みたいなラフな聞き方ができていいと思うんですよね。気を使わなくていいし。
だから僕が求めたのは
クライアントになりそうな方に、"僕のスケジュールを言うBot"を LINE に友達登録してもらい、お仕事が発生しそうになったら、その Bot にスケジュールを聞いてもらう
という一連のプロセスを確立することでした。
ちょうど通っているプロトアウトスタジオ (https://protoout.studio/) というプログラミングスクール?で、 API についての授業を受けたので、うまいことできないかなと手を動かしたわけです。
やったこと
1.有料記事を購入した。
2.記事通りやっているが動作せず、職場のプログラマーに聞いた
3.結局動かず teratail で質問してみた
4.teratail で基礎から学べと言われ、書籍を購入してちょっと読んだ
5.しかし有料記事進めれず、結局簡単にできそうな無料の記事みてプログラム作った
6.それは動いて少し嬉しかった。←イマココ
1.有料記事を購入した。
URL は貼りませんが、note で公開されていた記事で『LINE Botを使ってGoogleカレンダーの予定を確認したり、予定を追加できるようにしましょう』という内容のものでした。
「これだよ!欲しかったのは!!」
と有料でしたが割とあっさり購入し、早速手を動かし始めました。
が、基本を押さえていない僕の"ソースコードコピぺ術"ではすぐに限界がきてしまいました。
ちなみに、基礎を押さえていない僕がなんとかコードを理解しようと試した手法は、似た結果をもたらす(今回で言うと LINE Bot でGoogleカレンダーを操作すること)、他の記事のソースコードを探し、メインのコードとの類似点を見つけて、他の記事のコメントアウトの内容をメインのコードにも置き換えて見てみるというものでした。
意味がわからないって?
要は、”中国語わからなくても、「なんか日本語にも同じ漢字があるぞ」って気づけば、そこから中国語の内容を推測できる"みたいなのに近いです。
結果...
2.記事通りやっているが動作せず、職場のプログラマーに聞いた
動かせませんでした。やはり意味がわかりませんでした。
なので、めちゃくちゃ忙しい職場のプログラマーを捕まえて聞いてみたところ、部分的にではありますが、つまずいていたところを教えてくれました。
本当はもっと聞きたかったのですが、彼は何処かへ去っていってしまいました。
そして、部分的に教えてもらった内容は記事の内容と異なっており、記事の内容を進めていくには、記事通りのコードを書いて先に進まないと結局動かなくなることが判明したため、いよいよ万策尽きてきました。ここまでで6時間くらい使ってます。(どうでもいい)
3.結局動かず teratail で質問してみた
teratail という、"プログラマー向けYahoo知恵袋"のようなサービスがあることを知り、淡い期待で投稿してみました。
大体、投稿して30分くらいで反応をもらえたのはよかったですね。
実際の投稿記事
↓
https://teratail.com/questions/248595?modal=q-comp
質問のやりとりから僕の初心者度合が伺えたかと思います。
さて、親切に対応してもらえましたが、教えていただいた内容を実行することができない僕の未熟さがバレてしまい、早々に基礎の学習を勧めていただきました。
4.teratail で基礎から学べと言われ、書籍を購入してちょっと読んだ
https://www.amazon.co.jp/dp/4295002089/ref=cm_sw_em_r_mt_dp_U_5RWEEbE1TKTNM
買って読みました。前半のみ。内容はわかりやすかったです。
(なぜ Python の本買ってんだ、と思われるかもしれませんが、僕が有料記事で困っていた内容は Python の記述だったからです)
この辺りでなんとなく「有料記事、コードの記述足りてないところあるかも??」と思いました。
というのも、これまでの過程で「全く理解できない」という訳ではなくなったからです。記述の意味もなんとなくわかるようになり、そこで気づいたのが実行に必要な関数の指定が記事で書かれていないということです。(知ったような口を聞いています。よくわかってません)
まぁでもそんな状況になり、いよいよ疲れてきました。
5.しかし有料記事進めれず、結局簡単にできそうな無料の記事みてプログラム作った
原因はわかりつつありましたが、これまでに時間をかけすぎて、心も体も消耗していました。
「このままでは忙しさにかまけて手を動かさなくなるな」と思ったので、自分がやりたいと思っていた機能をガッツリ削り"LINE Bot にGoogleカレンダーのスケジュールが飛んでくる"というプログラムがかければ良しとし、改めて記事探しの旅に出ました。
そしていい感じの記事を見つけました。↓
https://qiita.com/imajoriri/items/e211547438967827661f
GAS(Google Apps Script) と LINE Notify を触るだけでよかったので、なんとか動かすところまで進めました。(コピぺだけど)
6.それは動いて少し嬉しかった。←イマココ
プログラムが動くとすごく嬉しいということがわかりました。たとえコピぺでも。
"自分の言うことを聞いてくれた"という感覚が確かにあり、なんとも癖になる感じでした。
無理やり話のオチ
今回、技術的に達成できたことはなかったのですが、やりたいことやろうとして消耗するより、小さい成功体験するほうが、結果的に課題に対して長く取り組める体質になれそうだな。という気づきがありました。
あとは、もっと人に質問できるようにならないと、何かを作るときは効率悪いなと思いました。
"人に質問できない人"の考え方として(僕もそのタイプ)、自分が何をやりたいのかを明確に把握していないことが実はよくあります。(僕)
自分が何をやりたいかを把握していないまま、手段だけを人に質問してしまうので、質問される方は、適切な回答に悩んでしまい怪訝な顔をされてしまう。ということがあると思います。(僕)
質問する方も、実は自分のハードルを上げていて、そもそもどんな手段があるかわからないのに、手段について聞く。という自分の首を締めるようなやり方を無意識的にやっていると思います。(僕)
そういった自分の経験から、人に相談するとき、もっとも力を入れるコミュニケーションは、"自分はこう言うことをしたい"ということだけに絞るようにしました。
本当はもう少し相手のことを考えたコミュニケーションがしたいのですが、まだまだそこまで手が回らないという状況です。
きっと周りには迷惑をかけているのでしょう。
スミマセン...
と言うことで、非エンジニアのしょーもない記事でした。
ここまで読んでくださりありがとうございました。