期間限定でWordPress開設が41%OFF!11/8まで

プログラミングでのコピペはガンガンしていくべきか【活用方法次第】

プログラミングでのコピペはガンガンしていくべきか【活用方法次第】


最近プログラミングを始めたばかりで、色々なサイトでコードを見る機会があるのですが、コピペしていいの?
それともそのまま書き写したほうが力になるの?
プログラミングでのコピペの是非について教えてください!

こんな悩みに答えます。

プログラミングを始めたばかりであれば、コピペは楽だけど、これでいいのかな・・・と不安になる人も多いハズ。

私自身も、プログラミングを始めたばかりの頃は「楽したいけどコピペしたらなんか力にならなさそう、、」と思っていました。

そんな悩みを、現役でWebエンジニアをしている私が解決策を紹介していきます。

この記事の内容

・プログラミングでコピペはOKか?
・(余談)授業などの提出物でコピペはバレる?
・正しいコピペのやり方
・コピペにはメリットもデメリットもある話
・プログラミングの写経VSコピペ どっちがいいか

早速紹介していきます。

プログラミングでコピペはしてもOK【活用方法を間違えない】

プログラミングでコピペはしてもOK【活用方法を間違えない】

結論ですが、プログラミングでコピペをするのは「使い方を間違えなければOK」です。

使い方を間違えないとは、

コードを理解した上でコピペを活用する

ということですね。

ちょっとわかりにくいと思いますので、具体的な例を出しつつ説明します。

コードを理解しながらコピペする方法

例えば、PHPで配列をソートしたいとします。(関数使えば一発ですが、例として1から書きます)

ソートとは、例えば数字を小さい順に並び変えるやつですね。

PHP
function bubble_sort(&$array){
    $size = count($array);
    for ($i = 0; $i < $size; $i++) {
        for ($j = 0; $j < ($size - 1 - $i); $j++) {
            if ($array[$j + 1] < $array[$j]) {
                $tmp = $array[$j + 1];
                $array[$j + 1] = $array[$j];
                $array[$j] = $tmp;
            }
        }
    }
}

$array = [100, 3, 30, 20, 44, 32];
bubble_sort($array);

上記のように書けば、下から2行目の部分の「100, 3, 30, 20, 44, 32」が「3, 20, 30, 32, 44, 100」と順番が変わります。

「なんかこう書けばソートできる」程度では思考停止状態なのでNGです。

ソートしたいなぁと思ったときに、上記をコピペすれば動いて終わり!ってなるのですが、なぜそうなったのかまでを理解する必要があります。

なぜなら、理解しないまま進めると自分で何も作れなくなるから。

「並び替え」はよく必要になってきますが、その途中で処理を加えたり、並び替え方が特殊だったりして、大抵は応用が必要になってきます。

その応用の際に、元々の基本形を身につけておかないと自分の力で書けるわけないですよね。

ぱっと見て理解できなかった場合

コードの中に分からない部分がある時には、途中で状況を確認しつつ理解していきましょう。

例えば先ほどの例であれば、途中でprint_r($array)として順番が変わっていく様子を1つづつ見ていくことで理解の助けに繋がります。

頻繁に状況を確認しながら進めるというのは必須スキルでして、理解を深めつつちょっとずつ進んでいくというのが基本です。

「コピペしたらプログラムが予想通り動いたからよし」ではだめなのか

反論として、「いやいや、コピペして思った通りの動きをしたからOKじゃないの?」と思う方もいると思います。

こちらについては、NGです。

後で聞かれても説明できるレベルを目指しましょう。

理由としては、以下の通り。

プログラムの理解が必要な理由

  • 大規模開発では、同じ部分を見直す機会が頻発する
  • 自分が何を書いたのか理解できていないと、バグが多くなる
  • 自分が理解しにくいコード=他人も理解しにくいコードなので改善が必要

ある程度は「誰が見ても分かるコード」を目指したほうがよくて、そのためにも理解できた部分はコメントしつつ進めていくのもアリです。

なお、動いたからいいやで進めていくと、自分の手で作る時に全く作れない・・・という現象に陥ります。

Ken

経験があると思うのですが、数学の問題の答えをうつしても、いざ自分で解くとなると全く分からなくなる現象と似てるかなと思います。

やはり自分の手で書けないと意味がないので、説明できる程度には理解した状態で進んでいくべきですね。

余談:プログラミングのコピペってバレる?

もしかしたら、プログラミングの授業などでわからなさすぎてコピペしようとしている人もいるかもと思ったので、コピペ関連の余談として書いておきます。

結論から言えば、コピペするとバレます。

検索して出てきたそのままのコードを貼りつけたような回答だと、ツールを使えば一発で分かります。

私の体験談
授業でちょろっとプログラミングを習ったのですが、知恵袋に質問して、回答そのままをコピペした人が何人かいたようです・・・。(そりゃバレるわなって話ですけど)
この話を先生から直接聞いたので、完全にバレてますね。

きちんと少しずつ理解しながら進めた人と比較しても、変数名や書き方、コメントなどでどうしても違いや性格が現れてきます。

一部分の処理を(書き写すのが面倒だから)コピペならセーフだと思いますが、全体をコピペするのは、よっぽど簡単なプログラムでない限り避けましょう。

