エンジニアとして働く上での最低限の質問力

3月まで「テックキャンプ」を受講してみて、プログラミングスキルはもちろん、質問の仕方などについても多くのことを学びました。

学んだ中で特に印象的だったのは、「プログラミングをする上で、どのような質問をすると相手が答えやすいのか?」という点について考えることです。もちろんこれは、プログラミングをする上での質問に限らず、全ての質問に当てはまるでしょう。

本記事では、エンジニアの質問に絞って書いていきますが、エンジニア以外の分野でも応用できる考え方も多くあると思うので、参考にしてもらえたら幸いです。

質問力とは

質問力のある質問は、最低限、以下の項目を達成していると思います。

  • 質問相手の気持ちを考えている
  • 質問相手の時間を拝借することを考えている
  • 質問内容が具体的である(検索のストーリー性)

例えば、自分自身が先輩エンジニアだとして、コードを書いた後にエラーが出力された時に、新入社員から下記のような質問が来たとします。

質問例①


○○さん

お疲れ様です。
頼まれたコードを書いていたら、エラーが出ました。
スクショ添付します。

原因は何だと思いますか?

お返事お待ちしています。

××

このような質問をされたら、多くの人は答える気を無くすと思います。これでは答える方は、まず原因を0から考えなくてはならず、原因の特定に時間がかかってしまうかもしれません。

自分自身で仮説を立てて検証をしたかどうかもわからないので、同じ検証をした場合、単純に時間のロスになります。

相手の気持ちに立つには、最低限、上記3つの項目を抑える必要があります。では、実際に3つの項目を意識して書き換えた文章を見てみましょう。

質問例②


○○さん

お疲れ様です。

先ほど依頼を受けたコードを書いていたら、エラーが出力されてしまいました。
お忙しい中失礼致しますが、お時間ございましたらエラー解消にご協力頂けますと幸いです。

エラー内容:◆◆◆が正常に動作しない

私が考えた仮説と、その検証結果をお伝え致します。

仮説:○○○の×××にミスがあるのではないか
検証:○○○の×××を確認したが、目視ではミスが確認できなかった。

念のため、該当部分のスクリーンショットを添付致します。

ご確認頂けますでしょうか。
よろしくお願い致します。

××

このように、まずは相手の立場に立って文面を考え、また、自分自身が試したことを、背景と共に伝えることで、質問を受ける側も、気持ちよく答えることができるようになると思います。

さらに質の高い質問文を作るために

より良い質問文を作るには、これ以外にも気をつけるべき点は沢山あります。詳しくは下記記事を参照してみてください。

質問は恥ではないし役に立つ – Qiita

質問力の有無は、生産性、ひいては全体の業績をも左右しうる重要な要素となります。筆者自身も、さらに質問力を高めることによって、より良いエンジニアを目指していこうと思います。

GitHub Pagesでポートフォリオサイトを作ったらとても快適だった

GitHub Pagesを使って自分のポートフォリオサイトをリリースしてみました。

https://drash5296.github.io/portfolio-ryusaito/

今回は、GitHub Pagesを使用する上で思ったことを書いていきます。

GitHub Pagesの使い方

詳しい使い方は下記記事を参考にしました。

無料で使える!GitHub Pagesを使ってWebページを公開する方法
https://techacademy.jp/magazine/6445

なぜGitHub Pagesを使ったのか

プログラミングスクールに通っていた時は、デプロイにAWSを使いましたが、正直、あまり理解しきれないまま卒業してしまいました。

そのため、AWSの仕様が良く分かっておらず、少額ではありますが、料金が発生してしまいました。

以上のことから、自分で作成したWEBサイトを公開することにはかなり不安がありました(その後AWSの方は(多分)今後の料金発生を封じ込むことに成功しました)。

でも、ポートフォリオサイトを公開しないことには案件獲得もままならないので、何とか自分の力でもサイトを公開できるツールを探しました。

最初は元々WordPressで使用していた自分のドメインの一部を使用して制作する考えもありましたが、それにはサブドメインなどの知識なども必要だった為、GitHubPagesを使用するに至った、という経緯です。

GitHub Pagesを使ってみて思ったこと

まずは公開が非常に楽だなと思いました。

