ソフトの作りはじめでいい練習になると思うのが、
WindowsのソフトをLinuxに移植する、クローンソフトの作成。
ゴールが明確だし、仕様で悩まない。
Windowsで使い慣れたソフトをLinuxでも使えるようになる、というのは結構いいモチベーションになる。
でもこれ、ゴールが明確な分、そこまでの遠さも分かってしまうから。心理的に大変といえば大変。
さらに、元のソフトに近づけば近づくほど、違いが浮き彫りになって苦しむことになる。
使いやすいと感じるか感じないかのボーダーは、最後の1%の作り込みにあるから、そこの細かい仕様まできっちり揃えていくのはかなりレベルの高い作業。