質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

学習法

プログラミングやITエンジニアの学習法に関する質問を投稿する際にご使用ください。

意見交換

クローズ

17回答

2212閲覧

プログラミングの学習方法について

murama2

総合スコア113

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

学習法

プログラミングやITエンジニアの学習法に関する質問を投稿する際にご使用ください。

2グッド

4クリップ

投稿2024/01/24 02:04

編集2024/01/24 12:00

2

4

フロントエンドの勉強にてReactの基礎部分を学習し、簡易的ですが一からFirebaseと連携させたチャットWebアプリを作成したりしました。
次にNext.jsについても学習しようと思いちょうどセールがやっていたので、UdemyのNext.jsを使用したハンズオン形式の講座を購入し進めています。
ただ講座内でいろんなツールを使用しており、コードを写経するのに必死になってしまい、結局何をやっているかがわからなくなり、うまく自分の中に落とし込めていない感じがしておりモヤモヤしています。
そこで下記流れで学習することで、身に着けることができるかと思っておりますが、
無駄に時間を使っているのかなとも思ってしまっております。
進め方は人それぞれかと思いますが、
みなさんが思う効率的な学び方があればお聞きしたく思います。

■学習の流れ
1.講座を見ながら写経し、一つのWebアプリを完成させる

2.自分で入力したコードを見ながら、再度講座を見直し用語ややったことのポイントをまとめる

3.同じツールを使用し、一から何かWebアプリを作成する。作成する上でわからないことがあれば、講座を見直し問題解決のヒントとしても活用する

sonrisahy, naomina121👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答17

#1

ikedas

総合スコア4443

投稿2024/01/24 15:00

すんません。よくわからないんですが、その講座では「写経をせよ」との指導があったということなのでしょうか。またそうなのであれば、その「写経」というは何のために、どのようにやるのだとか、説明はあったでしょうか。

と言いますのは、個人的には、プログラミングの学習で「写経」と称する営為をこれまで行ったことがないため、「写経」という文言を目にするたびに、なぜそんなことをするのかとずっと疑問に思ってきました。個人的な興味で恐縮ですが、ご説明いただけるとありがたいです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

fana

総合スコア11954

投稿2024/01/25 01:50

編集2024/01/25 02:06

私もまた「写経」なる語の意味(というかそれを行う理由みたいなの)がわからない感じですが…

結局何をやっているかがわからなくなり

というあたりが問題なのであろうと読みました.
であれば……

「写経」を始めた際にはそこに何か意義や理由があったハズ → 「俺は ○○を達成するために 写経を行うぜ!」という強い意志を(継続的に)持って取り組めば良い,という話になるのではないでしょうか.

それでも○○が達成できていない様子であれば,「写経」なる行為は○○の達成に{あまり? ほとんど? 全く?}適していないのかもしれません.


個人的な拙い経験で言えば,
「何をやっているかわからない」状態に陥る場合というのは,参照している本など(今回は「講座」とのことですが)が自身の現状と合っていない可能性が高いように思います.
何でもそうですが,読者(「講座」だと「受講者」でしょうか)に想定しているレベル(前提知識の持ち具合,とでもいうか)というものがあり,「知ってて当たり前」みたくみなされている事柄は説明されたりしませんので,自身にそこが足りていないと全く話が見えなくなってしまいます.

そういう状況であれば,それは自身が悪いとかではなく,単に「その本とか講座は自分にはまだ早い」というだけなので,まずはもっと根本から説明してくれているような別の何かを参照して学ぶことを行い,後でまた今参照している物に戻ってくれば良いのではないでしょうか.
(本件が求めている「効率的」というワードに合致するかどうかはわかりませんが)

そうでなくとも,「なんか 合う/合わない」みたいなのもあり得るので,1つの教材(?)だけでうまく行かない場合は別の 探してみるのが良いのではないか,と.

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

mingos

総合スコア4190

投稿2024/01/31 14:31