難しいプログラムのアップロードはできそうにない感じですが、ポートフォリオページなどの公開には非常に適している印象です。

そして、お金のことを考えなくても良いというのも、個人的には高評価なところです。

自分自身がそうなのでお話しさせて頂きますと、GitHub Pagesによるページの公開を検討するような人は、あまりWEB公開にお金を使いたくない人が多いと思います。

GitHub Pagesは、WordPressやデプロイによる公開とは異なり、費用ゼロで公開ができる為、自分のようにまだプログラミングで稼ぐような経験をしたことがなくて、なるべく費用を抑えたいような人にはとても良いサービスのように思います。

ぜひ使ってみてください。

SDGsが映し出した自分自身の価値観

はじめに

SDGs(エスディージーズ)という言葉を聞いたことがあるでしょうか。
日本語においては「持続可能な開発目標」と訳され、2030年までに国際社会で共通に取り組むものです。

「SDGs(エスディージーズ)」とは、「Sustainable Development Goals(持続可能な開発目標)」の略称であり、2015年9月に国連で開かれたサミットの中で世界のリーダーによって決められた、国際社会共通の目標です。
このサミットでは、2015年から2030年までの長期的な開発の指針として、「持続可能な開発のための2030アジェンダ」が採択されました。この文書の中核を成す「持続可能な開発目標」をSDGsと呼んでいるのです。

SDGs(持続可能な開発目標)とは何か?17の目標をわかりやすく解説|日本の取り組み事例あり
https://miraimedia.asahi.com/sdgs-description/

SDGsについてよく知らなかった

2015年の国連で採択されたにもかかわらず、最近まで、SDGsという言葉は知っていても、その内容について調べたりすることはありませんでした。
どちらかというと、大学卒業から最近に至るまで、自分自身の関心は経済や社会構造(政治を含む)の方にありました。

環境問題にも元々興味があって、ユニセフをはじめとする国際協力団体の活動もたまに調べたりしていました。
そんな自分がSDGsの内容を最近まで知らなかったことを、とても後悔しています。

SDGsは、単なる環境保全活動ではない

この記事のタイトルにもあるように、SDGsを通して、自分自身の価値観を再認識することになりました。
その経緯を簡単にご紹介します。

まず、SDGsが掲げる17の目標は下記の通りです。

  1. 【貧困】
    あらゆる場所のあらゆる形態の貧困を終わらせる
  2. 【飢餓】
    飢餓を終わらせ、食料安全保障及び栄養改善を実現し、持続可能な農業を促進する
  3. 【保健】
    あらゆる年齢のすべての人々の健康的な生活を確保し、福祉を促進する
  4. 【教育】
    すべての人に包摂的かつ公正な質の高い教育を確保し、生涯学習の機会を促進する
  5. 【ジェンダー】
    ジェンダー平等を達成し、すべての女性及び女児の能力強化を行う。
  6. 【水・衛生】
    すべての人々の水と衛生の利用可能性と持続可能な管理を確保する。
  7. 【エネルギー】
    すべての人々の、安価かつ信頼できる持続可能な近代的エネルギーへのアクセスを確保する。
  8. 【経済成長と雇用】
    包摂的かつ持続可能な経済成長及びすべての人々の完全かつ生産的な雇用と働きがいのある 人間らしい雇用(ディーセント・ワーク)を促進する。
  9. 【インフラ・産業化・イノベーション】
    強靱(レジリエント)なインフラ構築、包摂的かつ持続可能な産業化の促進及びイノベー ションの推進を図る。
  10. 【不平等】
    各国内及び各国間の不平等を是正する。
  11. 【持続可能な都市】
    包摂的で安全かつ強靱(レジリエント)で持続可能な都市及び人間居住を実現する。
  12. 【持続可能な生産と消費】
    持続可能な生産消費形態を確保する。
  13. 【気候変動】
    気候変動及びその影響を軽減するための緊急対策を講じる。
  14. 【海洋資源】
    持続可能な開発のために海洋・海洋資源を保全し、持続可能な形で利用する。
  15. 【陸上資源】
    陸域生態系の保護、回復、持続可能な利用の推進、持続可能な森林の経営、砂漠化への対処 ならびに土地の劣化の阻止・回復及び生物多様性の損失を阻止する。
  16. 【平和】
    持続可能な開発のための平和で包摂的な社会を促進し、すべての人々に司法へのアクセスを提供し、あらゆるレベルにおいて効果的で説明責任のある包摂的な制度を構築する。
  17. 【実施手段】
    持続可能な開発のための実施手段を強化し、グローバル・パートナーシップを活性化する。

