どうも、フリーエンジニアのウェブ系ウシジマくんです。
先日、FacebookとTwitterでこんな質問を投げかけてみました。
エンジニア歴の長い方は質問されるときに、その人自身が「このレベルまでは最低限自力で調べておいて欲しい」っていう線引きはありますか?
これに対して様々なエンジニアの方から意見をいただくことがあったので、自分の意見も踏まえてまとめてみました。
そもそもググレカスとは何なのか?
まずは、ググれカスとはなんなのか、早速Google先生に聞いてみました。
ググレカスとは、インターネットの掲示板やチャットにおいて、検索エンジンなどで調べればすぐに分かるような質問に対する決まり文句。2008年版の「現代用語の基礎知識」にも新規として掲載された。
過去ログを読んだり、自分でちょっと調べれば済むことをいちいち質問する、いわゆる「教えて君」が増え、それがネットユーザーの反感を買い、「それくらいググれ(Google検索などを使って調べろ)、このカス野郎」という意味で、返答されるようになったことに始まる。
はてなキーワードより
これだけインターネットが発展している現代において、ググり力というのはもはや仕事をする上での必須スキルと言えるかもしれません。
プログラミングだけでなく、今はあらゆる出来事はGoogleで検索したらすぐに出てきます。
でも、自分が欲しい情報に対して、すぐに答え(=検索結果)を導き出せるかどうかは、かなり個人差があるかと。
僕ら人間はAIではないので、調べた結果を全て記憶するというのは到底無理な話。
人に聞くよりも、ググった方が早いこともありますからね。
【ググレカス問題の真実】スキルが高いエンジニアほど、ググるスキルも高い。
これまで多くのプロジェクトに参画してきましたが、スキルが高いエンジニアやプログラマーは、ズバ抜けてググり力が非常に高いという共通点がありました。
自分の求めている答えにすぐにたどり着けることができるので、不明点があってもすぐに解決でき、結果的に仕事・コーディング力が高いんですよね。
いくらプログラミングスクールや技術本でプログラミングについて勉強したところで、実際は現場によってソースコードはかなり違う。
だから、各言語における基礎がある程度できたら、あとはググり力を身につければ経験年数がそこまでなくても大丈夫。
基礎とググり力さえあれば、大抵のコーディングはできるようになっちゃいますから。
ググレカス問題に対する僕の意見
実際、僕もウェブ系フリーエンジニアとして案件に参画していますが、やはりプロジェクトごとにわからないこともたくさんあります。
どうしてもわからないことがある時には、当然現場にいる他のプログラマの方に質問することになりますね。
ただ、質問するタイミングや内容としては次のことを意識しています。
- 参画するプロジェクト固有の値や実装方法は質問する
- 上記以外のプログラミング本来の機能やメソッドについては、なるべくググって解決する
以前の僕は、
「わからないことがあったら、すぐさま質問して効率よく進めていく方が良くない?」と思っていました。
もちろん、効率よく業務を進めていくことは大前提ではあります。ただ、ある程度自分なりに考えた上で質問するのと、何も考えずに質問するのとでは、スキルの習得に大きな差が出てしまいます。
多少なりとも自分の中で意見や考えを持った上で他人に質問する方が、より理解が深まり、応用ができるというもの。
ググレカスという言葉はひどいように聞こえますが、実際は「調べてから質問した方が自分自身のためになるから、それを踏まえて自分なりの考えを持った上で質問してきてね」という真意が隠れていると僕は思います。
的外れな質問は自分の首を絞める
かつてSES契約をした現場に派遣エンジニアとして常駐していたとき、わからないことがあったときに隣の席にいたエンジニアにしょっちゅう質問していました。
質問するとそのエンジニアは、すぐに手本となるプログラムを教えてくれたのですが、結果その現場は2ヶ月契約のところを1ヶ月で退場することに。
後日営業経由で、次のようなフィードバックを現場からもらいました。
「質問回数が多く、調べたらわかることなのに自分で解決しようとしない。内容も基礎的なことが多いので、スキルレベルが低い。」
ある程度調べた上で質問していたつもりだったのですが、今思えば質問の仕方がよくなかった。
その時の僕の質問はこうです。
「ここのメソッドについて調べたんですけど、わかりませんでした。どのように書いた方がいいでしょうか?」
これでは相手に回答を丸投げしているのとほぼ同じですね。
調べてみたことは伝わるものの、質問者がどこまで理解して、どこが理解できていないのかが回答する側がわからないからです。
それよりも、次のように質問されたらどうでしょう?
「ここのリファレンスを参照して、次のようにコードを書いてみました。エラーにはならないものの、戻り値が意図した挙動になりません。このメソッドはOOの挙動をすると理解していますが、渡す引数の値が違うのでしょうか?」
このように質問されれば、回答する側もピンポイントで説明できるので、余計な手間をかけずに済むはずです。
何よりも、自分がどこまで理解しているのかが明確になるので、質問した側も回答をもらったときに、より頭に残りやすくなるのが一番のメリットではないでしょうか。
ググレカス問題に対する様々な意見を紹介
ここでは、ググレカス問題に対する僕の親しいエンジニアたちの意見を紹介します
質問される側は、どのような考えを持っているのかがわかるので、質問する際の参考になると思いますよ。
質問:「エンジニア歴の長い方は質問されるときに、その人自身が「このレベルまでは最低限自力で調べておいて欲しい」っていう線引きはありますか?」
「ググるワードが思いつかない場合は聞く」がググる力の有無を問わず言えることかなーと思います。それこそエラーコードとかエラーメッセージについて調べるのであれば、そのまま検索フォームにコピペして調べられますが、細かいコードの書きっぷりに関してどっちのほうが良いかな?ってのをググるのは初心者には難しいと感じます。ただ、「エラーコードでググると良い」ということすら分からない場合も結構あるので、エンジニアが躓いた時のググりTipsみたいなのを教えてくれる人だと凄く良いですよね…。
僕はこれを調べたら解決するよ、というところまでアドバイスすることが多いです☻
エラーコード貼り付ければ答えはみえてくるけど、そこからさらにこんがらがってくる人もいるので、常に自力で解決できるヒントを提供したいなーと。
ただ、自分が忙しい時は教え方雑になりますw
教授も言ってたけど、
自分の現在地を整理しておく事がベター、
更に「どこまで調べたか?」を言ってもらえると、
より相談に乗ろう!と思えるかなぁ。
「エラー出ました。分かりません!」って丸投げで聞いて、よく刺されたので…笑
私の場合はその人自身が調べれうるパターンを全部調べてほしいですね(^_^)
人によってパターン数は違いますが、やれることは全てやってから質問されると嬉しいです!
そうすれば、新しい調べ方を教えれるのでより質問者の調べ方が増え、教える側も同じ質問されなくてすむかと思います!
僕はほぼないですかね〜。 やる時は15分自分でやって分からなかったら聞いてかな〜 分からないで悩んでいる時間がもったいないし、 限界まで調べて!と言うと、皆、萎縮して聞きづらくなるんですよね。 いつでも質問できる良い関係を築きつつ、 教える節々で自分の考えを織り交ぜて 相手に成長の仕方を気付いてもらうが僕の最適解です!
まとめ:ググレカス問題は相手の立場に立って考えると、解決策が見えてくる
質問する側の立場からすれば、自力で解決できない問題が出た瞬間にすぐ誰かに聴きたくなるものですよね。
でも回答側からすれば「ググれば大体答えはのっている。そんなわかりきったことを何回も聞かれるのはちょっと。。。」って思うことも。
それぞれ見ている景色が違うので、噛み合わないことがあるかもしれません。
自分と相手は見ているポイントが違うということを念頭においた上で、上手に質問し、スキルを磨いていくことが、エンジニアとして成長するために必要な要素なのではないでしょうか。