世の中のエンジニア(プログラマー)は、仕事上の悩みや問題をどのようにして解決しているのでしょうか。
それともそもそも、できる人は悩みなんてないのでしょうか。実はどんなプログラマーでも、ソースコードを書く時にどう書いたら良いのかわからずに悩んだり、試行錯誤を繰り返したりしています。
今回は、そんな時に役に立つ「質問の仕方」「質問サイト」について紹介しましょう。
この記事の目次
プログラミングはエラーがつきもの
エンジニアはプログラミングの仕事を続けていると、様々なトラブルに見舞われます。
ソースコードの書き方がわからなかったり、完成させたつもりでもエラーが発生して、作り直しが必要になったり。そんな時に、どんなことを心がければ良いのでしょうか。
まずはそれを説明しましょう。
新しいことをやろうとすると前に進みづらい
「これから新たにプログラマーになろうと考えている人」
「プログラミング学習を始めたい人」
「既に何らかのプログラミング言語を習得しているけれども、新たな言語を学習したいと考えている人」
いずれも独学では学習に詰まって、なかなか前に進めないということは良くあります。
特に既にエンジニア(プログラマー)として働いているけれども、仕事の都合上、新しいプログラミング言語での開発が必要になった時。そのような状況だと、新しい言語の学習に必要な時間をなかなか捻出できないものです。それでいて「結果」はすぐに求められる・・・ということはよくあります。
ある程度言語を使うことができる様になれば開発速度は上がりますが、どうしても「こんな時はどうするのが良いのだろう?」と悩むシーンもあるでしょう。検索しても対処法が見つからないことは、意外に多いです。
たとえば別のプログラミング言語で用意されているメソッドに相当しそうなものが、今使っている言語でなかなか見つけられない場合です。
基本的な関数やメソッドは大抵の言語で用意されていますが、中には本や参考書で学習しても書かれていない、特殊なものを必要とする場合があります。
レベルとしては中級〜上級の知識を要するものです。
この様な複雑なエラーを独力で解決するのは難しく、挫折してしまうケースもあるでしょう。そんな時には詳しい人からのアドバイスが欲しくなるのは良くある話です。
エラーは挫折の原因になる
普段は問題なくプログラミングができている人でも、どうしてもちょっとしたことで詰まってしまうことはあります。すぐに解決できる状態のコードであれば良いのですが、詰まっている点が複雑なロジックだと時間がかかってしまいます。
また複雑ではないにしても、特殊な処理を挟まなくてはいけない場合などは、どのようにプログラムすれば良いのかわからなくなってしまうものです。
とりあえず思いつくままに試行錯誤を繰り返しても、次から次へとエラーを発生して止まってしまうこともしばしば。なかなか先に進まず、同じところで足踏みを続けてしまいます。
ひとりで悶々と考えていても別のエラーが発生するばかりでなかなか解決しないもの。それが自分のプログラミングスキルに対する自信をなくす原因となってしまうこともあります。
これは決して良いことではありません。
わからない点は、詳しい人に質問しよう
もしどうしても自分一人で解決できないことが出た時には、適当なところで問題解決を諦めて、他人に相談してみましょう。特に初心者の方の場合は、早い段階でより詳しいエンジニアに質問することが、仕事の面でも学習面でも効率的です。
自分とは異なる視点から見てもらうことで、気がつかなかった解決方法を提示してくれるかも知れません。多くの企業で、開発手法として「ペア・プログラミング」が採用されているのも、実はこれが理由です。
ちなみに筆者もどうしても解決できないエラーを同僚に相談したところ、話をしている内にプログラムミスではなく、単にディスクの書き込み権限の問題だったという単純な原因だったということに気がついた経験があります。
しかし自分だけで悶々としていると、そういう単純なことにも気がつかなくなってしまうものなのです。
その言語に精通した人に聞くのがおすすめ
また同じレベルのメンバーでは問題解決できない場合は、そのプログラミング言語に精通した人に質問してみるのも一つの手です。自分の知らない新しいソースコードの書き方を教えてもらえるかも知れません。
自分で学習してきたスキルに加え新しい知見が得られると、知識同士がリンクします。それが自分自身のプログラミングスキルの向上に繋がっていきます。
それ以外にも、プログラミング言語ごとに質問サイトのリンクがWeb上に開設されていたりします。ここには同じ様な悩みを持ったプログラマーが過去に質問した事例が蓄積されています。
もし自分の知りたい情報がない場合には、新しく質問することもできます。
質問し放題のサイトもあります。
ただし質問をする時には、かならず相手に敬意を持って接するようにしましょう。こちらはお願いをする立場であることを忘れてはいけません。
プログラミングの不明点を質問する方法
このようにプログラミングで詰まった時には、どのようにわからない点を質問すれば良いのでしょうか。
最も良いのは身近な所にいる詳しい人、例えば同じ会社の先輩社員や同僚に質問すること。
ですが必ずしも同じ会社やプロジェクトメンバーに詳しい人がいるとは限りません。そういう場合に質問をできる、いくつかの方法をご紹介しましょう。
質問サイト(Q&Aサイト)を使用する
まずは「質問サイト」を使うという方法です。これはインターネットの掲示板ができた頃から多くのサイトが開設されています。
プログラミング言語を限定しないサイトから、特定の言語に特化したサイトまで、特徴のあるサイトが多くあります。質問者も回答者も活発に活動しているサイトは、それだけ多くの知見も揃っているのが強みです。
これらのサイトは、過去の質問者の書き込みとそれに対する回答者のアンサーがアーカイブされ、自由に閲覧出来るようになっています。また知りたい内容を検索すれば、近しい内容の質問と回答者の書き込みが一覧表示されるような機能もあります。
会員制のサイトが多いのですが、無料登録できる場合がほとんどです。
また、最近の質問サイトでは、回答者にインセンティブを用意。回答者に、質問者に対して「回答しよう」という気を起こさせる工夫をしているところがほとんどです。
質問者にすると、回答者から非常に早く回答を得られるところも良い点です。投稿を読むことで、コードの理解を大きく深めることが可能。ユーザーにとって学習の手助けになります。
IT勉強会に出席する
オンラインではなかなか意図した質問がしづらい場合もあります。できることなら同僚に相談するようにして、対面で話をしたい場合などもあるでしょう。
そういう時におすすめなのが、IT系の勉強会です。IT勉強会は、特定のプログラミング言語に特化して最新の技術を学び合う会です。ビジネスマッチングを目的に名刺交換などを行うイベントよりも、一層「勉強」を目的としています。
勉強会ではテーマを決めて誰かが発表するような場合もあります。人気のプログラミング言語や、世界のトレンド。新しいライブラリやHTMLの基礎まで内容は広いです。
新しい開発環境やコーディングの記述のコツなどについて、エヴァンジェリストと呼ばれる人による講演があることもあります。
新しい知識を仕入れるとともに、交流をした他社のプログラマーと、ソースコードの書き方について情報交換をしたり、困っている内容について教え合うということが行えたりします。
ただし「教えてくん」や「教えてちゃん」のような状況になってしまうと、やや敬遠される場合も出てきます。状況に応じて、節度は必要です。できれば自分自身も、初心者が気軽に勉強の相談をできる存在になりましょう。
プログラミングスクールに通い、講師に聞く
詳しい人にしっかりと教えて欲しい場合には、プログラミングスクールに通うのも有効です。
どうしてもIT勉強会ですとギブアンドテイクが基本です。一方的に「訊いてばかり」というのは難しくなりやすいです。思うように居場所が作れず、精神的にプレッシャーも感じることもあるでしょう。
一方、スクールであれば、教えてもらう事が前提の場所です。新しく始めたばかりのプログラミング言語について基礎を習得できると同時に、業務で困った場合にもソースコードの書き方について相談をすることができます。カリキュラムを一通り終えた後などに、講師に直接質問してみると良いでしょう。
特にメンターを置いているスクールでは、学習に関する個別の相談や質問も受け付けてもらえますので、初心者でも気軽に質問できるような環境が整えられています。
質問の仕方
ここまで「どこで質問すれば良いのか」について書いてきました。
その上で、気をつけなければいけないのは「どのように質問すれば良いのか」です。
特にQAサイトを使用する場合、中には「言葉足らずで何を答えて欲しいのかがよくわからない質問」「いろんな事を書きすぎて、要点が解らない質問」というのもあります。
すると回答者は「回答して欲しいことが何か」「質問者が抱えている疑問が何か」がよくわからず、的外れな回答をしてしまうことがあります。場合によっては完全に無視されてしまう場合などもあります。
エラーの内容だけでなく、言語、システムやバージョンも明記する
プログラミングについてQAサイトで質問する場合は、最低限でも以下を伝えましょう。
・どんなプログラミング言語を使っているのか
・プログラミング言語のバージョン
・どのようなOS、システム上で動作させているのか。
・フレームワークを使っているのかいないのか。使っている場合にはそのバージョン。
その上で「こういう動作をさせたくてこういうソースコードを書いた。けれどこういう動作になってしまって、想定通りに動いてくれない」ということをしっかりと書くようにしましょう。
回答の善し悪しは、そもそもきちんと質問できているのかにかかっています。一言で言うと「質問力」の高い質問には良い回答が寄せられると言っても良いでしょう。
守秘義務に要注意
注意しなければいけないのは、守秘義務です。
個人的に書いているプログラムであればソースコードをそのまま載せても構いません。ですが業務で開発を行っている場合には、守秘義務がありますので、それに引っかからない程度には内容を簡素化するなりして質問するようにしましょう。
そうでなければ、あとで訴訟になったりする場合もありますので、注意が必要です。
この記事のハッシュタグ
質問サイト3選
それでは、サイトで質問するという前提で、おすすめの質問サイトを3つ紹介します。
teratail
まずは「teratail」です。
無料での会員登録は必要ですが、登録をするだけのメリットがあります。
このサイトでは質問をできるのはもちろんなのですが、自分のスコアを可視化してみることができます。たとえば質問し、ベストアンサーを選び、書き込みを「解決済み」にすれば、スコアは1点プラスです。
質問するだけでなく、自分が回答者に回ることでさらにスコアは上がります。良い回答をすればスコアが上がる仕掛けになっています。スコアを競えるような環境を整えることで、ユーザーがお互いに切磋琢磨できるような仕組みを導入しているのが特徴です。
スコアの高いユーザーがこれまでに行った質問、回答を見ることで、精度の高い情報を効率的に得ることも可能です。
taratailのコンセプトは「15分調べても分からないことは、質問しよう!」。いつまでも悩み続けるよりも、とりあえず質問してみるというスタンスで使ってみてはいかがでしょうか。
リンク:teratail
stack overflow
「stack overflow」も同じ様なサイトです。
もともと海外サービスで英語のみでしたが、2014年からはstack overflow日本語版も開設されています。会員数は全世界で100万人を超えているという巨大サイトです。
ここもやはり良い回答をした人にはポイントや「バッジ」を与える仕組みを導入していて、技術を持っている人が、より回答したくなる仕掛けを施しています。
stack overflowで多く扱われているプログラミング言語はC#、Java、PHP、JavaScript、jQuery。OSとしてはAndroid等です。Web系やアプリの開発で必要になりそうな情報を数多く入手できます。
またstack overflowの海外向けの英語版サイトには、日本ではなかなか出て来ないレアな内容の質問と回答も多いです。英語に苦手意識がなければ、読んでみるのがおすすめです。
リンク:stack overflow
Codementor
最後に紹介する「Codementor」は有料のサービスです。海外で主に使用されているサービスのため、使用言語は英語です。日本人で、初心者のエンジニア(プログラマー)が使用する場合はかなり敷居が高いサービスと言えるかもしれません。
しかし料金がかかる分、高度な質問にも答えてくれるというのが大きなメリットです。料金は質問する人によって変わります。最も安い人は15分で15ドル。平均は15分で30ドル。技術に自信を持つレベルの高い現役エンジニアだと、15分で50ドルというケースもあります。
Zoomという画面を共有する機能を使うことで、オンラインでのペア・プログラミングもできます。本当にコーディング困った時に、非常に重宝するサイトです。
もし無料質問サイトで満足できないレベルになった場合や、エラー解決に急を要する場合に使うのがおすすめです。高度な技術を持った現役エンジニアにペアプログラミングをしてもらえたり、一対一でのハイレベルな質問ができたりと他のサイトには無い長所がたくさんあります。
リンク:Codementor
最後に
とにかく一人で悩んでいても、解決できないものはなかなか解決できません。
特に急ぎの仕事の場合は解決までに、そんなに時間をかけていられませんし、へたにやっつけ仕事のような事をしてしまうとあとで更なるバグやエラーに悩まされることになります。
質問サイトなどを上手く利用して、悩みを解決するようにしましょう。その経験はあなたのプログラマーとしての経験として、必ずプラスになります。ただし訊きたいことをしっかりと整理し、さらに「質問力」を高める努力は必要です。
また経験を積み重ねていけば、新人が困っている時に、今度は手を差し伸べる側に回ることもできるでしょう。「どうしようもなく困ったら、まず質問」という姿勢で、プログラマーとしてのキャリアをより充実させてみませんか。
はじめての転職、何から始めればいいか分からないなら
「そろそろ転職したいけれど、失敗はしたくない……」そんな方へ、テックキャンプでは読むだけでIT転職が有利になる限定資料を無料プレゼント中!
例えばこのような疑問はありませんか。
・未経験OKの求人へ応募するのは危ない?
・IT業界転職における“35歳限界説”は本当?
・手に職をつけて収入を安定させられる職種は?
資料では、転職でよくある疑問について丁寧に解説します。IT業界だけでなく、転職を考えている全ての方におすすめです。
「自分がIT業界に向いているかどうか」など、IT転職に興味がある方は無料カウンセリングにもお気軽にお申し込みください。