沢山あって、しかも抽象的な文言が多めなのでわかりにくいと思います。
実際、筆者自身もこれを読んで「よくわからないなあ」というのが第一印象でした。
それを少しだけわかりやすくしているのが、冒頭でもお見せしたこちらの画像です。

これらの目標それぞれには、合わせて169に及ぶターゲット(具体的な目標)が定められています。
例えば、貧困に関するターゲットは下記の通りです。

1.1:2030年までに、現在1日1.25ドル未満で生活する人々と定義されている極度の貧困をあらゆる場所で終わらせる。

1.2:2030年までに、各国定義によるあらゆる次元の貧困状態にある、すべての年齢の男性、女性、子どもの割合を半減させる。

1.3:各国において最低限の基準を含む適切な社会保護制度及び対策を実施し、2030年までに貧困層及び脆弱層に対し十分な保護を達成する。

1.4 2030年までに、貧困層及び脆弱層をはじめ、すべての男性及び女性が、基礎的サービスへのアクセス、土地及びその他の形態の財産に対する所有権と管理権限、相続財産、天然資源、適切な新技術、マイクロファイナンスを含む金融サービスに加え、経済的資源についても平等な権利を持つことができるように確保する。

1.5 2030年までに、貧困層や脆弱な状況にある人々の強靱性(レジリエンス)を構築し、気候変動に関連する極端な気象現象やその他の経済、社会、環境的ショックや災害に暴露や脆弱性を軽減する。

1.a あらゆる次元での貧困を終わらせるための計画や政策を実施するべく、後発開発途上国をはじめとする開発途上国に対して適切かつ予測可能な手段を講じるため、開発協力の強化などを通じて、さまざまな供給源からの相当量の資源の動員を確保する。

1.b 貧困撲滅のための行動への投資拡大を支援するため、国、地域及び国際レベルで、貧困層やジェンダーに配慮した開発戦略に基づいた適正な政策的枠組みを構築する。

(外務省仮訳「我々の世界を変革する:持続可能な開発のための2030アジェンダ」より)

具体的な目標とありますが、これを読んでもまだ少しイメージできない項目もありますね。
ここから先の具体化は、私たち人間1人ひとりが自ら考え、行動に移し、結果を出していく必要がありそうです。

なぜSDGsが自分自身に刺さったのか

SDGsについてちゃんと調べようと思ったきっかけは、実家であるテレビ番組をみたことがきっかけでした。
2030年、荒廃した地球をバックに少年が泣きながら「こんな地球になったのは、あなたたちのせいだ」と言っている姿は、演出だと分かっていても、心に突き刺さるものがありました。

高い理想を掲げながらも、実際に行動に移せず、結果を出すことができないでいる自分自身に重くのしかかりました。
「何か行動をしなければ」と強く思ったのですが、行動をするにも、今の自分に何ができるのか、全くと言っていいほど、思い浮かびませんでした。

そんな自分に絶望しつつも、今からできることを始めようと思い、まずはSDGsの理念や世界的に行われている取り組みについて学習しようと思いました。

おわりに

将来的にこれが全人類のスタンダードな考え方になり、地球が豊かなまま保たれるのが先か、地球が荒廃し、環境汚染によって人類が滅亡するのが先かはわかりませんが、少なくとも自分自身の行動は、これによって変えられます。

こうしてブログ記事を書いて発信できるのも、電気が使えて、インターネット通信ができるからだ、ということを忘れてはいけないと思います。

電気も通信も(もちろんその他のインフラや、車など地球資源を使用するもの全て)有限であることを自覚すれば、その資源をどのように使うべきなのかを考えるきっかけになると思います。

SDGsは、資源の有限性と、未来を逆算した行動を促す良い起爆剤になるだろうと思います。

この記事が、また別の誰かの「未来を考え直すきっかけ」になってくれたら嬉しいです。