こんにちは、みやびのです。
プログラミングを14年ほどやっております。
今回は、
「Pythonのプログラミングの勉強には写経がいいと言われたけど具体的にどうやったらいいんだろう?」
という疑問に答えます。
写経と言われたので真面目なことに一字一句打ち込んでいる方も多いかもしれませんが、必ずしも丁寧に打ち込む必要はありません。
文字を一字ずつ打ち込むことはタイピングの練習にはなりますが、「プログラミングの勉強」としては効率が悪いです
コピペやエディタなどのツールを活用してもOK
作業効率の方法を考えることが大切です。
本記事では、私がおすすめする写経の方法について紹介します。
本記事の内容は以下の通り。

・Pythonの写経の考え方〜一字ずつ打ち込むのはやめよう〜
・Pythonの写経を実践する時のポイント
・私が写経で一字一句打つ必要がないと考えている理由

Pythonの写経の考え方〜一字ずつ打ち込むのはやめよう〜

写経
Pythonの写経を工程として分けると以下の通り。カッコ内にそれぞれの工程の重要度も書いています。飽くまで私の考えなのであしからず。

1.プログラムを書く(重要度:低)
2.書いたコードを観察する(重要度:高)
3.実際にプログラムを動かす+動くまで修正(重要度:高)

プログラムを書くという工程はあまり重要ではありません。
コピペだろうが打ち込みだろうが書けばOKです。
プログラムそのものを書くことよりも、観察して気づいたことを書き出すことが大事
そして最も重要なことは実際に動かすことです。
どんなきれいに書き写そうが動かないプログラムを書くことに意味はありません。

1.プログラムを書く(重要度:低)

Pythonを写経をする時はコピペを活用しましょう。
それこそ最初は全文コピペでも良いです。
「コピペってずるじゃん。一字ずつ手で打ち込んだ方が上達するんじゃないの?」
と思うかもしれません。
確かに一字ずつ打てば上達します。
タイピングスキルが。
そう頑張って一字ずつ打ち込んでも上がるのはプログラミングスキルではなくタイピングスキルなのです。
まあ、タイピングスキルが上がれば打ち込むスピードが上がるので勉強の効率は上がりますが。
しかし、今上げたいのはタイピングスキルではなくプログラミングスキルのはず
打ち込みはさっさと終わらせてプログラムの動作確認やコードの理解に時間を使うべきです。
「でもタイピングは苦手だしタイピングスキルも伸ばしたい」
という方もいると思います。
タイピングが苦手な方はプログラミングの勉強とは別に練習する時間を設けましょう。
「二兎を追う者は一兎をも得ず」ということわざにもある通り、プログラミングスキルとタイピングスキルの2つを同時にやるとどちらの勉強も中途半端になります。
一つずつスキルを取得していくことが大事です
タイピングが遅くて効率が悪いと感じているなら、まずはタイピングスキルを上げることに専念しましょう。
タイピングスキルが問題ないなら、打ち込みに時間を使わずにプログラミングの勉強に専念します。

2.書いたコードを観察する(重要度:高)

次に書いたコードを観察します。
そして気づいたことがあればノートにメモしておきましょう。
工程上は2としましたが、コードを書いている途中で気づいたことがあれば都度書き出すのが良いと思います。

・ざっくりとプログラムの概要を書く
・入力と出力結果
・一行ごとにどんな処理が行われているか
・プログラムの書き方
・その他気づいたこと

など。
最初はあまり時間をかける必要ありませんし、できる範囲で良いです。
必要に応じて参考書やネット検索も活用しましょう。

3.実際にプログラムを動かす(重要度:高)

コードを観察したら実際に動かしてみます。
おそらく最初は動かないことも多いと思います。
特にコピペしただけのプログラムであれば動かないことも多いです。
動かない場合は、エラーメッセージを見ながら修正箇所の検討をつけて修正しましょう。
プログラミングの写経はプログラムが望んだ動きになるまでが写経です。
動くまで修正を続けましょう。
とはいえ一つのコードに時間をかけすぎるのも問題なのである程度のところで見切りをつけてOKです。

Pythonの写経を実践する時のポイント

Todo

専用エディタを活用する

必ずプログラミング専用のエディタを使いましょう。
普通のテキストエディタとプログラミング専用エディタを使う場合では勉強の効率が全然違います。
プログラミング専用エディタはプログラミングを書くことに特化した様々な機能が実装されているからです。
特にメモ帳はめちゃくちゃ効率が悪いので絶対にやめましょう。
Pythonの場合はMacとWindows両方で使えるPyCharmがおすすめです。
PyCharmとは?エディタ概要と活用する3つのメリットを紹介

できるだけコピペできる方法を選ぶ

コピペできるものを選べばプログラムを書くという工程を大幅に削減できます。
コピペしやすい方法の一例は以下の通りです。

・公式サイトのチュートリアル
・電子書籍の参考書
・ブログやGitHubなどネット上に公開されているコード

ちなみに電子書籍はAmazonのkindle unlimitedがおすすめです。
月額980円かかりますが、無料で読める本もたくさんあるので十分元を取れます。
kindle unlimitedを活用するメリットについては「ITエンジニアがkindle unlimitedを活用する5つのメリット」もあわせてお読みください。

コピペできるところはコピペする

繰り返しとなりますが、コピペできるところは全てコピペで良いです。
文字の打ち込みに時間を使う必要はありません。

・ネット上のコードからコピペする
・既存の変数名や関数名をコピペする

コピペをフル活用してコードの理解や動かすことに時間を使いましょう。

書くだけでは意味がない。必ず動かそう

