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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

7回答

1718閲覧

Google検索で答えが見つからない問題へのアプローチ法

DaisukeIshii

総合スコア44

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

4クリップ

投稿2016/03/22 09:06

みなさま、Google検索で答えが見つからないタイプの問題が発生した時、どの様に問題にアプローチされていますか?
(注:職業エンジニアの方は、毎日そういう状況だと思っております)
漠然とした質問で恐縮ですが、私自身StackOverFlow/Qiita/Teratailなどを中心としたGoogle検索の方法は徐々にスキルアップしているものの、検索で歯が立たないレベルの問題に直面した時にどうしても思考停止になり、時間だけが経って歯がゆい思いをしています。
考え方のツボ、問題解決のアプローチ法、思考方法のフレームワークなどありましたら、是非お教えください。
熟練したエンジニアに対面で教えてもらうしかないという意見や、大きな問題を解決可能なレベルまで砕いて対処するといったノウハウが見受けられます。皆さんはどの様にこの壁を乗り越えられていますか?

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

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

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

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

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

guest

回答7

0

ベストアンサー

問題というのは、プログラムのバグについて言ってますか? 質問文を読んで、問題が起こった時の対応の順序が違うような印象を受けました。

いきなり検索するのではなくて、まずは、エラーメッセージなどを頼りに原因となっていそうな怪しい部分をいくつか挙げてみてください。そして、自分なりに原因についての仮説を立て、怪しい部分を、ひとつずつ潰していくのです。プリント文や Rails なら Pry を使ってデバッグしたり、プログラムを一部書き換えたり、コメントアウトしてから動かしてみたり。いろいろな手段を使って、切り分けをしてください。

こうして、範囲が絞られてくると、何を調べたらいいか、具体的にわかってきます。その時点で、解説書やAPIドキュメントを読みなおしたり、検索したりすればいいのです。Googleなどで漫然と検索するのではなくて、使っているフレームワークのバグ管理サイト(GitHub issues とか Bugzilla とか)や、ユーザーメーリングリストなどで検索する方が、探しているものが見つかりやすいです。

最初はもちろん何もわからず、手探り状態でしょうが、こういうプロセスをとることで、着実に問題解決のスキルが上がります。たとえ、原因が最後までわからず、解決できなかったとしてもです。(その時は解決できなくても、数ヶ月後に消化した知識を元に、自己解決することもあります)

また、自分が主に使う言語やフレームワークについては、勉強に時間を割いてください。ウェブにある情報は間違っていたり、古かったりすることが多いので、どんなことができるのかアイデアを得るにはいいのですが、そこからしっかり学ぶことはできません。書籍を買うのは必須です。

書籍で紹介されているプログラムは、そのまま打ち込んで動かしてみるのはもちろんですが、動いた後、少し変えてみて、どうなるか見てください。ちょっとした機能を追加してみるのも、かなり有効です。こうやってみると、読んでわかったつもりが、案外わかってなかったことに気づき、苦労した分、より深く理解できます。そして、書籍を一度読んで終わりにするのではなく、何週間か経ってから、もう一度読むのも重要です。また、デバッグに使える道具についても学んでください。

あと、そうだ。デバッグに行き詰まったら、誰かに説明してみるのもいいです。相手に専門知識は必要ありません。むしろ知識がない方がいいかも。周りに誰もいなかったら、ペットとか、植物とかに説明してもいいです。そうしていると、不思議なことに、解決の糸口が見つかることが多いですよ。

投稿2016/03/22 11:31

tatsuya6502

総合スコア2035

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

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

DaisukeIshii

2016/03/22 12:15

アドバイス有難うございます!頂いた情報を基に今後も精進してまいります。 引き続きのご指導よろしくお願いいたします。
guest

0

下記の2パターンの問題は諦めます。

  • 答えが世の中で出ていないような問題(数学の未解決問題など)
  • 答えを出せないことが不可能もしくは非常に困難だと分かっている問題(悪魔の証明など)

ただし、上記の2つに該当するかどうかを判断するための知識が必要です。

そのうえで、

  • 自分と周囲の人間が分からないだけで、答えがあると分かっている問題

