ちょっとまとめてみた。あくまで私にとって、ですが。そんな駄文。

効果があること

GitHubのコードリーディングをする

この方法は本当に自分にとって強く、自分が「知識増えた実感」はこの手法が最も得られる気がしている。GitHub万歳。OSS万歳。 面白そうと思ったプロジェクトや、この人デキルって思った人のコード、自分が使ってるライブラリのコードを見る。単なる実装だけじゃなくて、使用ツールやディレクトリ構成、CI、色々見れる箇所は多い。 私は全部を理解できたことはない。ただ、部分部分で「イイね」って思うところを探すのが大事だと思っている。

逆に言うと、あら捜しやクソコード探しみたいなことは私はやらない。特に、クソコードと自分が思ったものに関しては、自分もその書き手の一人、みたいなところも言われかねないので言うのもおこがましいのだけれど、真剣に読んでも実際自分の成長には繋がった気になったことはない。「人を馬鹿にしたり不幸を笑うこと」に快感を見出すような、ロクでもない能力が伸びるだけだと思ってるので、積極的に、批判的に見る必要はない。とりあえずパブリックリポジトリだったら、それ自体が勇気いることですごいじゃないですか。 (残念ながら、日本人はこの傾向強いなあと思う。自分の警鐘も含めて)。

ただし、それを「自分ならどう直せるか?」と考える方向に持っていって、(そういうこと語ると自分が傲慢になりやすい。指摘は大事だけど、この手の話は、特にプログラマは性格的にマウンティングしがちなので、その人にとって「響かない」「うざいだけ」「為にならないこと」になりやすいんじゃないかと思う。作者やプロダクトへの愛や悩みに応えようって気持ちが少しでもないと、上から目線の指摘は上手くいかないと思う。これは仕事でもそうじゃないか?って思ってる)、こっそり自分なりの簡単なリファクタリングをしてみると、自分の能力を振り返る機会になって、得られることは結構ある。なんだお前、できねーじゃねーか!とか、自分こういうこと出来るんだ、とか一喜一憂したりして。

横道がそれちゃったけど、だから(プライベートで)そういうのを探すためのコードリーディングみたいなのはあまり積極的には出来ない。そういうのに心の底から幸せを見出している(ホワイトでもブラックでも)ハッカーとかホントすごいと思う。 自分もOSSのPull Requestみたいなのはやるけど、そういうのはIssueを見たり、自分が使ったりコードを読んで、偶然これ変だな、って思ったときにやるのが大体だったりする。逆に言えば、そういう気付きがあった後に、何やら色々な深掘りセンサーが働いちゃう瞬間があることに自分、気付いちゃったんですよね。色んな種類のコード読んでたり、日々テストとかしてると。凄腕の人はそれが鋭いんだろうなあと。

「これってこうやってやるんだ」、みたいな小手先のテクを宝探しする気分でやってる。ネタは無数にある。 気になった箇所があったらググって、視野を広げていく。 世界には色々な人がいるから、色々なスタイルがあるって分かる。日本人は得てしてアーキテクチャやデザインパターンでいかに縛り上げるか、に意識が行きがちな気がするんだけど、「そのプロダクトにとって分かりやすけりゃ結局色々あって良いよね」って寛容な気分にもなれる。 プログラミングって「もっと自由でいいんだ」って。自分はそういうことを感じてるから、プログラミングって行為自体は嫌いには全くならず、ますます恋しちゃうんだよね笑

一方で共通してるものもあるって気付いたりもする。分かりやすいのはツールとか。あるいはコードの流れとか命名を見て、「あ、こんな雰囲気のが良いんだ」って思ったりもする。それらは勿論色々なライブラリやアーキテクチャやデザパタ理論を知ってる(そして自分も知ってたりそこで知ったり)って土壌があって思うことなんだけど、本とかにあるような知識じゃなくて、その上で様々な人が編み出してるコダワリやトレンドみたいなもので、そんなものを感じ取り、「イイね」って思う訳です。

こういった雰囲気的なものって教えてくれる人見たこと無いんです。だからプログラマはセンスとか言って、教育どうこうじゃないとか、向き不向きが…って結論付けるような人もいる。でも、こうやって見てるとやっぱり何かある気がしてるんですよ。すごい肝心なものが。これを言語化できないかな、、とは常々思う。

こういう自分が発見した「イイね」ってものは、そこらの記事を探しても絶対に書いてない。 特に当事者にとっては、こういうことは「必要ないこと」と判断されがちで、何より書く場所がないからなのだと思う。そして、自分にとっても断片的なので共有するのも難しかったりすることが多いんだけど、こんなとこが実は結構な技術財産なんじゃないかって思ってる。