最初に経験が浅いうちは効率的な時間の使い方などできないと割り切ってほしいです。
とりあえず脳死で写経は問題ありません!
まずはそのまま動く状態に持っていきましょう。
一番重要なのは次の段階です。
次はあなたのオリジナルなアプリケーションを作りましょう。
その時に、いろいろな疑問が出てきます。
その時に教材を振り返ってこれはどういう意味があるのかなどをググって調べたりすることになります。
これには相当な時間がかかりますが、これがあなたの資産になります。
かなりの試行錯誤と時間を使うことになりますが、技術を身に付けるとはそういう事ですのでやるしかないです。
しかし、これを繰り返しているうちに色々な点がつながって、新しい事を学ぶ時に要領よく学べるようになります。
がんばってください!

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

ikedas

総合スコア4443

投稿2024/01/31 14:54

#3

本当に個人的な疑問で申し訳ないんですけど、

「とりあえず脳死で写経」なら「動く状態」になるのが当たり前ですよね。

動かないとしたらミスタイプ以外に原因はないです。だとすると、正確なタイピング能力を鍛えることが目的なんでしょうか。それはプログラミングと何の関係があるんでしょうかーー間違えないようにしたければコピーアンドペーストでいいでしょ。そうやって手間を省けることがコンピュータを使用することの利点なんじゃないの、……というのが私の疑問です。

かつては、「他人の書いたコードを読もう」「読んだら次にコードを改変して実行してみて、どうなるか見てみよう」ということがよく言われていたと思います。

一方、「写経」というのは「心を無にしてコードを書き写そう」という意味なのかとも思われます。しかし、プログラミングではコードの意味を考えるべきなので、無心になってしまったらだめだと思うんですが……。なんでこんなことが推奨されるようになったのかが不思議なんです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

mingos

総合スコア4190

投稿2024/01/31 15:14

とりあえず動くまで持っていくのも初心者には難しいだろうという事ですね。
これもタイミングを逃すとソフトウェアのバージョンのかみ合わせで動かくなりますから、まずは思い立ったら吉日でできるだけ早く行動して欲しいと思っています。
その次に、コードを理解するという段階を踏みましょうという事を案内しています。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#6

fana

総合スコア11954

投稿2024/02/01 01:42

なるほど,「写経」なる作業の意義としては「まずは,全く何も無い状態から動く状態に持っていくまでの一連の作業の流れを体験する」みたいなのがあるのかも.

(1)コードを書く前の作業 → (2)コードを書く作業 → (3)コードを書いた後の作業

のうち,主に(1)や(3)のあたりを把握するのが目的,みたいな.
((2)で経を写す作業も必要だけども,その内容把握はとりあえずこの時点では重要ではない)

仮にそういう目的の作業なのであれば,(2)でとりあえず入力する「経」というのはかなり短い物が向いていそうです.

コードを写経するのに必死になってしまい

となってしまわない程度に.

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#7

otn

総合スコア85778

投稿2024/02/02 02:34

「写経」って、「難解な文章の読解は黙読より音読の方が良い」みたいな話かと思っていたのですが、
「プログラムの内容をよりよく理解しやすくするために、黙読だけでなく手も動かしてみる」のように内容理解目的でなければ、コピペすべきですね。環境や手順の確認のためにキーインするならhello worldレベルで。
というか、内容を理解していないプログラムをコピペして実行すること自体に意味があると思えません。内容を理解している(つもりの)プログラムを、コピペ実行して、いろいろ修正して、修正すると予想通りの結果になるかなどを確認するのでは?それで、「本当に理解できている」か「理解しているつもり」だったのかわかる。

「黙読」と「キーインしならがら読む」の間に内容理解度の差違があるかないかは人によりなのでしょうね。
私は差違があると思えないので、「日本語に翻訳しながら、翻訳した日本語を声に出す」をお勧めしますが。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#8

fana

総合スコア11954

投稿2024/02/02 04:02

編集2024/02/02 04:08

個人的には,内容が頭に入る(記憶に残る?)程度の具合は

紙に鉛筆で書く >>>>> キーで入力する >= 読むだけ

みたいな感じ.
そしたら,「写経」と呼ぶ行為に「コードがデータとして入力された状態を得る」以外の何らかの効能(?)を求めるのであれば,私の場合だと 手書きするのが良い ということにもなり得る…のか?
(トレードオフ的に「コードがデータとして入力された状態を得る」という効能は完全に失われますが)


