🧮

写経をすすめるおっさんの意見を若者は無視して良い

に公開

TL;DR

写経ではなくGitでCloneしたりForkしたり、ソースコードをダウンロードしたりコピペしよう。

Content

写経とは何でしょうか?

https://ja.wikipedia.org/wiki/写経

また日本のIT業界でも、コンピュータープログラミングを学習する者の間で、教科書やWebサイトに掲載された手本のソースコードを、コピー・アンド・ペーストせず実際に手を動かしてキーボードで書き写すことによって深い理解を得ようとする学習方法が、この仏教の修行にちなみ「写経」と通称されている。

なるほどですね。
コピペをしない手法と理解しました。

https://cybozushiki.cybozu.co.jp/articles/m000319.html

参照元をよく読むと、それは写経ではないのでは……と思いましたが、まあいいでしょう。

写経の良くないところ

プログラミングは手段なので、目的がない限り続きません。
なぜプログラミングをやるのかというと、ソフトウェアを作るためです。
ソフトウェアは完成するのが早ければ早いほど幸せになれます!
バグが少なければなおよし。
では本当に写経は必要なのでしょうか?

時間がかかる

まずはこれですね。
算盤をいくら極めたところで電卓やExcelには勝てません。
現代のプログラミングは昔のように一つのマイコン一つのプログラミング言語をマスターすればやっていける世界ではなく、プログラミングから発展した様々な知識が求められます。
一つのプログラミング言語をマスターすればそれで終わりというわけではなく、ランタイムの違い、パッケージマネージャーの使い方、フレームワークの使い方、型定義、オブジェクト指向プログラミング、デザインパターンなどなど学ぶことがたくさんあります。

エラーが発生する確率が高い

手を動かして写経するとtypoが発生したり、セミコロンを忘れたり、括弧の数が不足してエラーが発生します。
エラーが読めたりググって出てきた内容を理解できるのであれば話は別ですが、プログラミングを書いて動かしたい初心者にそれを求めるのはかわいそうです。
もちろんコピペしてもエラーが発生することはありますが、ググればコピペをしてちゃんと動くことが保証されているソースコードがそのうち見つかりますし、動くことが保証されているソースコードをコピペして少し変えたほうがエラーが発生する確率は低くなります。

エディタとツールが優秀

例えば変数名をxからyに変更したい時、VS Codeを使えば一つ一つ修正する必要はなく、単語単位で検索して置換したり、Ctrl + Shift + Lキーを押した後検索を終えyを入力すれば簡単に変数名を変更できます。
VS Codeを使いたくない場合でも、ripgrepのようなツールを使ってちょっと難しいことをやれば置換できます。

その他にもVS Codeには簡単に行をコピーできるショートカットキーがいくつか存在していたり、リファクタ機能によってより良いコードに変換してくれるので、一つ一つ入力することはずいぶん減りました。

日本語入力は早くならない

日本人は日本語を使うのでプログラミングを写経したところで日本語入力、いわゆるタッチタイピングが早くなるわけではありません。
タッチタイピングが早くなりたいのであればタイピングゲームで遊ぶか、日本語を写経しましょう。
タッチタイピングは早ければ早いほどよいとされています。
AIの登場により長文を入力する機会は減りましたが、SNSやチャットで短文を入力する機会は増えているので。

AIにやらせよう

身も蓋もないことを言えば、とりあえずコードをコピペしてきてChatGPTで初心者に分かりやすいようにコメントをつけてもらうとか、使いたくない関数やメソッドを排除したコードに修正してもらうとか、日本語で指示を与えて出力されたコードをコピペして自分で修正するとか普通にできてしまうので、現代において写経をやるメリットは感じないと思いませんか?
ベーマガに掲載されていたコードを写経してきたおっさんには理解できない話なのかもしれませんが……。

何か案は?

GitでCloneしたりForkしたり、ソースコードをダウンロードしたりコピペしよう。
その後増やしてみたり減らしてみたりして遊んでみよう。

GitでCloneしたりForkしたり、ソースコードをダウンロードしたりコピペしたものを公開する時はライセンスを守りましょう。
ライセンスが無いときはURLリンクを貼ったりしてソースを分かるようにしましょう。

(本当はそれぞれメリット、デメリット書きたかったけどやる気ないなった)

Context

結局のところ、「写経」が指すコンテキストが乖離していているだけな気がしてきた。
正直この記事を公開するのを躊躇しましたが、せっかく書いたので公開します。

Discussion