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

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

ただいまの
回答率

88.80%

プログラミング、わからない所は飛ばすべきですか?

解決済

回答 10

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 2,607

Java_Test2019

score 27

プログラミングの勉強に王道はないので、時間をかけてでも一つ一つ基礎を学ぶ事から始める事。
効率を気にする必要はない。とプログラミング関係ではネットでも世間でもどこでもよく聞きます。
しかし時間がかかりすぎてはいつまでも・・・と思います。
この話はまた今後、説明しやすい悩みにまとめられたら質問しようかなと思っております。

本題ですが、Javaを勉強していて、クラス型変数というものがわからず一日が経ってしまいました。
一日中一つの項目を、というのが普通のスピードなのかどうかはわかりませんが、時間も効率も気にしないでいいという話があるとはいえ、これが実務なら仕事になりませんよね。わからない所は飛ばすべきという人とわからないまま次に進むのはよくないという人がいます。明らかに一つに何十時間も縛られるのはナンセンスだとは思うのですが、クラス型変数に限らず他にもいろんな手段つくして調べてもわからなかった用語や文法がたくさんあって飛ばしてきました。クラス型変数を調べ始めた時も「これもわからない、いつものように飛ばすしかないか」と思ったのですがさすがに飛ばした数が多すぎると思い、調べる事にした結果1日かかってしまったという経緯です。そして何も学習できていない・・・。

一概には言えないと思いますが、それでも飛ばすべきでしょうか?

ちなみにただネットで調べまくっていただけではなく、関連する用語を調べたりと方法を模索したり、ここのような専門家の集まるサイトで質問したり、知人にJavaに詳しい人がいて質問したり、いろんなJavaの参考書のクラス型変数の項目の解説を見ました。(それでもオブジェクトという謎の物体があるという事までしかわかっていませんが・・・)

※ヤフー知恵袋などと違ってベストアンサー後も回答が来るものなのかと戸惑っております。
回答は多ければ多いほどいろんな意味で参考になるのでとても嬉しいのですが、長いあいだ返事がなかったらすみません。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 10

checkベストアンサー

+12

わからない所は飛ばすべきという人とわからないまま次に進むのはよくないという人がいます。

ものにもよります。「まず実務では使わない重箱の隅」を放置して先へ進むとか、あとは「今は理解するのは難しいので、先で説明するまでとりあえずおまじないとして進める」というのは、ありがちな話です。

ただ、Javaの「クラス型変数」については、使わなければごく限られたコードしか書けないような、すべての基礎になる箇所ですので、これを飛ばしてしまうと、基礎のない家を建てるような状態になります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+8

飛ばしていいところもありますが、基礎は飛ばしてはいけません。
クラス型変数は基礎の基礎の基礎なのでわかるまで踏ん張ってください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+5

Javaで挫折した人物としての意見を。

結論を言うと、飛ばすべきではありません。
始めの内のそれぞれ個別コンテンツを学ぶ上ではコンテンツによっては問題無い場合もあります。

しかし、それはあくまで個別で切り取って考えた場合には問題無い場合があるだけです。
最終的には全て繋がってきます。
一つ無視する連鎖的に分からなくなり、結果としてプログラム全体が分からなくなります。

ご自身が本気で取り組むなら順序よく理解を深めて行くべきです。
javaやプログラミングに限らないかもですが、実際参考書等を見てみると分かりますが、大概似た順番で章が組まれます。
これは、当然基礎からというのもありますが、その順番に理解しないと後々困るからという側面もあるからです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+4

プログラミングの勉強以外でも言える事ですが、戻ってみるのも大事です。
クラス型変数の前に構造体と関数を理解しましょう。Javaには構造体という概念はありませんが、Javaを親に当たるC言語には存在します。
きっとあなたにとっていきなりJavaは難易度が高かったのでしょう。振り返ってC言語から勉強してみる事をおススメします。C言語でもダメならC言語に影響を与えたとされるB言語やPascalをやってみましょう。
そうして理解すればおのずとJavaの分からなかったところも自然に理解できます。
その山があなたにとっては険しいのなら別の挑みやすい山から攻略していくのも手ですよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

一度飛ばしてみて、後で戻るのが王道だと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

なんつーか、あとから「そういうことだったのか!」ってなることもあるので、あえて他の方とは違う「行き詰まったまま悶々とするくらいであればコード書きまくって理解しろ」という助言をしたくなるような・・・

でもそれだと、よくわからないままコード作ってるコピペプログラマー(当然能力は低い)と紙一重になので、皆さんが謹んでいる気持ちもよくわかります。安易にそうは言えない。


わからないところは飛ばすべきか、ではなくて、Javaの初心者向けの教本とかで勉強している時点で、かなりすっ飛ばされていると自覚してください。

「オブジェクトは物」なんていうのは初心者向けの説明です。もっと厳密な説明はいくらでもあり得ます。「初心者にはわからねえだろ」「まともに書いたらそれだけで一冊書けちゃうので困る」「実は俺もよくわからん」といった判断のもと、本の著者が端折っているだけです。

その誤魔化しを真に受けて勉強すると、進めば進むほど訳がわからなくなる、ということは当然あり得ると思います。悲劇ですね。


ぶっちゃけた話、Javaは初心者には難しすぎるんだよ。他の回答者さんでそう書いてる人もいますが、基本的に賛成。

書いててコンピュータに命令している感じがしないですよね。抽象的な構造を作っていくことでプログラミングするんだけど、その構造の作り方にものすごく細かい作法があって、面倒くさいしそうする必然性がわからない、と初心者は思うはず。