自分の経験で「写経」と呼べそうなのは,
【「マイコンBASICマガジン」に掲載されていたコードをひたすら打ち込む】とかですかね.
まぁこの場合,目的は「動かす」オンリーなので,脳死で作業しようが何も問題無かったわけですが.
しかしそんなことをしているうちに自分でちょっとしたコードを書いて遊べるようになっていた気もするので,何かしらの学習効果みたいなのはあったのかもしれません.
それは実際には「脳死」ではなかったからなのか,何なのか,よくわかりませんが.

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#9

ikedas

総合スコア4443

投稿2024/02/04 06:16

編集2024/02/04 06:58

すんません。よくわからないんですが、その講座では「写経をせよ」との指導があったということなのでしょうか。またそうなのであれば、その「写経」というは何のために、どのようにやるのだとか、説明はあったでしょうか。

に対する応答がないのですが、これは意見交換なので質問者も投稿していいと思います。


#5

(…) まずは思い立ったら吉日でできるだけ早く行動して欲しいと思っています。
その次に、コードを理解するという段階を踏みましょうという事を案内しています。

つまり、「写経」自体には実質的な学習効果はなく、いわば「擬似体験」なのだということでしょうか——「自力でコードを書いてソフトウェアを動作させるまでのルーチン」の擬似体験、まず体を動かして雰囲気に慣れよう的なことなのかな。

一方、「写経」が今日のような意味で使われるようになったのはいつ頃からなのか、少し調べてみたんですが、次のものは今のところ最初期の用例です。

この中で「新しいプログラミング言語を学ぶときの具体的な方法」を問われた小崎は

最近のプログラミング言語って、たいていチュートリアルがあるじゃないですか、まずそれを黙って写経じゃないんですか。

と述べています。その意義として「体を動かすことで、脳が活性化される。だから体を動かすのには非常に意味がある。」としています。一方、西尾が「小さい単位で、考えながら書いて、実行して、結果がどうなったかを確認する、というサイクルを繰り返して」(強調引用者) いくことなのかと問うと「そうですね」と応じています。

これで思い出されるのは、B.W.カーニハン・D.M.リッチー『プログラミング言語C』(原著1978年初版) の冒頭のくだりの、いわゆる「ハローワールド」です。第1章1.1節 "Getting Started" でこう述べています。

The only way to learn a new programming language is by writing programs in it.

This is the basic hurdle; to leap over it you have to be able to create the program text somewhere, compile it successfully, load it, run it, and find out where your output went. With these mechanical details mastered, every- thing else is comparatively easy...

新しいプログラミング言語を学ぶ唯一の方法は、その言語でプログラムを書くことだ。

これが基本的なハードルである。このハードルを飛び越えるためには、プログラムのテキストをどこかで作成し、うまくコンパイルし、ロードし、実行し、出力がどうなったかを調べることができなければならない。これらの機械的な詳細をマスターすれば、他のことは比較的容易である。…

(強調引用者)

この後に、同書の最初のプログラム例である「ハローワールド」のソースコード (わずか4行) が示されます。

つまりカーニハンとリッチーが述べているのも、「新しいプログラミング言語を学ぶ」ために乗り越えるべき最初のハードルは「その言語でプログラムを書くこと」であり、そのためにはソースコードを作成し、コンパイルを成功させ、メモリにロードして実行し、出力を確認する、という一連のサイクルを繰り返すのだ、ということです。それさえできれば他のことはむしろ容易だとさえ述べています。

だとすると、一連のサイクルを回せるようになるにつれてソースコードはただ書き写すだけでなく自分で書けるようになるはずです。また、学習が進むにつれてコード例の内容も「小さい単位」のものではなく、次第に複数の要素が組み合わさったものになっていくはずです。いずれにせよ、写経の必要性・有効性は次第に薄れていくはずです。

要するに、「一つのWebアプリ」ができるくらいまで講座の講習内容が進んできている段階でコードを全て「写経」する必要はない、というか、端的に無駄な作業なのではないかとも思われます。


あと、この「写経」という言葉が出てきた時期が2010年代半ばだとすると、この時期にオンラインのプログラミングスクール産業が勃興してきたこととの関わりを邪推してみることもできそうです。不特定多数に対して講習するビデオ教材などだと、「写経」をやらせることは、人によって進度にばらつきが出る状況で「間を持たせる」効果があったのかもしれません。

