私は去年の8月下旬から毎日5時間はプログラミングの勉強をしているのですが、一向にできるようになりません。本に書いてあることもよくわからないし、わかっても本に書いてあることしかできず自分のやりたいことは実現できないし、エラーが出ても解決できず20時間くらい何の進捗もなかったこともありましたし、そもそもわからなくてイライラします。
私は中学生から数学がやってもやってもできるようにはならず、国語英語社会の偏差値が記述模試で偏差値75くらいあったのですが、数学は最初は30くらいで最後まで55位止まりで全くできるようにはならず、これがプログラミングができないことと何か関係しているのだと思っています。
もうやめたほうがいいですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答10件
0
この質問のタグに Ruby を選ぶ人が国語で安定的に偏差値 75 を取れるとはにわかに信じがたいのですが、本当だとすると文脈を認識する能力の欠如を補えるくらい記憶力とセンスが飛び抜けて優秀なんでしょうか。
そう仮定するなら、恐らくは勉強方法が間違っているので、それを改善するだけで劇的に理解できるようになると思います。
質問の状況を見るに、特定の問題を解決するための特定のプログラムを一生懸命覚えようとしているように思えます。
しかしその特定の問題など実践で使えるはずがありません。
それはあくまで一例に過ぎませんので。
今のあなたに必要なのは 10 勉強して 8 覚えることではなく、1 を習って 10 を知ることです。
過去のプログラムを記憶を元に再現する能力はもう十分だと思いますが、そこばかり鍛えようとしているように思います。
二つお薦めします。
まずはデザインパターンをざっと理解すること。完璧でなくて構いませんし、理解できないところは飛ばしてください。「具体的な方法」ではなく「抽象的なものの考え方のパターン」を覚えてください。
もう一つは自分で作ること。
それも実用的なものではなく、小さく簡単なものを作って改良することです。
例えば「標準ライブラリよりも汎用的で速いソート」ではなく、「10 個の乱数を配列に格納してそれを表示するプログラム」です。
それができたら「10 個の要素を持つ配列を小さい順に並び替えるプログラム」です。
効率的な並び替え方をネットや本で検索してはいけません。
10 枚のカードを用意してどうしたらそれを並び替えることができるのかを自分で考えてください。
人間が並び替えを行う時に脳の中で無意識にどのような手続きを行っているのかを観察して模倣すればいいと思います。
それができたら 10 個ではなく任意の配列を処理できるよう改良してください。
このように少しずつ少しずつ自分の中に「プログラミングの考え方」を浸透させていくのです。
それは今までの「記憶や勘」に頼ったやり方とは大きく違うでしょう。
「問題を解くために必要な部品」が何かを見極め、「それを作る能力」と「組み立てる能力」を養ってください。
投稿2018/02/15 02:15
総合スコア28660
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/16 00:33
2018/02/16 00:47
2018/02/16 02:30 編集
2018/02/16 02:39
0
辞めたいなら誰も止めないと思います。
仕事としてするのであれば偏差値とプログラミングは関係はそこまでないと思いますけどね。
数ヶ月程度で独り立ちできるのであれば誰も苦労しません。
追記:
勉強時間やら偏差値やら20時間やって進捗なしやらで「自分はこれだけやっているのに!」という苦悶が見えなくもないですが、
大事なのは量より質です。有意義な時間を使えているか振り返ってみてください。
どれだけの時間をやったからと定量的に成長できるものではありません。
ほら、受験で難関大学に1日20時間勉強しても合格できない人と、2,3時間程度で合格できる人といるじゃないですか?
あの違いって頭の作りが違うとかそういう概念的なものではなくて、如何に短時間で高い質のものが得られているか、だと思うんですよね。
投稿2018/02/15 00:21
編集2018/02/15 01:50総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/15 11:25
2018/02/15 11:45
2018/02/15 11:48
2018/02/15 14:42
2018/02/15 22:55
2018/02/15 23:04
2018/02/15 23:17
2018/02/16 00:37 編集
2018/02/16 01:34
2018/02/16 02:25
2018/02/16 02:34 編集
2018/02/16 02:49
2018/02/16 02:55
2018/02/16 02:57
2018/02/16 03:00 編集
2018/02/16 03:00 編集
2018/02/16 03:00
2018/02/16 03:02
0
ここはプログラミングに関係のない質問をする場所ではないのですが、敢えて回答してみます
辞めても良いと思いますし、続けても良いと思います
それを選ぶのは誰でもないあなただと思います
自分も3年ぐらいやって初めて、ライブラリがバグってることに気づいて、ライブラリに手を加えてみようかな、と思ってその時直って「良くやった」って言われて初めて「コード書くのが楽しいな」って思えたぐらい時間がかかりました
それまでは本当に英語が辛い、仕様書の専門用語が分からないので調べに行ったがそれも意味が分からない、そもそも何でそういう風な書き方をすると目的のコードに辿り着くのかすら分からないそんな状態でした
プログラミングには数学的な素養と仕様書を読む読書力、そしてその行間を読み込む読解力、最後にそれを素直に実行する愚直な性格と少し考える能力が必要だと思います
それらが養われるまでは、楽しいと思えるまでは本当に苦痛だと思います
なので、続けた方が良いだなんて思いませんし、勧めません
自分で決めてください
自分は5,6年ぐらいで思い出すと辛い出来事もいっぱいありますが、楽しかったですよ
投稿2018/02/14 21:40
総合スコア426
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/15 01:05
2018/02/15 06:11
2018/02/15 06:16
2018/02/15 06:39
2018/02/15 06:47
2018/02/15 09:14
2018/02/15 14:46
2018/02/15 15:49
2018/02/15 15:52
2018/02/15 15:58
2018/02/15 16:01
2018/02/15 16:19
2018/02/15 20:21
2018/02/15 23:33
2018/02/16 01:39
2018/02/16 03:31 編集
2018/02/16 03:36
2018/02/16 04:30
0
ベストアンサー
質問を見ていて感じたのは、「覚えることがとてもとても得意ではないですか?」ということ。
国語英語社会などは、出てきた内容を覚えておけばかなりの点が取れるものかなと思います。
しかし、数学やプログラムは「覚えるだけ」では上達しません。
料理を例えに使ってみると。
「包丁の使い方」「フライパンの熱し方」「鍋の使い方」などなど、「道具の使い方」はたくさんあります。
しかし考えてみてください。
包丁の使い方や、熱し方を「100%覚えた」として、「おいしい料理」ができると思いますか?
おいしい料理とは、作る相手のことを考え、好みを考え、食材を考え、それにあった「調理法」を「選択する」ことが重要です。
このあたりは「覚えていること」をいくら総動員してみても成し得ないことです。
つまり。
プログラムの教科書などに出てくるのは、あくまでこうした「道具の使い方」だけなんです。
プログラムができるようになるためにはこの「考える」ことが必要不可欠です。
プログラムを書いたその先にある、どんなことをしたいのか、どうしたら成功なのか。
そうしたものは千人いれば千人分の答えがあります。
これは「覚えたからいい」という類のものではないのは想像つくかと思います。
結論を言うと。
プログラムとは、という「概念」をまず学ぶべきだと思います。
なぜプログラムが動くのか。どうしてそういう書き方をするのか。
そしてコードを書く段になったら、一度教科書などに頼らず、自分の想像力で書いてみてください。
最初はエラーなどが出ると思いますが、簡単なプログラムでもいいのでひとまず想像だけで書き上げて、その後に、エラーを修正していく、という過程を踏めば「考えてプログラムを書く」ということが身につくかなと思います。
投稿2018/02/15 03:43
総合スコア2283
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/15 04:18
2018/02/15 04:31
2018/02/15 05:38 編集
2018/02/15 06:14
0
先に言いますが、自己責任です。
興味があるか?
好きですか?
が、「いいえ」であれば。
やめるべきです。時間の無駄です。
また、偏差値は、関係ありません。
投稿2018/02/15 14:23
総合スコア338
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
長文ですが失礼します。
私はプログラミングというものは二段階のプロセスがあると思ってます。
1.やりたいこと、問題の解決までの道のりを順序立てて思考、理解する
2.順序どおりにプログラム言語化する
という二段階です。この二段階の内、全体を決めてしまうのはいうまでもなく
1番の方です。ここの仕事が9割だと個人的には思っています。
勉強しているというのは大概「2」だけをやっています。
プログラマーと聞くと「パソコンに向かってよくわからない言葉を打ち込んでいる」
みたいな姿かと思うのですが実際は「よくわからない言葉を打ち込んでいる」段階で
殆どの作業は終わっています。「打ち込む内容を考える」ことが本体です。
作業的にはプログラマーはその言語の「翻訳家」です。日本語を英語に直したり
するのと同じです。大事なのは日本語の文章を理解することですよね。
「わからない」というのはどの段階でしょうか?
例えば『変数iに1を代入する→「var i=1;」』みたいな段階でしょうか?
この段階は2の段階に相当し「翻訳家」で言えば英単語や文法を覚えている
段階なので「わからない」というのは単純に「覚えていない」ということを
意味しています。「その文法、単語を使うということ」自体に理由はないので
どうしようもないです。
やりたいことがわかっているのに、どうすればいいのかが「わからない」
ということであれば差し当たっては現在のスキルに対しての「ゴールが遠すぎる」
と思います。
目標を分解して、順番に理解して、全てを組み合わせたときに「やりたいこと」
ができるかと思います。長くても1週間以内で達成可能な目標を立てることを
繰り返す方がいいと思います。「1」の段階では数学はあまり関係ないですが
論理的な思考は必要だと思います。
投稿2018/02/15 05:07
編集2018/02/15 05:08総合スコア3828
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/16 02:06
2018/02/16 05:52
2018/02/16 07:02
0
自分のやりたいことは実現できない
一度この「やりたいこと」を紙に書き出して、rubyに囚われずどうすれば実現できるかを試行錯誤してみると何か見えるかもしれませんよ。
仕事ならわかりませんけど、趣味ならこれに尽きますからね。
また、「本に書いてあることしかできない」のではなく、「本に書いてあることしか知らない」だけですから、情報収集の絶対量を増やすことでも、突破口が見出せるような気がします。
「本に書いてあることがよくわからない」とのことですが、一冊の本によってその暗示にかけられているだけかもしれませんので、その意味でも別な情報の収集をお勧めします。
ここで質問している分、やる気はあるわけですから、あとは暗示を解くだけです。
投稿2018/02/15 01:37
編集2018/02/15 02:39総合スコア2043
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
その状況でよく続けられるなあ、と感心しました。
おそらく、貴方にとってプログラミングは
できなくても困らないものなんじゃないスかね。
そういう意味で、自分を追い込む対策をとるのはどうでしょうか。
あと、独学だと限界がありますから、
だれかと一緒に勉強するとか、どっかで開催されている
勉強会に参加するとかやってみると目先がかわって
いいかもしれません。
投稿2018/02/15 01:00
総合スコア7458
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
どの段階で詰まっているのでしょうか?
それを伝えるだけでも、何か答えがでるかもしれませんよ。
投稿2018/02/14 23:49
総合スコア15
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。