Ken

コピペできる状況でも、理解してから先に進んでいかないと意味はないです。
優しい友人は、みんなに見せた後で自分のを書きかえていた模様。
関連記事
大学生がプログラミング副業で稼ぐためのスキルと難易度を現役エンジニアが解説 大学生がプログラミング副業で稼ぐためのスキルと難易度を現役エンジニアが解説 大学生がプログラミング副業をするために必要なスキルと難易度について紹介します。プログラミング副業の難易度はぶっちゃけ高いです。しかし、他のものよりも再現性が高く、かつメリットもかなり大きい。

プログラミングのコピペのメリットとデメリットを理解しよう

デメリットはここまで書いてきたように「自分で書いたものを説明できない」「自力でコードを書けなくなる」ですが、実はメリットもあります。

  • やはり楽
  • 色々な手法を試すことができる
  • 効率が良くなる

1つずつ解説していきます。

プログラムのコピペはやはり楽

長ったらしいコードで、分かり切っているような部分はガンガンコピペすべきだと思います。

プログラミングでは使いまわしも多く発生するので、楽をしましょう。

その中でも理解できない部分だけサクッと調べるという感じで良いと思います。

プログラミングのコピペは色々な手法を試すことができる

大抵コピペしただけではエラーが出ます。

原因は、

  • 書き方が違う
  • 手法が違う

のいずれかになるかなと。

なんとなく実現できそうな手法が3つ見つかったとすれば、1つずつとりあえずコピペで試すのがオススメです。

想像通りの動作を実現できそうな手法は大抵いくつかあり、コピペでスピーディに他の手法を試せるのでシンプルに経験値が貯まります。

プログラミングのコピペは色々な手法を試すことができる

その中で色々な手法を見たり、考えたりすることでさらに学習にも繋がってきますので、素早くPDCAを回せるという点でもコピペは優秀。

Ken

個人的には、「とにかく試す」ことを重視してプログラミングをしているので、うまくいきそうなコードはとにかくコピペして試しています。

プログラミングのコピペで効率が良くなる

分かり切っているところを手打ちするのは無駄です。

プロセスごとにブロック分けをしていって、理解できるところはコピペ

理解できないところは理解しつつ考えながら書いていく

というやり方がベターかなと思います。

やはりプログラムではひな形がいくつかあり、長ったらしくて覚えてられないものも多いので、ひな形はひな形と認識してコピペするのが一番ですね。

プログラミングの写経VSコピペ【結論】

まとめにはなりますが、以下の通りです。

結論
コードを見てパッと何がしたいかわかる→コピペ

コードを見ても謎な部分がある→写経 or コピペの後、中身に書き足すなりして説明できるレベルまで理解を深める

掲載されていたコードが使えるか知りたい→コピペして、動くかエラーがでてから理解する

特に一番下に関しては写経派も多いかもですが、動かないとやっぱ意味がないので効率重視の私としてはこんな感じです。

それでもガチ初心者の人は写経から始めよう

結構コピペ推しで書いてきましたが、それでもガチ初心者の方は写経から始めるべきです。

プログラミングの空気感とか、感動を覚えるにはやはり自分の手で書くことが大事だと思っていまして、楽しさこそが挫折しにくい勉強方法かなと思います。

基礎を勉強する際には、手を動かしつつ学ぶのが一番だと思いますので、教材を参考にしている間くらいは写経して「手で覚える」というのも大事です。

なお、挫折しにくい勉強方法については『【現役エンジニアが解説】初心者向けプログラミングの始めかた【0から1へ】』で解説しています。

上記記事では私が実際にプログラミング学習をする中で、効率よく学習できた!と思う方法ややり方を解説していますので、気になった方は読んでみてください。

プログラミングのコピペはうまく活用しよう

教材を使わずに、自分の考えた通りの物を作りたいという場面になってきたら、経験重視になってきます。

経験重視になってきたら、試行回数を増やすためにも積極的に(理解できないところを潰しつつ)コピペしていけばいいです。

逆に、最初の教材の内容をそのまま書いて予想通りの結果になるかを試す段階では写経しないと学習効率も落ちるかと思いますので、面倒でも写経重視かなと感じます。

この辺りで終わりにします。
最後に、参考になりそうな参考記事も貼っておきますので、合わせて読んでみてください!

挫折しにくいプログラミングの学習方法を知る

【現役エンジニアが解説】初心者向けプログラミングの始め方【0から1へ】 【現役エンジニアが解説】初心者向けプログラミングの始め方【0から1へ】 完全初心者向けに、プログラミングの始め方を現役エンジニアが書いていきます。私もこの内容で学習して、プログラミングスキルを得られました。学習方法やその後のキャリアについても触れつつ、ロードマップを書いていきます。

挫折したくないならスクールの検討もアリ

現役エンジニアが厳選!おすすめのプログラミングスクール3選【安め・学割あり】 現役エンジニアが厳選!おすすめのプログラミングスクール3選【安め・学割あり】 プログラミングスクールの数が多くてオススメが分からない。現役エンジニアがニーズ別に厳選した3社のスクールを紹介します。スクールの選び方としては、カリキュラムよりも環境を重視して選ぶのがポイントになってきます。