プログラム初級者と中級者の境目

ありがちなネタなんだけど、ふと思ったので(・ω・)
どれくらいの事が出来るようになると初級者卒業と言えるのかについて、自分の考え。
勿論いろんな観点があるので、ここではアルゴリズムというか、どの程度の処理構造が書けるかという観点から。


例えば、FizzBuzz問題とかありますが、これはアルゴリズムというレベルのものでもなく、1年生の問題であって、むしろ出来なければ留年という類のモノであって(゚Д゚)
自分が思うに、ListやMapを作ったり使いこなしたり、B-Treeなデータ操作をしたりだとか、例えるなら、データベース(ストレージエンジン)がやっているようなこと*1を自分でも書けるようになると、まあ初級者卒業かな〜とか思った次第(・ω・)


たとえ業務ロジックしか書かない人であっても、このくらいの基礎知識は必要になるし。
最低限の品質を確保するという目的で、「枠組み」や「仕組み」を考える人と、業務ロジックのみに集中する人を分けるっていうやり方は、まあある種現実的ではあるのだけれど、それを無制限に許容してしまうと全体的な質の低下が進んじゃうんだよな〜と思ったりして(´・ω・`)


っで、初級者教育の題材として、ストレージエンジンというか原始的なデータベース*2の作成みたいなものって、割と良いと思うんだけど、どうだろう(・∀・)?

*1:ネステッドループだとかハッシュマージだとか

*2:ページ単位でのレコード管理、B-Treeのよる主キーの検索、おまけで主キー以外のインデックスへの対応、クエリのパーサとかは対象外で、実行プランの指定はプログラムでやる感じなものを想定(・∀・)