Python学習チャンネル by PyQ

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

エンジニアの「プロの所作」03.「今何を作っているのか」を意識しよう

f:id:kenken0326:20190716140937p:plain

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

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

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

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

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

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

エンジニア「プロの所作」は14回の連載予定で、本記事は第3回となります。

「何を作っているか」意識しましょう

f:id:kenken0326:20190709154945p:plain

執筆: 清原弘貴 (id:hirokiky) 編集: kenken

  • こう思ったときは: 「言われたとおりにプログラムしておけば良いか」
  • こう考えてみよう: 「これはこういう意味でプログラムしてるんだろうな。なぜこうなるのだろう?」

プログラミングするということは、何かを作っているということです。
作るときには「何を作っているか」をよく意識して作ることが大切です。プログラムをただ書くのでなく「こういうものを作っているんだ」、「こう動いているんだろう」と考えながら書くことが大切です。
それによって「自分の考えていることを作り出す」スキルが磨かれるからです。

自分主体で考えるチャンスはどんな時?

たとえば、以下のような場面を考えてみましょう

  • 勉強中の入門書で「このプログラムを書いてください」と言われたとき
  • ライブラリーやフレームワークのサンプルプログラムを動かしてみるとき
  • 先輩に「こういう風にプログラムを書いて」とタスクを依頼されたとき

具体例を挙げて説明します

以下のようなプログラムがあるとしましょう

import os


def is_image_ext(path):
    _, ext = os.path.splitext(path)
    return ext in (".jpg", ".jpeg", ".png", ".svg")

この場合は次のように掘り下げて考えてみましょう

  1. is_image_ext は画像かどうかを判断する関数だろうか?
  2. path という引数はファイルパスの文字列を受け取る関数だろうか?
  3. os.path.splitext はどんな処理だろう?
    1. ファイルパスから拡張子を分離する関数だろうな
    2. ".txt" のように拡張子の部分を取り出せるのかな。Pythonインタプリターで確認してみよう
  4. return ext in (…) で画像の拡張子かどうかを判断しているんだろうな
    1. in を使うということはブール値を返す関数だろう

os.path.splitext の動作などが気になった時は

os.path.splitext の動作などが気になったときは、 Python公式ドキュメントで検索してみたり、 Pythonインタプリターで動作確認をしてみましょう。

文中のプログラム内 _, ext について気になった時は

_, ext の変数_については、本ブログ内でも解説しています。下記の記事を参考にしてください。 blog.pyq.jp

ターミナルから以下のように動作確認をしてみましょう

$ python
Python 3.7.1 (default, Oct 22 2018, 11:21:55)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.splitext("/foo/bar/test.png")
('/foo/bar/test', '.png')
>>> _, ext = os.path.splitext("/foo/bar/test.png")
>>> ext
'.png'

まとめ

「自分主体で考えて、作っているものを意識して作ること」
この思考力を身に付けることで、プログラミングのプロに一歩近づけます。

作るもの、作っているものを意識してプログラムを書くことで、次に似たものを作りたいときに同じ思考回路を活かせます。そのため、プログラミングのプロを目指す人は、プログラミングの応用力を育むことが大事です。

このことを意識してプログラミングに取り組めば、問題を分解して考えられるスキルが磨かれます。 また、別のプログラムのときにもこの考え方をすれば「プログラムを分解して考えるスキル」や「前に使ったことのあるパターンを応用できるスキル」が自然と身につきます。

Copyright ©2017-2019 BeProud Inc. All rights reserved.