プログラマに真っ先に求められるスキルは、プログラミング能力です。プログラミング言語はその種類によって得意とする分野が分かれるので、できればWeb系、アプリ開発系、組み込み系の3種類の言語を使いこなせるのが理想です。
パソコンやスマホ、家電などプログラムが動作するプラットフォームにはいくつかあります。全てのプラットフォームで同じプログラムが動くわけではないので、改良するためには目指すハードウェアの知識が必要となります。
Web上で動くプログラムを記述する時にはネットワークの知識も不可欠です。プログラムが一度で完全に動くのはまれなので、ミスがプログラムにあるのか、ハードの知識不足にあるのかを判断できるようにしておく必要があります。
プログラムを組む時に必ず必要ではありませんが、数学や物理の知識があるとプログラミングに役立ちます。リアルな動きが求められるゲームプログラミングでは、特に物理の知識が必要とされます。プログラミング言語はほとんどが海外で作られたもので、新しい技術も海外から入ってくるので英語を使いこなせると有利です。
英文を読んで理解できるだけではなく、外国人スタッフと共同で開発する時には会話能力も必要となります。業務でプログラミングする時には顧客と打ち合わせをするため、コミュニケーション能力も大切です。大規模プロジェクトでチームを組んで作業する時にもコミュニケーションは重要となります。