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

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

新規登録して質問してみよう
ただいま回答率
85.48%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

解決済

6回答

1787閲覧

アルゴリズム勉強中に疑問に思ったことについて

sasagawa_haru

総合スコア5

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

1グッド

2クリップ

投稿2020/04/20 08:06

最近本格的に勉強を始めたエンジニア志望の学生です。
現在、progateのpythonの分野の学習を終え、pythonで始めるアルゴリズム入門という本でアルゴリズムを学んでいます。
本に載ってるアルゴリズムの内容を読んで答えのソースコードを見ずにプログラムを実装、自分で考えてみて15分から30分以上考えてダメなら答えのソースコードを見て写経するという方法で学習しています。
が、ページが進むにつれ、アルゴリズムの説明の内容を見てもプログラムにすることができず、ただただ答えのソースコードを写経するという感じになり成長を感じられなくなりました。
正直アルゴリズムの勉強自体は楽しくモチベーションはそこまで低下していないのですが、このままで良いのか心配です。

そこで質問なのですが、
①このまま写経を続けていくだけでも実際は成長できるのか
②わかるまで先に進まず、長時間でもじっくり考えたほうがいいのか
③2~3週など周回する必要があるのか
④ ①~③以外での勉強方法の改善案または、体験談
です。
よろしくお願いします

nico25👍を押しています

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

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

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

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

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

Zuishin

2020/04/20 08:20 編集

アルゴリズムの解説を見て、それをコードに起こせない人には二種類あります。 1. 致命的にプログラミングに向いていない(素質 0) 2. 基礎が足りていない そのどちらでもなければ、アルゴリズムが分かればコードに起こせるはずです。 できないなら、まず入門書から始めてください。 答えを見るのは無駄。 考え込むのも無駄。 日本語からプログラミング言語に機械的に翻訳できなければいけません。
maisumakun

2020/04/20 09:01

> アルゴリズムの解説を見て、それをコードに起こせない人 「文章の方が理解できない」というパターンも考えられます。特に、初心者の場合や専門知識が必要な分野の場合は、まず何をどう動かすか理解するだけで大仕事となります。
Zuishin

2020/04/20 09:52

文章は理解できている前提で考えていましたが、そうなるとちょっと難儀ですね。「pythonで始めるアルゴリズム入門」の表紙を見たところ、フィボナッチ、ハノイの塔、クイックソート、二分探索などのごく基本的な学習向けアルゴリズムの名前が並んでいたので、これらのアルゴリズムをわかりやすく解説し、理解度チェックのために設問があるのかと思っていました。 それらを読んで実装に移っていることから、アルゴリズムの理解自体はできたのかと思っていたんですが、理解せず実装に移ろうとしたなら、先に答えを打ち込んでステップ実行しながら理解するほうがいいのかもしれません。
nico25

2020/04/26 02:06 編集

コメント、失礼いたします。Python の学習サイトを制作しております python.ms 。書籍のどのあたりから難しい、あるいは辛いなと感じられたか、教えていただけないでしょうか?サイトの内容を向上させる際に参考にさせていただきたく、ご教示いただけると幸いでございます。
guest

回答6

0

ベストアンサー

質問文に付いているコメントが正解だと思いますが、いずれにせよ、「出来ない原因」を分析して対処しないと、的外れな学習をすることになりますね。

・日本語が理解できない
・アルゴリズムが理解できない
・そもそもプログラムがどのように動くかが把握出来てない
・言語の基礎が身についていない
・言語の機能(クラス、関数、メソッド等)を逆引き的に調べるスキルが弱い
・記憶力が弱い
・・・・・

などなど。
質問文はきちんとした日本語なので、「日本語が理解できない」は無さそうな気がします。

①このまま写経を続けていくだけでも実際は成長できるのか

1度目で、分からなかったアルゴリズムが理解できて、「ははん。分かった。今度から自分で書けるぞ」となるのであれば有効。
コメントにあるように、アルゴリズムが理解できて、言語を知っていれば、翻訳できるはず。

「日本語の文章の文意が分かって、英語を知っていれば、和英翻訳できるはず」と同じですね。

②わかるまで先に進まず、長時間でもじっくり考えたほうがいいのか

出来ない原因次第。

③2~3週など周回する必要があるのか

