ソースコードを理解しているとは
人と場面によって色々な解釈あって、
・実行したときの挙動の概要を説明できる(引数が3の倍数か3がつく時は画面にアホと出力される、みたいな仕様ベースの概要)
・任意の部分を書き換えて、類似の別処理に変更できる
・(一つ上と類似だけど)その処理と類似の処理をゼロベースで書ける
・構成要素の関数の内部的な正確な挙動を含めて、全ての挙動の説明ができる(例えば、はじめの例のアホと出力される仕組みが全て正確に説明できる)
普通の初心者や、とりあえずフレームワークを使って何かを実現できますという人の理解のレベル感は最初のものだと思うけど、最初のもの〜最後の手前まででもやりたい事はできるし、最後のものができるからといって最後の手前のものができるとも限らない
操作的な理解と、公理的な理解みたいなものがあるような気がしている