こんにちは!YuKiOです。
先日「IdeaShuffleMemo」というアイデアを発想することを目的としたメモアプリをリリースしました。
このアプリを作るのは2作目なのですが、今回は必ず実装したいと思った3つの機能があったんです。
しかし、その機能を実装する方法を調べても、日本語の資料も少ない上に、英語記事を読んでも、仕組みが理解できない。
肝心の知りたい部分が曖昧だったり、抜けてたりと苦労することも。
正直、自分の理解力を超えていました。
でも、機能は実装したい。。。
結局、時間はかかりましたが、実装したいと思っていた機能はすべて実装することができました。
今回は、仕組みが理解できない機能を実装するためにやった事を紹介していきたいと思います。
あと、今回は人に聞くというのはなしにしてます。
※一部コメントで、「一回でわかったら天才」という発言に対して「英語のドキュメントは簡単だから、一度読めば分かります」というコメントがありましたので3つ補足しておきます。
1.この記事では、英語が得意でない方、または、まだプログラミング初心者の方を対象に書いてます。
2.この記事では日本語、英語、どんな言語であっても、ドキュメントを読んでもよく理解できない仕組みと遭遇した場合の、自分なりのアプローチ方法を書いています。そもそも読んで理解できない状態が発生している事が前提なので、読めば分かるのであればそれでいいわけです。
3.自分の能力以上の事に遭遇した時、モチベーションを維持するための考え方を示しています。だから英語のドキュメントを見て、1回で分かったら天才ということでもありません。
とりあえず英語記事を分からなくても漁ってみる
日本語の記事が少ない場合、とにかく英語記事を漁って読んでみます。
私は1語ずつ訳さないと英語を読めないレベルなので、普通に読んでたら日が暮れてしまうため、ページ全体を迷わずGoogle翻訳します。
変な日本語あっても、とりあえず無視です。
何度も見ているうちに、バージョンや内容が違っても、共通の設定や同じようなことが書かれている事に気づきます。
そうすると、不思議と全体像が見えてきて理解することができるようになりました。
ただし、英語記事を探す時に注意点が1つあります。
英語の記事を検索するときは、「英語で検索する」って事が大切。
検索する英語が分からない場合には、日本語で検索して出てきた英語記事の中で使われている単語をピックアップするといいと思います。
英語で検索した方が、日本語で検索するよりも求める記事に出会えることが多かったです。
また、何かを学ぼうとするときテキスト記事に頼りすぎる(世代?)のですが、YouTubeで調べてみると、how toの動画が見つかったりします。
もちろん英語の場合が多いですが、見ているだけで全体の流れを把握することができるので、読むのが苦手という人は、Youtubeを探してみるといいかもしれません。
とりあえずコードを丸写しして、何しているのかコメントを追加してみる。
自分の理解を超えたコードと出会った場合、自分の求める結果とは違っても、とりあえず一度、丸写しをして、動かしてみる。
そして何をしてるのか処理毎にコメントを入力していくようにしました。
分からない箇所は、メソッドの前や変数から予想して何をしているかを入力してみましょう。
中には丸写しでも動かない時があると思いますが、エラーを見ても解決できない場合は、とりあえずそのままで、コメントを追加していきます。
また記事の中には、これどこに書けばいいのか分からない場合があると思います。
その場合は、コードの中でも印象的な部分で検索するか、そのコードの記事を書いてる人が作ったgithubを見ると、だいたいどの辺に書けばいいのかわかります。
この方法は面倒くさくて、時間も掛かりますが、一つ一つコードを見ていきながら動いている状態をみることで、最初は点の点だったものが、段々と繋がっていきます。
変数やメソッドが馴染んでくる感じがあります。
そしてあるタイミングで「そういうことか!」と気づく時が来ると思います。
何が分からないのかを言語化してみる
難しい処理だったとしても、全体では理解できなくても、部分部分は理解できると思います。
まず何が分からないかを言語化していくようにしました。
例えば今回のアプリ開発で、バックアップ機能を実装しました。
しかし、最初は実装方法が書いてある記事を読んでも理解出来きない。
そこで、何が分からないかを細分化していくと、結局、GoogleドライブのAPIの仕組みがよく理解できていないことが分かりました。
Google DriveのAPIについて調べてみたところ、徐々に全体像を理解することができました。
分からないなら、分からないなりに、分からない事をリストに書き出すことで、知りたい情報が明確になり、それを潰していくだけで、理解が進むと思いす。
まとめ
いかがでしたか?
プログラミングをやっていると、様々な壁にぶちあたりますよね。
今回自分の中では難所だった、機能を無事にアプリに実装することができました。
不思議なんですが、実装する前はあんなに難しそうだと思っていたことが、さほど難しいと思えなくなるんですよね。
それが成長なのかもしれませんね。
そもそも論ですが、全ての文章がわかりやすく書かれてるわけでないですし、わかりやすく書くのが難しい場合もあります。
一回読んで分かったらむしろ天才、普通は何回も読んで徐々に吸収するもの。
くらいの気持ちで取り組むと気持ちが楽だと思います。。
あきらめないことが大切です!
それではまた!個人開発頑張っていきましょう!