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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

10回答

2951閲覧

java なぜその答えになるのかを分かりやすく理解する方法って何ですか

kentros511

総合スコア122

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2016/11/24 14:32

編集2016/11/24 14:34

###意図

今まで上司の方に覚えが悪いのでどうしたらいいですかと聞いてみたら、お前が理解できていないものはこっちにはさらにわからない、知らねーよの一点張りでしたが、なぜその答えになるのか理解できていないといわれました。

java silver合格したいです。

なぜその答えになるのかを自分でわかるようにしたいです。

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

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

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

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

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

guest

回答10

0

自分の質問を読み返してください。
質問の内容は伝わるけど、質問する相手の読解力に頼りすぎていると思いませんか?
質問を具体的に、簡潔に考える癖をつけた方がいいですよ。

また、上司が言っているのは何も知らない状態で質問するな、せめて足がかりくらいは理解して質問しろって事じゃないでしょうか。

投稿2016/11/24 14:46

yona

総合スコア18155

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

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

kentros511

2016/11/24 15:00

そうなのですか いつも高圧的なので読み取れませんでした。 ありがとうございます
yona

2016/11/24 15:05

高圧的と感じるのはあなたの視点ですよね? 上司からすると使えない部下に対して自分で問題解決する力や考える力を養うように突き放して教育しているとも取れます。
kentros511

2016/11/24 15:13

そうだったんですか 上司の方には本当申し訳ない気持ちでいっぱいです
guest

0

こんにちは。

お前が理解できていないものはこっちにはさらにわからない、知らねーよ

kentros511さんの質問を見る限り、上司の方の気持ちが理解できてしまいます。
恐らく、ご自身が抱える課題を言語化できていないと言うことだろうと思います。
ある意味、言語化できれば勝ちです。それほど言語化することは難しいです。

ここの質問するときのヒントはなかなかできが良いと思います。teratailで質問する時だけでなく、会社の中で技術的な問題点を解決するための基礎でもあるし、言語化するためのヒントも書かれてます。熟読しトライされることをお勧めします。

投稿2016/11/24 15:06

Chironian

総合スコア23272

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

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

kentros511

2016/11/24 15:16

よく読んでおきます
swordone

2016/11/25 02:29

この質問するときのヒントは、厚生労働省が提唱する「社会人基礎力」の「課題発見力」に通じるところがありますね。
guest

0

1つおすすめの手法として、「ベアプログラミング」(ペアではない)という方法があります。やり方はかんたんで、

ある大学の計算機センターのヘルプデスクのそばにはテディベアのぬいぐるみが常備されており、摩訶不思議なバグに悩む学生は、人間のスタッフに相談する前にぬいぐるみに向かって説明しなければならないことになっていた。

というように、まず人間に質問する前に、相手を問わず「声に出して説明する」ことで自身の理解を整理する、という手法です。

自分自身、他人に説明するのもそうですが、どうしても引っかかったことや気になることをteratailに質問しようとまとめている過程で、「あれ、こうだったんだ」と質問せずに解決してしまうことが時折あります。

投稿2016/11/24 14:58

maisumakun

総合スコア145184

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

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

kentros511

2016/11/24 15:04

スペシャリストの方でも日々直されてるんですね ペーペーの僕には参考になりました
guest

0

また質問が抽象的ですが、1つ言えるとしたら、コードの各行で何をしているか説明出来ますか?その結果、どの変数がどう変化したのかが追えますか?
それがわかれば、おのずと「答えがそうなる理由」につながるはずです。

投稿2016/11/24 14:47

swordone

総合スコア20651

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

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

kentros511

2016/11/24 15:02

さすが総合1位の方ですね コード1行1行にコメントをきちんとつけられることができるという勉強法に変えます 頭が固くて思いつきませんでした。ありがとうございました
swordone

2016/11/24 15:04

総合1位(無職時代にここに張り付いていて簡単な質問に即座に回答してポイント稼いでいただけ)
swordone

2016/11/24 15:35

と言うかむしろ今までやってなかったんですかレベルなんですが プログラムは究極的には1行1行の積み重ねです。「風が吹けば桶屋が儲かる」というような突飛な話ではないのです。出て来る結果にはきちんと理由があります。
guest

0

質問を読んで感じたのは「言語化ができてない」なぁということ。
自分で言語化できない問題を、どうやったら他人が解決できるでしょう?

逆に考えてみてください。例えば、上司がなにか質問をしてきたとして。
どう質問してくれたら答えやすそうですか?

そうした視点を持って質問をすると、自然と質問の内容を精査するようになると思います。

そしてこれを訓練する一番いい方法は「学んだことをブログに書くこと」です。
さらに言うと、「未来の自分」に対して書いてみてください。

人間は忘れる動物なので、未来の自分は今まさに学んだことのいくつかを忘れていると思います。
そんなとき、「過去の自分だったら分かってたのになぁ」と思うときがあると思います。

まさにこの「過去の自分」になったつもりになって、「未来の自分」に「きっとここを忘れていると思うけど、こういうことだよ」という視点でブログを書いてみてください。
すると自然と「分かりづらい点」や「将来忘れそうな点」に焦点を当ててブログを書くことができます。
そして「未来の自分」が読んだときに理解できる内容は、他人がそれを見てもそれなりに理解できる内容になっているはずです。

なので、学んだことをとにかくブログに書いて言語化しておくと、理解の助けになるばかりでなく、将来そのことを忘れたときに思い出すいいきっかけにもなるのでとてもおすすめですよ。

投稿2016/11/25 09:00

