matobaの備忘録

育児しながら働くあるエンジニアの記録

「知っている」けど「説明できない」

最近、大学院で色んなことを学んでいたり、諸々の活動を通して、色んな方と話をする機会が増えている。

blog.mtb-production.info

その中で気づいたことを簡単に書いておく。

「知っている」けど「説明できない」という状況がある

まず、「知っている」けど「説明できない」という状況があること。 それはぼんやり知っていた。 「知っているのと、使えるのには壁がある」みたいな話を聞くこともあるし、素振りの重要性のようなものを度々聞き、ここでも話をしたことがあるように思う。

しかし、それがどういう仕組みなのか、についてはイマイチ把握できていなかった。 その間にある壁がなんなのか、ということについて少し理解が進んだ。

知っている段階では、イメージで理解している

私は、何かを学んだ時、言葉で理解せずにイメージで理解している。

モヤモヤっとした概念のイメージがある。それは一つではなくて複数あり、それぞれの関係性をイメージしながら考えている。 なので、「なんとなく、こっちではない」「なんとなく、この状態には違和感がある」とかはわかる。 しかし、それを言葉にしようとするとつまる。

この言葉にしようとするとつまる、というのが重要というか、問題。

「言葉にしようとすると詰まる」とは?

これは、自分の中で想像している概念に対して、適切な言語が割りあたっていない状態。 また、概念と概念をつなぐ言葉も割りあたっていない状態。 なので、説明しようとする時に、そのために適切な言葉を探す必要がある。なので、時間がかかる。

分野によってラベルが違う

分野によって同じ概念に別のラベルが割りあたっていることもある

概念に対して、ついている名前は、割と領域や時代背景により異なる。 だいたい同じような話をしているとしても専門領域であったり、時代が変わると言葉が変わる。

異業種や異世代、異文化の人たちと話をしようとすると、適切な言葉が見つからなくて困る。 この状況に陥ると「知ってるけど説明できない」という状況に陥る。

じゃあどうすればいいのか

私の理解では、トレーニングするしかない。

簡単な方法ではないが、同じ概念を別の人が話しているのを聞くと、「なるほど、そうやって説明するのか」と気づくことが多い。

最近は、こんなふうに抽象度の高い話をコネコネしている。

pytestでデフォルトはスキップのテストを作る

テストケースを書いておきたいが、常にテストしたくないこともある。 特に非常にテスト実行が重いケース。

前提として、pytestのマーカー

pytestは、マーカーという概念がある。 マーカーという概念を使えば、テストケースに印を付けられる。 そして、特定のマーカーのテストだけを実行したり、特定のマーカーのテストを除外できる。

import pytest

@pytest.mark.hogehoge
def test_sample():
    pass

除外するときはこう実行する。

pytest -m "not hogehoge"

hogehoge の部分は、基本的に任意の文字列を指定できるはず。(すでに何かに使われている場合は誤作動が起きそうだが)

pytestのデフォルトオプションの指定

pytestでは、デフォルトのオプションを設定できる

私は、設定は pyproject.toml に書いている。その場合は以下のように書く。

[tool.pytest.ini_options]
addopts = "-m 'not hogehoge'"

これでデフォルトはスキップできる。

なお、markerの説明を設定に書いておかないと警告が出る。それも書いておくと以下のようになる。

[tool.pytest.ini_options]
addopts = "-m 'not hogehoge'"
markers = [
    "hogehoge: hoge test",
]