構造やアルゴリズムといった一般的なプログラミングスキル、オブジェクト指向やライブラリの知識、コンピュータやOSに関する知識などが必要です。