edo_m18

総合スコア2283

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

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

0

私は趣味でやっているので、的外れなことを言っている可能性もありますが。

他の方々が仰っているように、「略さずに言うこと」と、「筋道を立てて説明すること」が必要です。

私は、ソースコードを読むときは、変数・配列の動きや、関数名 ( Javaならメソッド名 ) から推測したり、
googleで 「Java System.(略)」みたいにして検索してチェックします。

で、私が アルゴリズムの 「バブルソート」等を理解&暗記するときは、その一行一行を読み、パターンから推測したり、コメントをつけて、「流れ」で理解します。

たとえば、
バブルソートなら、

  1. for文で要素数分 ループする
  2. 1 の中で for文で "後ろから" 行うように設定
  3. 2の中で if文を使い、現在位置の値と次の値( 後ろからなので、現在位置-1 の位置 ) の値をチェックし、ソート状態じゃない時 (昇順なのに、前の方がでかい等) 、"交換アルゴリズム"で値を交換する

という感じ。

これをソースコードにすると、

Java

1// mainメソッドや ソート用メソッド内として。 2 3// int[] array: ソート対象の配列 4// int work : 交換アルゴリズムで交換するときの一時変数 5// が定義済みであるとする。 6 7// 最初のfor文で「要素数分ループ」する 8for( int i = 0; i < array.length(); i++ ){ 9 // 二番目のfor文では、「後ろ」からチェックするために設定 10 for( int k = array.length() - 1; k > i; k-- ){ 11 // if文でソート済みじゃない状態かどうかをチェック 12 if( array[k] < array[k-1] ){ 13 // 交換アルゴリズムで交換 14 work = array[k]; 15 array[k] = array[k-1]; 16 array[k-1] = work; 17}

のように、一行ずつ、何をやっているのかをコメントとして記録し、
流れを読む。

ですかね。

投稿2016/11/25 05:52

BeatStar

総合スコア4958

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

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

0

わかりやすいJava入門編

わかりやすいJavaオブジェクト指向編

上記シリーズは初心者にも分かりやすいと思うので万一購入が難しければ図書館ででも探してみて下さい

投稿2016/11/24 14:55

編集2016/11/24 15:13
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

kentros511

2016/11/24 15:03

Javaの本はたくさんありすぎて買いましたが理解するのが難しいです。 スッキリ入門なら持ってます
ikedas

2016/11/25 01:12

> スッキリ入門なら持ってます それは『スッキリわかるJava入門 第2版』(インプレス刊) のことでしょうか、あるいは同じシリーズの「実践編」のことでしょうか、もしかして「第2版」より前の古い版をいまだに使っているのでしょうか、……それとも、なにかまったく関係ないほかの本のことを言っているのでしょうか。 ものごとを説明するときは、ひとつひとつの言葉を略さず、正確に言わないと、熊さんには伝わりませんよ。
guest

0

上司だからといって部下の面倒をすべて見るわけではありません。
どこを面倒みてくれる上司なのか見極めましょう。少なくともあなたの質問の面倒を見る気はないと思います。

確実に受かるするには資格合格用の参考書を何冊もやればいいかと思います。1冊自分に合うやつを深く読み込んで、後はざっくりでもいいと思います。
1冊でも何回も受験すれば受かると思います。

投稿2016/11/28 00:53

tantanegg

総合スコア213

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

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

0

私は新入社員で右も左もわからなかったころ、
月に300時間以上プログラミングのことで過ごしたことないでしょ?と言われました。
なので内緒で月に300時間以上プログラミングのことで過ごしてみました。
その訓練を続けていたら少しずつ上司に怒られなくなりました。

投稿2016/11/25 11:28

curekaishine

総合スコア82

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

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

0

なぜその答えになるのかを分かりやすく理解する方法

みんなが経験している数学とか英語とか学校の勉強でも、
大部分の人は何年もかかって何とか分かったはずですから、
学習期間を劇的に短縮できる魔法は残念ながらありません。


その上であえて言えば、プログラミングの勉強が
学校の勉強とは違うところに、下記の点があります。

  1. 社会人になってからする(人が多い)
  2. 子供時代ほどの知識の吸収力がない
  3. 仕事中に時間を割きにくい(場合が多い)
  4. 若い分野なので、勉強法、教育法が確立してない
  5. 学習する分野を選択する余地が大きい

これらの点から、主体的な学習が有効になります。

学習時間をどう確保するのかとか、学習書選びとか、
そもそもどんな分野を学習するのかとか。

学校に通えば先生が教えてくれる子供と違って、
自ら計画実行する主体性が必要です。


java silver合格したい

必ずしも資格にこだわる必要はないですが、
少なくとも質問者の方が望んでおられるなら、
参考書を読んだり試験問題集などを解くのは基本として、
その上でとくにコードを読む力を養うのが良いと思います。

プログラミング学習の一番最初の時期は手を動かして、
とにかく動かしながら覚えるのが有効です。

また、「(完全に理解していないが)なんとなく動いた」という場合も、
これまでのプログラミングで経験していることと思います。

しかし、サンプルコードを一行ずつ、何度も読み下して、
実行結果を予測すると、苦しいですが力になります。

そして、予測が外れた場合は、どこで誤解していたのか調べます。
これも「なぜその答えになるのかを理解する方法」ではあります。
分かりやすくというのが、楽という意味なら少し違いますが。

しかし、試験問題も読むだけで分かる必要があるので、
どのみち合格するためには、読む力が必要だと思います。

投稿2016/11/25 10:34

LLman

総合スコア5592

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問