プログラミングの勉強に王道はないので、時間をかけてでも一つ一つ基礎を学ぶ事から始める事。
効率を気にする必要はない。とプログラミング関係ではネットでも世間でもどこでもよく聞きます。
しかし時間がかかりすぎてはいつまでも・・・と思います。
この話はまた今後、説明しやすい悩みにまとめられたら質問しようかなと思っております。
本題ですが、Javaを勉強していて、クラス型変数というものがわからず一日が経ってしまいました。
一日中一つの項目を、というのが普通のスピードなのかどうかはわかりませんが、時間も効率も気にしないでいいという話があるとはいえ、これが実務なら仕事になりませんよね。わからない所は飛ばすべきという人とわからないまま次に進むのはよくないという人がいます。明らかに一つに何十時間も縛られるのはナンセンスだとは思うのですが、クラス型変数に限らず他にもいろんな手段つくして調べてもわからなかった用語や文法がたくさんあって飛ばしてきました。クラス型変数を調べ始めた時も「これもわからない、いつものように飛ばすしかないか」と思ったのですがさすがに飛ばした数が多すぎると思い、調べる事にした結果1日かかってしまったという経緯です。そして何も学習できていない・・・。
一概には言えないと思いますが、それでも飛ばすべきでしょうか?
ちなみにただネットで調べまくっていただけではなく、関連する用語を調べたりと方法を模索したり、ここのような専門家の集まるサイトで質問したり、知人にJavaに詳しい人がいて質問したり、いろんなJavaの参考書のクラス型変数の項目の解説を見ました。(それでもオブジェクトという謎の物体があるという事までしかわかっていませんが・・・)
※ヤフー知恵袋などと違ってベストアンサー後も回答が来るものなのかと戸惑っております。
回答は多ければ多いほどいろんな意味で参考になるのでとても嬉しいのですが、長いあいだ返事がなかったらすみません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答10件
0
ベストアンサー
わからない所は飛ばすべきという人とわからないまま次に進むのはよくないという人がいます。
ものにもよります。「まず実務では使わない重箱の隅」を放置して先へ進むとか、あとは「今は理解するのは難しいので、先で説明するまでとりあえずおまじないとして進める」というのは、ありがちな話です。
ただ、Javaの「クラス型変数」については、使わなければごく限られたコードしか書けないような、すべての基礎になる箇所ですので、これを飛ばしてしまうと、基礎のない家を建てるような状態になります。
投稿2019/04/25 08:37
総合スコア145183
0
飛ばしていいところもありますが、基礎は飛ばしてはいけません。
クラス型変数は基礎の基礎の基礎なのでわかるまで踏ん張ってください。
投稿2019/04/25 08:36
編集2019/04/25 08:40総合スコア28660
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
プログラミングの勉強以外でも言える事ですが、戻ってみるのも大事です。
クラス型変数の前に構造体と関数を理解しましょう。Javaには構造体という概念はありませんが、Javaを親に当たるC言語には存在します。
きっとあなたにとっていきなりJavaは難易度が高かったのでしょう。振り返ってC言語から勉強してみる事をおススメします。C言語でもダメならC言語に影響を与えたとされるB言語やPascalをやってみましょう。
そうして理解すればおのずとJavaの分からなかったところも自然に理解できます。
その山があなたにとっては険しいのなら別の挑みやすい山から攻略していくのも手ですよ。
投稿2019/04/25 08:45
総合スコア3307
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Javaで挫折した人物としての意見を。
結論を言うと、飛ばすべきではありません。
始めの内のそれぞれ個別コンテンツを学ぶ上ではコンテンツによっては問題無い場合もあります。
しかし、それはあくまで個別で切り取って考えた場合には問題無い場合があるだけです。
最終的には全て繋がってきます。
一つ無視する連鎖的に分からなくなり、結果としてプログラム全体が分からなくなります。
ご自身が本気で取り組むなら順序よく理解を深めて行くべきです。
javaやプログラミングに限らないかもですが、実際参考書等を見てみると分かりますが、大概似た順番で章が組まれます。
これは、当然基礎からというのもありますが、その順番に理解しないと後々困るからという側面もあるからです。
投稿2019/04/25 08:36
編集2019/04/25 08:38総合スコア445
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
なんつーか、あとから「そういうことだったのか!」ってなることもあるので、あえて他の方とは違う「行き詰まったまま悶々とするくらいであればコード書きまくって理解しろ」という助言をしたくなるような・・・
でもそれだと、よくわからないままコード作ってるコピペプログラマー(当然能力は低い)と紙一重になので、皆さんが謹んでいる気持ちもよくわかります。安易にそうは言えない。
わからないところは飛ばすべきか、ではなくて、Javaの初心者向けの教本とかで勉強している時点で、かなりすっ飛ばされていると自覚してください。
「オブジェクトは物」なんていうのは初心者向けの説明です。もっと厳密な説明はいくらでもあり得ます。「初心者にはわからねえだろ」「まともに書いたらそれだけで一冊書けちゃうので困る」「実は俺もよくわからん」といった判断のもと、本の著者が端折っているだけです。
その誤魔化しを真に受けて勉強すると、進めば進むほど訳がわからなくなる、ということは当然あり得ると思います。悲劇ですね。
ぶっちゃけた話、Javaは初心者には難しすぎるんだよ。他の回答者さんでそう書いてる人もいますが、基本的に賛成。
書いててコンピュータに命令している感じがしないですよね。抽象的な構造を作っていくことでプログラミングするんだけど、その構造の作り方にものすごく細かい作法があって、面倒くさいしそうする必然性がわからない、と初心者は思うはず。
なんでわざわざそんな言語を作ったのか、というところが大切です。昔は違うやり方でやってたんです。メモリの何番地の何ビット目を立てる、みたいな。あるいは、ここまで実行したら次は○行目にジャンプする、とか。手続き型言語(ただし非オブジェクト指向の)と呼ばれるような言語はたいがいJavaよりは素直に理解しやすいと思います。
ただし、それらはコンピュータの動作に寄り添った言語でした。人間の脳みそでコンピュータの動作をトレースできない規模になると、とたんに全体像が把握できなくなって、厄介なバグてんこもりになる。
オブジェクト指向で「オブジェクト」なんてものを扱いだしたのはなんでかというと、まあいろいろな説明はありますが、一つ挙げるとメモリ領域とその上のデータの管理に失敗する心配をなくしたくて、それを抽象化したんです。こう書くと、わかっている人は「まあそうだね、間違ってはいない説明だね」と頷いてくれますが、たぶん質問者さんにとっては「なんのこっちゃ」。
効率を気にする必要はない
を真に受けるんであれば、CPUの設計の仕方から勉強してください。それで機械語やってアセンブリやってOSとコンパイラやって、次あたりでようやく高級言語が登場します。オブジェクト指向にたどり着くまでに何年かかるかな? という世界。
妥協してC言語から、というのはそう悪くない選択です。そのまま下にも上にも比較的スムーズに進めるからです。
Javaから入るのであれば、下の方はもはや見えないので、できるだけ厳密な定義を参照して「そういもの」と丸呑みして進めていく力が要ります。
Javaのレイヤの説明はわかろうとわかるまいとすべて「そういうもの」として覚えないといけない、ということです。「こう書けば動く。なんでかは知らない」をものすごく緻密にやっていけば、マスターすることは可能でしょう(でもかえって難しいと思う)。
投稿2019/05/09 06:20
総合スコア30933
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/09 06:31
2019/05/09 06:32
2019/05/09 06:36
2019/05/09 06:53 編集
2019/05/09 07:48
2019/05/09 07:52
2019/05/09 08:27
2019/05/09 08:29
0
しかし時間がかかりすぎてはいつまでも・・・
わたしはCが実務で使える(自分が思っているだけかも?)ようになるまで4〜5年かかりました。(もとはアセンブラとPASCALだった)そのおかげでなんとか30余年仕事をしてこれました。基礎に時間をかけるのは大事なことです。実務では奇抜な仕様はまず無いので、基礎の応用だけで仕事になります・・・
投稿2019/04/25 08:54
総合スコア6851
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/25 09:00
2019/04/25 09:35 編集
0
解決済みですが。一言。とりあえず不必要であるならば飛ばすのもありです。が、何を持って不必要と考えるかはケースバイケースです。
必要性まで含めて考え、必要性も理解できなければ飛ばします。必要性を理解した上で、中身を理解できないならば飛ばしません。
投稿2019/04/28 13:52
総合スコア4830
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/28 13:57
2019/04/28 14:25
0
小学校、中学校 ... で何年も勉強をしてきていると思います。
どのように過ごましたか?
得意な学科はどのような態度で学習してきましたか?
不得意な学科はどうして不得意になったのでしょうか?
受験などで得点を取れるようにするためにはどんな方法をとりましたか?
クラス型変数については、この理解を飛ばしていたら、プログラムを読み書きできる範囲は、ものすごく狭くなってしまいます。
まずは教科書(図書館で借りてきてもよい)で基本的な事を順序立てて習得することが必要です。
そして。ひとつの言語である程度しっかり学習した後なら他の言語学習の敷居はだいぶ下がります。
投稿2019/04/26 16:24
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。