2度目は「ははん。分かった。今度から自分で書けるぞ」の確認をするのは意味があるが、2回目で出来なければ、1回目の理解が嘘だったか、記憶力が絶望的に弱い(1回目を忘れている)かなので、原因別に対処する。

投稿2020/04/20 09:38

otn

総合スコア84538

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

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

sasagawa_haru

2020/04/20 13:05

回答ありがとうございます。出来なかった原因をその都度考えてみようかと思います。的外れな学習ほど怖いものは無いと思うのでそうならないように勉強してみようと思います。
guest

0

写経すること自体はいいのですが、写経しながら「なぜこうなっているのか」を考えなければいけません。
プログラムとはアルゴリズムを記述したものに他なりませんから、そこに書かれているコードはアルゴリズムを体現しているのです。

貴方がアルゴリズムをプログラムに落とし込めなかった部分が模範解答ではどうなっているのか。自分がどこで勘違いをしてしまったのかを、きちんと見直せれば、実りあるものになるとおもいます。

投稿2020/04/20 08:49

tacsheaven

総合スコア13703

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

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

sasagawa_haru

2020/04/20 12:59

回答ありがとうございます。自己分析も怠らずに頑張ります。
guest

0

学校のテストじゃないので、写経から入っても全然良いんじゃないですか。

実際に動くモノを作って動作させながら、自分が難しいと思ったところをデバッグ実行した方が理解が早まる事もあると思いますが。

写経して終わり、だと何やってんだか…となりますが。

投稿2020/04/20 08:22

gentaro

総合スコア8949

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

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

sasagawa_haru

2020/04/20 12:56

回答ありがとうございます。写経して終わり…にならないようにデバック実行などを重点的に試してみようと思います!
guest

0

第2章に「2.1 フローチャートを描く」というのがあるようですが、アルゴリズムが分かっているのならば、それからフローチャートを描ければ、フローチャートを経由してコーディングできるようになると思います。
(いまどきの開発ではフローチャートは使わないと思いますが、コーディングが困難な間は描くことでコーディングが楽になると思います)
フローチャートからのコーディングすら困難なら、言語(Python)の勉強に戻ってください。
アルゴリズムが理解できないのならば、理解できないままでもコーディングを進め、実際に(デバッガ配下等で)プログラムを動かしてみて、条件判定がどっちへ転ぶか、変数の値がどう変わっているかを確認することでアルゴリズムの理解が深まると思います。

投稿2020/04/20 10:30

sage

総合スコア1216

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

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

sasagawa_haru

2020/04/20 13:09

フローチャートは今どきは使われないと知っていたので使うのを毛嫌いしていました、、、まずはフローチャートから取り組み、理解を深める方向で頑張っていこうと思います。回答ありがとうございました
guest

0

なんとも言えないですが、アルゴリズムなんて知らないものを考えても時間の無駄なので
最初は写経で十分です。ちょっと時間をおいて、お手本を見ずにかければOK

投稿2020/04/20 08:09

yambejp

総合スコア114829

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

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

sasagawa_haru

2020/04/20 12:50

回答ありがとうございます。このまま最初の一歩として写経を使ってみようと思います。
guest

0

あくまで全て私個人の意見ですが、

①このまま写経を続けていくだけでも実際は成長できるのか

無理でしょう。実際に使い方を考えて下さい。

②わかるまで先に進まず、長時間でもじっくり考えたほうがいいのか

いい方法だとは思いますが、分かるや理解するではなく、使い方を考えましょう。
こういう場面で使えるなと言う発想に切り替えるとよりスムーズに身に着けられると思います。

③2~3週など周回する必要があるのか

勉強と言っても社会に出てしまえば、テストとは違い、全てを丸暗記する必要はありません。
カンニング放題なので、いつこんなことやったなと言うレベルでもその時々に調べれば済む話です。

④ ①~③以外での勉強方法の改善案または、体験談

私の場合は、先にCやC++を勉強していたのでpythonの学習はほとんどしなくても身に付きました。
多文何言ってんのか分からないと思いますが、頭の中に立体な図面をプロックみたいに積み重ねていくようなイメージでいつもプログラムの学習を行っています。

投稿2020/04/20 08:21

stdio

総合スコア3307

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

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

sasagawa_haru

2020/04/20 12:53

詳しい返答ありがとうございます。使い方を考えるというのは盲点でした。発想の一つで問題への見方が大分変りました。ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問