ソフトウェアについてのメンタルモデルを構築する最も簡単な方法は、実際にソフトウェアが成長している時にプロジェクトに取り組むことです。Bjarnason氏はこのタイプを「第1世代のプログラマー」と呼び、第1世代のプログラマーはさまざまなコンポーネントの相互作用や特定箇所を変更する最善の方法、ソフトウェアの劣化を最小限に抑える方法、実際には使われていないコードなどをよく理解しています。
一方、第1世代のプログラマーと共に仕事をしているプログラマーのことを、Bjarnason氏は「第2世代のプログラマー」と呼んでいます。第2世代のプログラマーが意味のわからないコードに遭遇した場合は、第1世代のプログラマーが解説することで、第2世代のプログラマーもメンタルモデルを発達させていきます。時間が経過するにつれて、第2世代のプログラマーがソフトウェア開発の中心となり、やがて在職中に書いたコードが大半になると、第2世代のプログラマーが事実上の第1世代のプログラマーになるとのこと。