Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

エンジニアの「プロの所作」08.20分考えて解らなければ、誰かに頼ろう

f:id:kenken0326:20210316111023p:plain

連載:エンジニアの「プロの所作」とは?

自分はプログラミング学習に向いていないのではないか

プロのエンジニアとして働いている姿が想像できない

そんなあなたに、コードを書くスキルだけではなく、普段プロのエンジニアがどのように考えて行動しているかをお伝えする連載です。

PyQは、Python学習者のあなたが「プロとして活躍できる」ということをサービス全体の目標として、 問題の作成、システムの構築、ユーザーの質問への回答、サポートを行っています。

そのサービス運営のポリシーを、Python学習者であるあなたと共有することで、 Python学習の先に目指しているものの一つ、「プロのエンジニア」という姿が明確になり、 不安が少しでも拭えればという思いで、連載を開始しました。

エンジニア「プロの所作」は本記事で第8回目です。 これまでの7回では、プロのエンジニアを目指す人に向けて「プロのエンジニアの考え方」や「スキルアップするためのヒント」を紹介してきました。 今回からはエンジニアとして働く上で、心がけてほしい「コミュニケーション」を中心にお伝えします。

f:id:kenken0326:20210316111839p:plain

こう思った時は:いろいろ試しているのに、解決できない
こう考えよう!:わかりやすく質問することに注力しよう

エンジニアとして働く際には、一人ではなく、チームで仕事をすることが多いです。チームメンバーとして仲間とコミュニケーションをとりながら仕事をすすめていくことになります。

コミュニケーションにはいろいろな種類がありますが、質問をすることもその1つです。

特に最初の頃はわからないことも多く、質問をする機会は多いと思います。
質問をするためには、自分が何を理解していて、何を理解できていないかを把握することから始まります。

うまく整理された状態で適切な質問をすると、自分にとってより必要な情報を得ることもできます。

質問をすることは仕事においても、学習においても役立つスキルです。

いろいろ試しても、解決できない

プログラミングを学習したり、仕事でコードを書いている時に、エラーを解決しようという経験をしたことはありませんか。
なるべく聞かないで、自分で解決しようと色々試すこともあるでしょう。

どうしてそのエラーが出ているのか、よく意味が分からないまま試行錯誤をしてみる。その結果、新たなエラーや分からないことが出てきてしまうという経験はありませんか?

いろいろ試すことも大切ですが、状況が複雑になると、誰かに質問しようとしてもどこから伝えたらいいのかも分からなくなってしまいます。

このような深みにはまる前に、わかりやすく質問することを考えてみましょう。

深みにはまる前に、わかりやすく質問しよう

質問をするときには、自分の状況を正しく伝えられるよう、メモをとることが大切です。 メモを利用して、やりたいことやったこと聞きたいことを書き出します。

自分の書いたコードを正しく書くこと、またエラーの場所を具体的に伝えることも大切なことです。 質問をする時のメモの具体例を紹介します。

質問をする時のメモ

## やりたいこと
税込み価格を正しく表示したい

## やったこと
以下のようにしたら `TypeError: must be real number, not tuple` が出ました。

税込み価格を計算するところでエラーが発生しています。
しかし、どこにもタプル型を使っているところは見当たりません。
import math

# 価格データ
prices = {
    "リンゴ": 100,
    "ミカン": 120,
    "バナナ": 150,
}

# 税率
tax_rate = 1.1,

# 商品ごとの税込み価格表示
for item, price in prices.items():
    # 税込み価格計算(小数点以下は切り捨て)
    price_including_tax = math.floor(price * tax_rate)
    # 税込み価格表示
    print(f"{item}の価格(税込): {price_including_tax}円")
## 聞きたいこと タプル型を使っていないのに、なぜTypeErrorが出ているのかわかりません

質問が解決した時のメモ

質問して解決した時は、「エラーがなおった!」で、終わらずに解決策もメモに残しておきましょう。

解決策をまとめることで自分の理解の整理にもなります。また、後で見返した時にもわかりやすく、より有益なメモになるでしょう。


## 解決策
税率の変数を設定している末尾の` , `を削除したら正しく動いた。

# 税率
tax_rate = 1.1
末尾に` , `を付けると、 ` (1.1,) `と書いたことと同じになり、タプル型になってしまうようだ。 公式ドキュメントにも、タプルの構成方法の1つに「カンマを使い、単要素のタプルを表す: a, または (a,)」とある。 https://docs.python.org/ja/3/library/stdtypes.html#tuple 文の末尾に意図しないカンマがないか気をつけよう。

時間を意識しよう

具体的にやりたいことを伝えられるようになったら、次は時間を意識してみましょう。

仕事においては、悩む時間も作業工数に含まれますよね。一人で悩んでいると、あっという間に作業工数が足りなくなってしまいます。趣味で行う時とは異なり、仕事では時間を意識することは大切なことです。

自分で解決できない状態になってから、質問できる状態にするまで、20分が目安です。

時間を意識することで、深みにはまっていくのを避けることができます
一人で時間をかけて試行錯誤をするより、上手に質問をすることが重要であることを、経験のあるエンジニアはよく理解しています。

関連情報

PyQでは質問のコツを紹介しています。質問の仕方に迷った時は参考にしてください。質問内容を改善した具体例も掲載されています。

PyQを運営する株式会社ビープラウドのメンバーによる記事質問できなかった新人プログラマの反省会では、リアルな体験が紹介されています。

まとめ

今回の内容のまとめです。質問したい場面が出てきたときには、ぜひ試してみてください。

  • 質問をするときは、やりたいこと、やったこと、聞きたいことの3点に整理する
  • 解らないことの調査・質問をまとめるところまで含めて、20分以内に収める
  • 調査・質問の結果や解決策もメモとして残す
Copyright ©2017- BeProud Inc. All rights reserved.