この投稿は一番求人が多い業務系アプリケーションの開発を行おうとしている20代前半の若手エンジニアを対象にしています。私個人の見方なので、いろいろ意見がある人もいるかと思いますが、よろしければコメントしてください。
1. Java
国内においては、業務系アプリ開発の主流になっていると思われます。プロジェクトや求人が多いので多くのチャンスがあるでしょう。
言語仕様が C 言語や C# と似ているので、そういう言語を学ぶ時も Java を知っているとすんなり入れるかもしれません。
Java は完全なオブジェクト指向言語です。オブジェクト指向の考え方を最初から頭に叩き込めるので他のオブジェクト指向言語(最近の言語はたいていそうだが)を学ぶ時にも役立つでしょう。
忘れてならないのが、Java のクラスライブラリでサードパーティ製も含めれば膨大な量があります。これらは膨大なので、すべて学ぶのは不可能ですが、よく使われるコレクション関係クラスなどは習熟しておいたほうがいいでしょうね。
2. 英語
プログラミング言語ではありませんが必須です。 なぜなら、最新の技術情報は英語で発信されていますし、日本語化されていないマニュアルなども多数あるためです。
話したり書いたりすることはあまりありませんが、ある程度のスピードで専門用語が多く含まれる文書を読みこなせる実力が必要です。
3. シェル言語
「シェル言語」という言語があるわけではなく、ここでは、Bash や Csh のことを指しています。
業務系アプリでは、1日の終わりなどにその日の取引の集計などを行います。これは、ふつう、夜間に行われるので「夜間バッチ」などと呼ばれます。夜間バッチでは、各支店などから吸い上げた営業データなどをデータベースに入力し、集計したり解析したりします。これらの制御にはよく「シェル言語」が使われます。
ただ、シェル言語だけできればいいというものではなく、Unix コマンドや Awk, Perl と言ったものが同時に使用されるので、それらの知識も必要になります。
Windows サーバでは、これらの代わりに PowerShell や Batch, Wsh が使われています。Windows サーバもカバーするならそれらも学んでおいた方がいいです。
4. C# または Visual Basic.NET
業務系アプリケーションでは Windows もよく使われます。以前は、Visual C++ や Visual Basic が使われてきましたが、現在では C# あるいは Visual Basic.NET が多く使用されています。
どちらもクラスライブラリは共通なので片方を知っていれば、他方も学びやすいかもしれません。ただし、言語仕様はまったく関連性がないので、頭の柔軟さが必要ですね。
これらの開発には、ふつう Visual Studio が使われますが、高機能で使い勝手がよく効率的な開発ができるのも強みです。
5. VBA (Visual Basic for Application)
Excel など MS Office 製品のマクロとしての機能を持った言語です。これを使うと、自動でオフィス文書を処理することができます。
言語仕様としては、旧世代の Visual Basic と共通で、Visual Basic.NET とは互換性がありません。しかし、MS Office 製品は必ずと言っていいほど、企業では使われていて、未だに VBA は健在です。
また、ちょっとしたツール作りやデータ処理、テストデータ作成などにも使えて便利です。