つまり、コードを一字一句読んで書き写させることで「やっている感」を持たせる一方、常に手を動かさせておくことで個々人で理解に遅速があることを感じさせなくできたため、講習を行う側がこの手法を重宝していたのではないかと。……邪推ですが。

ちょっと長くなってしまいました。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#10

otn

総合スコア85778

投稿2024/02/04 09:50

ikedasさんwrote:

つまり、コードを一字一句読んで書き写させることで「やっている感」を持たせる一方、常に手を動かさせておくことで個々人で理解に遅速があることを感じさせなくできたため、講習を行う側がこの手法を重宝していたのではないかと。……邪推ですが。

なるほど。多分そう(スクール発祥)でしょうね。唐突に出て来た言葉な気がしますので。

結局「写経やってます」と言ってる人の大半は「意味を考えずキーイン」なのでしょうかね?
それを「写経」と名付けるのは、仏教修行のために本来の意味での写経をしている人に失礼だと思いますが。
(まあ、外人さんも含めた観光目的の写経だと、意味を理解しようとせず書き写している人多数でしょうけど)

学び方としては、私は具体的なアドバイスはできませんが、状況次第で色々ではないでしょうか?
・プログラミング自体が全く初めて
・他の言語でのプログラミングは問題なく出来るが、JavaScriptはよく知らない
・JavaScriptは読み書きできるが、React や Next.js にも手を広げる
・その他

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#11

fana

総合スコア11954

投稿2024/02/05 02:25

いきなり説明すること自体が{難しい,かえって混乱を生じる,etc}要素なので,とりあえず今は意味は考えずにコレはココに書いておいてください
……的なのってあるじゃないですか.「おまじない」とか言ってみたりするやつ.

C

1#include <stdio.h> //←これを「おまじない」とか称してとりあえず書かせる.コレの説明が行われるのはかなり後になる. 2 3//↓で,最初の説明はこの辺の内容から入る 4int main() 5{ 6 printf( "Hello World\n" ); 7 return 0; 8}

で,何らかの都合で「おまじない」の範囲を広げていくと,ある時点で「写経」になるのかも? とか.

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#12

mingos

総合スコア4190

投稿2024/02/05 02:35

ただ講座内でいろんなツールを使用しており、コードを写経するのに必死になってしまい、結局何をやっているかがわからなくなり、うまく自分の中に落とし込めていない感じがしておりモヤモヤしています。

自分用の学習メモを作成するといいと思います。
オンラインで後から振り返られるようにするといいでしょう。
何をやっているのか分からないところが出てきたら自分なりに調べて書いておくのです。
めちゃくちゃ時間かかりますが、それを繰り返していくうちに少しずつ点と点がつながっていくと思います。
よく分からないままいろんな教材に手を出しても同じ事の繰り返しになる気がします。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#13

murama2

総合スコア113

投稿2024/02/07 09:46

編集2024/02/07 09:56

回答が遅くなり申し訳ありません。
みなさんありがとうございます。

講座で写径をしろとは言われてはいないです。
私の中でのハンズオン系の学習の認識が、講師の入力したコードを自分の環境でも入力し動くものを作ってみるだったので、それだけに必死になっておりました。
これをそもそも写経と言うのかは、認識が違っていたらすみません。

みなさんからの意見をみて、確かに深く意味を考えていなかったことや自分のレベルと合っていなかったなと改めて冷静になると思いました。
また、それをやったその先まで考えていなかった事もあり、余計自分自身がわけわからなくなっていた気がします。

そのうえ、自分が思う学習方法が合っているのか効率的な方法があって自分は時間を無駄にしているのでは疑心暗鬼になってしまい、正解を求めて本サイトに書込みをしてしまいました。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#14

otn

総合スコア85778

投稿2024/02/07 14:09

講師の入力したコードを自分の環境でも入力し動くものを作ってみるだったので、

「写経しています」という人が実際に何をやっているのか私は知らないので、あなたのやっていることがその人の言う「写経」かどうかは分かりませんが、上記は何のためにやっているのでしょうか?

講師がちゃんと動かしているプログラムを自分でもちゃんと正しく動かせば同じ結果になるのは当たりまえです。そんなことを確認する意味は無いです。