なんでわざわざそんな言語を作ったのか、というところが大切です。昔は違うやり方でやってたんです。メモリの何番地の何ビット目を立てる、みたいな。あるいは、ここまで実行したら次は○行目にジャンプする、とか。手続き型言語(ただし非オブジェクト指向の)と呼ばれるような言語はたいがいJavaよりは素直に理解しやすいと思います。

ただし、それらはコンピュータの動作に寄り添った言語でした。人間の脳みそでコンピュータの動作をトレースできない規模になると、とたんに全体像が把握できなくなって、厄介なバグてんこもりになる。

オブジェクト指向で「オブジェクト」なんてものを扱いだしたのはなんでかというと、まあいろいろな説明はありますが、一つ挙げるとメモリ領域とその上のデータの管理に失敗する心配をなくしたくて、それを抽象化したんです。こう書くと、わかっている人は「まあそうだね、間違ってはいない説明だね」と頷いてくれますが、たぶん質問者さんにとっては「なんのこっちゃ」。


効率を気にする必要はない

を真に受けるんであれば、CPUの設計の仕方から勉強してください。それで機械語やってアセンブリやってOSとコンパイラやって、次あたりでようやく高級言語が登場します。オブジェクト指向にたどり着くまでに何年かかるかな? という世界。

妥協してC言語から、というのはそう悪くない選択です。そのまま下にも上にも比較的スムーズに進めるからです。

Javaから入るのであれば、下の方はもはや見えないので、できるだけ厳密な定義を参照して「そういもの」と丸呑みして進めていく力が要ります。

Javaのレイヤの説明はわかろうとわかるまいとすべて「そういうもの」として覚えないといけない、ということです。「こう書けば動く。なんでかは知らない」をものすごく緻密にやっていけば、マスターすることは可能でしょう(でもかえって難しいと思う)。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/09 16:52

    「分からないから端折る」のと「端折っても問題ないから端折る」のでは全く意味合いが違いますので、そこを判断できないのであれば「端折るべきではない」と。(ふと思った私の回答の説明不足部分)

    キャンセル

  • 2019/05/09 17:27

    こちらこそ説明不足ですみません。この質問投稿時に書いた最初の質問の文章の、「わからないところで行き詰まっていたら端折っていいかな」は後者の「行き詰まっているところが端折っても問題ないなら端折る判断をしていいか」というものです。全く違う意味の文章を書いてしまいました。そして問題ないなら端折っていいのは聞かずともわかる事ですよね。本当に聞きたかったのはその判断の折り合いをどうつけるか、なのですがよくよく考えればそんなの一概には言えないので質問として無理難題でした。

    キャンセル

  • 2019/05/09 17:29

    あれこれ考えながら書いていると日記っぽくなって他人には全く要点が伝わらなくなるので
    質問テンプレートを利用されたら良いかと思います。
    ※次の質問でも同じように日記っぽくなっているので調整してみてください。

    キャンセル

+2

言ってしまえば, 人に因ると思います.
ご自分の事情によって, お好きなように勉強して頂いてよいのはないでしょうか.

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

しかし時間がかかりすぎてはいつまでも・・・

わたしはCが実務で使える(自分が思っているだけかも?)ようになるまで4〜5年かかりました。(もとはアセンブラとPASCALだった)そのおかげでなんとか30余年仕事をしてこれました。基礎に時間をかけるのは大事なことです。実務では奇抜な仕様はまず無いので、基礎の応用だけで仕事になります・・・

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/25 18:00

    回答有難う御座います。同じところで詰まるっていう話はよく聞きます。
    それが1日だろうが1年だろうが基礎を!ですよね。当然な話だとは思います。
    という事は皆さんも専門家に聞くネットや本で調べる以外の方法をとっているという事ですかね・・・
    それが何かを調べます。

    キャンセル

  • 2019/04/25 18:16 編集

    私の頃(1990?)は本とIRC(Internet Relay Chat)だけが頼りでした。しかも殆どが英語;;IRCでは、FreeBSD3のCでプログラム(たしかShellソート)組んで「俺のほうが早いv^^」とかやってました。・・・けっこう勉強になった。・・・intelのマニュアルなんて1冊7千〜8千円ぐらいした、今はいいなぁ・・・と思っています。

    キャンセル

+1

解決済みですが。一言。とりあえず不必要であるならば飛ばすのもありです。が、何を持って不必要と考えるかはケースバイケースです。

必要性まで含めて考え、必要性も理解できなければ飛ばします。必要性を理解した上で、中身を理解できないならば飛ばしません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/28 22:57

    初学者に「必要性」を考えさせるのは無理があるのでは…?

    キャンセル

  • 2019/04/28 23:25

    はい。その場合は飛ばすようにします。

    キャンセル

0

小学校、中学校 ... で何年も勉強をしてきていると思います。
どのように過ごましたか?
得意な学科はどのような態度で学習してきましたか?
不得意な学科はどうして不得意になったのでしょうか?
受験などで得点を取れるようにするためにはどんな方法をとりましたか?

クラス型変数については、この理解を飛ばしていたら、プログラムを読み書きできる範囲は、ものすごく狭くなってしまいます。

まずは教科書(図書館で借りてきてもよい)で基本的な事を順序立てて習得することが必要です。
そして。ひとつの言語である程度しっかり学習した後なら他の言語学習の敷居はだいぶ下がります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 88.80%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る