書くだけで終わらせることが全く無意味・・・とまでは言いませんが、プログラミングは動かしてなんぼです
なので写経だからと言って「書いて終わり」はやめましょう。
必ず動作確認はしてください。

改善点を見つける

動かした後は改善点を見つけることが大事です。
例えば以下のような内容を書き出して、次回にプログラミングするための改善に役立てます。

・時間がかかったところ
・ミスが多かったところ
・その他気づいたこと

最初は完璧でなくても良いです。
小さくてもいいので気づいたことはガンガン書き出し改善していきましょう。

コーディングの速度を上げるための5つのポイント

パソコン
写経を効率よく行うためにはコーディングの速度を上げることが大切です。
ポイントとしては以下の5つ。

・タイピングスキルを鍛える
・ショートカットキーを覚える
・よく使う単語を辞書登録しておく
・無駄に考える時間を減らす
・ググるスピードを上げる

タイピングスキルを鍛える

タイピングが早ければ早いほどコーディングの速度が上がるので、プログラミングスキルの成長にはほぼ必須のスキルです
ブラインドタッチは必須ではありませんが、できた方が速度が上がるので余裕がある方は習得しておきましょう。
「プログラミングのコードを写経すればプログラミングスキルとタイピングスキルの両方を鍛えられるんじゃないか」
と思う方がいるかもしれませんが、「二兎追うものは一兎をも得ず」という言葉がある通り2つのスキルを同時に鍛えようとすると中途半端になります。
コーディングでタイピングを鍛えるのではなく、別途タイピングスキルを鍛える時間を設けましょう

ショートカットキーを覚える

「CTL+C」(コピー)や「CTL+V」(貼り付け)などショートカットキーを多く覚えておくとコーディングの作業を速めることができます。
エディタやタイピングほどの効果はありませんが、ショートカットを覚えれば覚えるほどマウスやトラックパッドに手を伸ばす時間が減るので決して短くない時間の短縮になります
いきなり全部覚えようとすると挫折するので、「CTL+C」(コピー)や「CTL+V」(貼り付け)など「よく使う操作をショートカットキーでやる」ということを意識するようにしましょう

よく使う単語を辞書登録しておく

OSによく使う単語を辞書登録しておくことで、入力時間を短縮できます。
「ぷりんと」など読みを書いてもいいですが、一字だけで登録する方法もあります。
例えば「ぷ」と打ったら「print()」、「の」と打ったら「!=」などです。
あまり登録し過ぎると変換候補が増えてかえって時間がかかるのでよく使うものに限定しましょう。
関数名については、エディタでも予測変換してくれます。
辞書登録とエディタ予測変換機能をうまく使い分けましょう。

無駄に考える時間を減らす

タイピングなど文字入力のスピードばかりに目が行きがちですが、文字入力よりも無駄に考えて時間を使ってしまっているケースが意外と多いです
考えることは大事ですが、長時間考えるのは時間の無駄。
15分考えて答えが出ないことは1時間考えても答えが出ない可能性が高いです。
考えてもわからない場合はググったり人に聞いたりしましょう。
ググっても答えが見つからない場合は飛ばして次に行くことも大事です
1つに問題に時間をかけ過ぎないようにしましょう。

ググるスピードを上げる

コーディングは問題解決に使う時間も意外と多いです。
なので問題解決の時間を短くできればコーディングの速度を上げることができます
代表的な問題解決の方法はやはりググることです。
ググるって簡単に見えるかもしれません。
が、答えの記事に辿り着くことは予想以上に難しいです。
簡単に答えが見つかる問題もあればなかなか答えが見つからない問題もあります。間違った情報がヒットする場合もあります。
ググって正しい答えを見つけられるようになるためには何度も何度もググって練習するしかありません。
一度ググった内容はメモしておくと次に同じ問題が起きた時に解決の時間を短縮できます。何度も同じことをググらないようにしましょう。
自戒です(笑)。

私が写経で一字一句打つ必要がないと考えている理由

効率化
一字一句打つ必要がないと私が考えているのは、先述の通り「タイピングの練習にしかならない」という点もありますが、それ以上に「実際の仕事の時に一字ずつ打つのは非常に効率が悪い」というのが理由です。
一字一句打っていたら非常に時間がかかりますし、打ち間違いの原因にもなります。
特に昨今はスピード開発が求められるので、一字ずつちまちま打っていたら全く時間が足りません。
もし、実際の現場で文字を一字ずつ打つ方が効率的なのであれば、写経で一字ずつ打つことにも意味があると思います。
一字ずつ正確に素早く打つことが重要なわけですからね。
が、一字一句打つ方が効率的な場面などほとんどありません。大抵の場合コピペやエディタの機能を活用した方が効率的に作業を行うことができます。
なので一字ずつ打ったとしてもタイピングの練習にはなりますが、プログラミングスキルの上達にも実務的な練習にもなりません。
「一字ずつ打った方が頭に入る」
という方もいるかもしれませんが、一字ずつ打たなくても頭に入る方法を考えた方がよいと私は考えています。
何でも効率を求めるもんではないとは思いますが、効率化できそうなところはしていきましょう。

終わりに

「写経と聞くと一字ずつ打ち込むこと」と考える方もいると思いますが、コピペをガンガン活用して良いです
書き写すことよりもコードの観察や動かすことに重点をおきましょう
プログラミングの写経において最も重要なことは実際に動かすことは大事です
写経だからと言って書いて終わりではあまり意味がありません。
書いたら必ず動かすようにしましょう。
おすすめ記事Python入門者のための100日勉強方法
Python初心者向けの記事は「Pythonプログラミングの始め方まとめ」にまとめています。