ライブラリの公式ドキュメントを読む

一次情報見ましょうって色んな人が様々に言うけど、結局そう。 特にオープンソースであれば、ドキュメントはみんなの気になった点もPRして網羅されている。 結局その技術を学ぼうと思ったら、こういったリソースを参照するのが最も良い。 困ったらIssueやStackOverflowを覗いてみる。答えが見つからなかったら、Chat GPTに聞くのが良い。

ちなみに自分は技術関連での日本語記事があまり見たくない為に、Googleは?gl=us&hl=enにしている。

YouTubeの動画(非日本人)を見る

日本人のやつを見る必要は残念ながら殆どない。外人、特に米国人のものだけを見ればいいかなって思っている。勉強会とかは刺激を受けるには良いかなってくらいかな。 とりわけ、◯demyのようなコンテンツに金を払いすぎてはいけない。 それが勉強になることもあるが、彼らの中には収益効率性の為に、自分自体が学んだ直後に動画にしてるような人間がいるので、自分はコンテンツバリューが弱いともう割り切っている。それはそれでビジネスとしては尊敬するけど。

公式ドキュメントを読んだ後に動画で見ると、少し引っかかった箇所の理解が得やすい。特に環境構築周りの「所作」みたいなものが学べるのは大きい。 そして、YouTubeはタダである。これだけでも価値があるし、他にYoutuberとか普通に面白いからプレミアム入ってるんだけど。 以前Unreal Engineの公式講演に行ったことがあるけど(ぶっちゃけアンリアルはよく分からんのだが)、そのクリエーターさんたちも動画で学んだことが多いって言ってた。

こういった動画コンテンツは否定する人もいるけど、外国のインフルエンサーはちゃんと大前提の仕様理解も結構しっかりしていて、「技術的には◯◯ですが」といった説明もちゃんとしている人が多いから良い。自分は学びやすくて良いなと思っている。

効果があまりないこと

Q◯ita, Z◯nnを見る

実を言うと、「アウトプットする側」からすればかなり価値があると実感している。言語化したり、読者のことを考えてものをアウトプットすることの効果は大きい。 こういうサービス・コミュニティの重要性も理解してる。今後もどんどんアウトプットはしたい。だから爆弾発言みたいでもあるんだけど。

「読む側」からしての私は、正直これらのサービスはかなりの割合で「暇つぶし」と「刺激を受ける用」である。その行為自体大事でもあるけど、実りだけで言えば実は少ない。これは日本のサービスだけでなく、Mediumとかdev.toみたいな海外サイトも同様だったりする。そういうとこじゃない英語の技術記事はたまにおって記事が見つかる率は高い。

技術書を買い漁る

これ、ホントは出来るようになるべきことなんだけど、自分は単純に能力が低い。 良いと思った本は色々あるし、狂ったようにオ◯イリー中毒者になってたこともある。 しかし、いかんせん私はあまり頭がよろしくないので、濃密なコンテンツは眠くなったり頭に入らなくて、リフレッシュ程度にやるのがちょうど性に合っている。 特に最近、読書はネカフェみたいなところでしかできない。 本当は公共の輪読会とか参加してみると得策かもしれない。とりあえず今のところは悲しいことにこの方面のモチベが薄い笑

ハンズオン・写経

というか私が出来ない。やる気がない。 いやまあ公式ドキュメントのGet Started的なのはやるけど、ああいうチュートリアル面白くないもの作って何が楽しいのみたいな。 実を言うと技術書や技術同人誌もそうで、私はコンテンツのサンプルを作ってみよう的なのを読みながら出来た試しか無い。多分、逆はZ◯nnとかと一緒でメチャクチャ効果あると思う。 なんと言うか、丸々コピペして出来た~って感じのコンテンツ、自分はかなりダメで、「意図」を理解して「自分ならどうできるか」、って言う方向に意識が向かないと自分は難しいようだ。 つまり、「意図を理解してから作る」方が向いていて、「意図を理解しながら作る」ことは結構難しい。そういう能力が低い。

いや動画もそうじゃんって感じだけど、私は説明から「やり方・考え方を盗む」ということを第一に考えているから、動画は効果がある。

こんな感じかなあ。私の効果があったトップ3はとにかく上に上げた感じ。 他にも勉強会とか色々あるだろうけど、経験が少ないから全く分からない、って部分もあります。

まあ、、とにかく言えることは、、、勉強頑張りましょうってことだね!!