という前提であれば、
そもそもそうならないように、前提知識を増やす努力をします。
(ネット検索などで、付け焼き刃的に知識を増やしていても、どうしても偏ってしまうので、書籍やリファレンス、マニュアルを中心に網羅的に知識を増やします。)
前提知識が増えると、Googleなどでのキーワード検索のバリエーションも増やせるので、検索でヒットさせれる率が高まります。

わかっていることと、わかっていないことを図を含めてホワイトボードなどに書きだしておくのは考え方の整理や問題をシンプルにするという点で役立ちますし、周囲と共有できるため、アドバイスや意見などを貰いやすいと思います。
私の場合、ホワイトボードは落書き帳と呼んでて、ほぼ独占して使ってますw
ホワイトボードを使っているうちに自己解決することが多いです。
(性格的にノートは見返すことがほとんどないので、ほぼ使いませんw 勉強の時は使いますが。)

それでも、答えが見つからない問題と遭遇した場合、
見つからないことを早めに報告して、調査と平行しつつ、別の提案も考えると思います。

投稿2016/03/22 10:34

Odacchi

総合スコア907

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

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

DaisukeIshii

2016/03/22 12:16

アドバイス有難うございます!頂いた情報を基に今後も精進してまいります。 引き続きのご指導よろしくお願いいたします。
guest

0

ものによりますが,OSSを利用した際に起きた問題であれば,
githubのissueに同様の問題で困っている人がいないかを確かめます.
過去ログと同じ対処方法で解決できたり,未解決の問題なのかどうかがわかることが結構多いと思います.

teratailであった質問だと,

https://teratail.com/questions/30364
https://teratail.com/questions/25487 などが

githubのissueとほぼ同様の質問内容で,結構前から上がっていた質問です.

あとは,バグでコケた時はひたすらにググるのではなく,スタックトレースを見てどこの処理の何が問題なのかを自分でできる範囲で分析します.

利用しているライブラリの依存関係が問題なのか,
自分の実装したコードが問題なのか,
またこれらとは別の問題なのか,

問題がなになのかがわかれば,解決策がわからなくても質問しやすいですし,
検索する方向性も定まると思います.

これはだいぶ主観に偏った考え方ですが,
いきなりググるのが効果的なのは,環境構築など.
原因を突き詰めてからググるほうが早いのは,開発時に起きる問題
だと私は思っています.

とにかく愚直にググり続けるのは,誰かが同じ問題に直面していて,
それをweb上に記事にしないと解決することが永遠にないので,あんまり良くないと思ってます.

投稿2016/03/22 10:12

編集2016/03/22 10:16
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

DaisukeIshii

2016/03/22 12:17

アドバイス有難うございます!頂いた情報を基に今後も精進してまいります。 引き続きのご指導よろしくお願いいたします。
guest

0

日本語の検索を止めてみる。話はそこからだ、日本語使っている時点て、成長が止まる
あと、本を書く人の言葉で、「ソースを読め」というのもある。

本の作者の意見や考えを知ることも、ヒントになる。

投稿2016/03/22 11:06

編集2016/03/22 11:08
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

DaisukeIshii

2016/03/22 12:15

アドバイス有難うございます!頂いた情報を基に今後も精進してまいります。 引き続きのご指導よろしくお願いいたします。
guest

0

・他の検索キーワードでヒットしないか色々と変更して再検索してみます
・類似すると思われる別のケースを考えて検索し見つかった結果をアレンジして適用してみます
・周りに相談してみます
・日本語の情報を諦めて英語も範囲に入れて検索してみます

投稿2016/03/22 10:07

HiroshiWatanabe

総合スコア2160

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

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

DaisukeIshii

2016/03/22 12:17

アドバイス有難うございます!頂いた情報を基に今後も精進してまいります。 引き続きのご指導よろしくお願いいたします。
guest

0

投稿2016/03/22 09:08

編集2016/03/22 10:19
matobaa

総合スコア2493

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

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

DaisukeIshii

2016/03/22 12:17

アドバイス有難うございます!頂いた情報を基に今後も精進してまいります。 引き続きのご指導よろしくお願いいたします。
guest

0

・妥協してレベルを一段階下げた物にする
・諦める
・Teratailで質問する

投稿2016/03/22 09:39

cat_breed

総合スコア123

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

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

DaisukeIshii

2016/03/22 12:17

アドバイス有難うございます!頂いた情報を基に今後も精進してまいります。 引き続きのご指導よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問