1点目として、
開発環境を自分のPCに構築したのであれば、その構築が正しく出来ていて、自分がそれを正しく使えているのか?は、ちゃんと確認すべき事です(環境の確認と手順の確認)。基本的にはhello worldレベルのプログラムで良いはず。
が、ライブラリを使うとか、DBやブラウザと連動したテストが出来るかなどの、環境や手順の確認であれば、hello worldレベルでは駄目で、もうちょと機能のあるサンプルプログラムを使う必要があります。

講師の入力したコードを自分の環境でも入力し動くものを作ってみるだったので、

を、まさにそのためにやっているという自覚があってやっているのなら、それは大変意味があることです。
結果として、
・環境が正しく構築されていることが分かった(or不備があることが分かったので修正した)
・開発環境の操作方法が身についた
という成果が生まれたはずなので、数歩進んだはず。
上記が達成できれば、環境と手順の確認は完了だし、
達成できなければ達成できなかった理由・原因を考えて、それに応じて次の手を考えます。

自PCでの環境構築でなく、クラウド上の開発環境を使うのであっても、確認量の多少はあっても、確認は必要ですね。

2点目は、以前書いた繰り返しになりますが、
他人の書いたプログラムを読んで理解するのは勉強の方法として大変有効なので、その理解をどうやってやるか。
図とかを書きながら黙読もあるだろうし、音読もあるでしょう。キーインすることで理解が進むという人がいればそれでもいい。また、プログラムのここをこう変えると出力はこう変わるはずだと予想して、その予想があってるのかどうか確認しながら進む方法もあるでしょう。その他も色々。

講師の入力したコードを自分の環境でも入力し動くものを作ってみるだったので、

は、プログラムの内容の理解のためにやったのでしょうか?
黙読等に比べ、それをすることで理解にプラスになっていますか?

環境や手順の確認をするという意図も無く、そのプログラムの理解が進んだわけでもないのであれば、その作業は無駄だったという事になるかと思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#15

hogefugapiyo

総合スコア3302

投稿2024/02/13 10:09

Udemy教材はいわば、レシピ本みたいなものであり
「こういうのが最終的には作れるよ」という完成品ありきの講座が多くを占めます。

写経という表現が誤解をうみますが
レシポ本通りに作業を進めていると考えれば正しいアプローチと考えられます。
こういうのは、途中の作業手順などで「あるある」な制作に触れさせたりするのが目的です。

たとえば、料理わからん人にとりあえず野菜炒め作らせてみる。
そうしたら、次からは炒める料理なら他のものもなんとなく作れるかもしれませんよね。
超ざっくりですがそんなイメージです。

***

まぁ、なんのこっちゃという感じかもしれませんが、
せっかく買った講座なので、とりあえず完成まで1回走り切るのがいいかと思います。
講座は何度でも見返せるし、1回作ってみて「じゃあこういう機能を俺は追加してみたいぜ」ってなればそこを自分なりに追加して応用していくのも学習の良いアプローチになります。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#16

id9m4i2l67

総合スコア7

投稿2024/03/04 04:23

私も新しい言語を習得するときに、いわゆる「写経」をしているタイプの人間なのですが、
ネットに転がっているようなサンプルを見て、何か新しいものを作ろうとしたときに
いきなり目的のものを作ろうとすると結構つまづくこと多いです。

理由は2つあって
・サイトの情報が古くて今のバージョンでは動作しない
・サイトは必要最低限なことしか書かれていなくて実は不足している記述があった

というようなケースがあり、いきなり自分が目的とするものを作ろうとすると上記のような部分を知らずに
作り始めてしまい。ドハマりするケースが多いです。
ですので、最初は面倒でもサイトに書かれたプログラムを丸コピーしてビルドし、動作確認して動かないようであれば、その動かない部分を調べて、動くようになってから加工して学習を始めるという手順を踏んでいます。

なので、自分が書きたいプログラムをいきなり書こうとせず、最初はサンプル通り、一字一句変えずに記載して動作確認する=写経する。という手順を踏んでいたりします。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#17

退会済みユーザー

退会済みユーザー

総合スコア0

投稿2024/03/11 01:36

編集2024/03/11 02:31

😇😇😇😇😇

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問