初級の問題で出てくる「関数(やメソッド)」は、仕事ではよく使う技術になります。
ごく短い一回きりのコードであれば、関数を使わずに書くこともあるかもしれません。
一方で、「他の人も使ったり、コードを保守したり修正したりする」ようなコードでは、関数は非常によく使われます。
そのため、まずは「指示された通りの関数を指示された通りに書く」技術力は、とても重要になります。
また、ある程度するともう少し「まとめた」タスクがアサインされることもあるため、その場合は「どんな関数を作るかを考え、設計して作れるようになる」ことも重要になります。
そんな風にお仕事を進めていくと、当然ですが、作った関数は「誰かが使う」ことになります。
自分が作った関数を自分だけで使っている間は、あまり意識しないこともあります。
しかし、他の人に使ってもらうようになると、今まで見えていなかったことが見えてきます。
それは、例えば「どんな引数を渡したらよいのか」とか「どんな処理をしているのか」とか「どんな値が返ってくるのか」とか。
さらに踏み込むと「どんな引数だとエラーになってしまうのか」とか「どんな時に使うとよい関数なのか」とか。
そんなことを質問されるようなことも多くあるかと思います。
そんな中で、「実際に中ではどんな処理をしているのか?」というのが一方では気になると思うのですが。
もう一方で、使う側にとって重要なのは「何をする関数なのか」「どんな引数を渡すのか」「どんな戻り値が返ってくるのか」であって、中の詳細な処理は、いったん「ブラックボックスでも問題がない」ことに気づき始めると思います。
特に「他人が作った関数を使う」とか「他人に関数を使ってもらう」ような時に重要なのは、「どんな引数を渡したらどんな戻り値が返ってくるのか」になります。
そして、「このクラスには、こういう名前・引数・戻り値を持つメソッドがあります」と、使う側から見える約束をプログラム上で明示する方法の一つが、上級試験に出てきた「インターフェイス」になります。
関数もメソッドも。
その主役は、作る人ではなく、使う人です。
作る人にとって「書きやすい」ではなく、使う人にとって「使いやすい」こと。そのために、わかりやすい関数名、パラメータ、戻り値を整えること。
プログラムの技術力を高めるのに加えて、そんな「自分以外の人のことを少し思い描く」想像力も、一緒に身につけておくとよいのではないでしょうか。

