この記事では、
・今後SIerに就職を希望または予定しているが、どんなプログラミング言語が使われるのか知りたい
という人向けになっています。
自分はSIerで働いていたので、見てきた開発プロジェクトの中でよく使われていた言語を紹介していきます。
※SIerが関与しているプロジェクトというのは膨大で、プロジェクトによって当然使っているプログラミング言語は異なる可能性がありますので、そこはご了承ください。
SIerで使われている言語スキルは
さっそく結論からいきますと、
・OS:Linux
・フロントエンド:HTML、CSS、たまにJavascript
・バックエンド:新規開発:Java、保守案件:COBOL、SQL
これです。ほとんどのプロジェクトではこれらの言語ができれば問題ないと思います。
まずOSはLinuxでして、Linux系のコマンドを扱える必要があります。
まあこれは使っていれば簡単に覚えていく話なので、仮に入社前に使えなかったとしてもそこまで問題ないかなとも。
自宅でPCを使っている人であれば、MACを使っていれば、MACはもともとUNIX系から発展させたOSであり、LINUXもUNIXを改良したバージョンみたいなものですから、MACでターミナルとかを操作できるのであれば問題なく職場でLinuxの操作が可能です。
次に、フロントエンドではほとんどHTML、CSSがウェイトを占めているかなと思います。
モダンな開発を要求される場合や、その言語の使用を許可されている顧客のプロジェクトとかだと、Javascriptを使用するケースが多め。
しかし、SIerが開発しているシステムというのは、企業が使用する基幹システムの開発・改修が多く、こういったプロジェクトではそこまで画面のリッチさというものが求められません。
そのためHTMLとCSSのみで画面構成を書けてしまうかなと思っています。
最後にバックエンドですが、SIerの新規開発プロジェクトでは圧倒的にJavaが多いと思います。
一方、昔に開発した汎用機と呼ばれるものはCOBOLで開発されており、いまだに現役です。COBOLで作られているシステムの改良プロジェクトではCOBOLを使ってシステムを改修していくことになります。
ですので、JavaとCobol、どちらの言語を使用するかは、SIerで配属されるプロジェクト次第ということになりますね。
どっちの言語のほうが良いの?
SIerで使用される言語は上記の通りなので、ここでこの記事を終えてもよいのですが、もう少し踏み込んで、
・え、それで、SIerではどの言語を習得したほうがよいの?
という疑問にも応えていきます。バックエンド言語にフォーカスします。
言語の性能みたいなことでいうと、JavaとCOBOLで実現できることには大差ないと思います。
どちらもコンパイルを必要とする言語であり、それゆえ実行速度が早いという特徴があり、大規模システムで使われている背景があります。
ただ、どちらの言語のほうが今後、将来性があるか、というとそれはJavaのほうが優勢だと答えざるを得ないです。
プログラミング言語の旺盛は世間のブームに左右される
現在、COBOLエンジニアが不足しているという話をよく聞きます。
なぜなのでしょう。自分なりに考えてみたところ、こんな仮説が立ちました。
昔、COBOLが全盛期だったころ、各企業はメインフレームと言って、自分たちの好きなようにカスタマイズしてハードウェアやミドルウェアを構築していました。
しかし、次にオープン化といって、企業が独自に調達していたものたちの要件が、一般的なハードウェアを組み合わせることによって実現可能な技術レベルに進化していきます。
ここで、COBOLからJavaで再構築する動きが活発化しました。
その理由はいろいろ言われている部分があると思いますが、COBOLで実現できることはjavaでも実現可能であり、かつ当時はjavaのほうが汎用性に優れていたことからjavaの人気が高かった。
そうなると当然、若者はCOBOLではなくJavaの将来性を信じてJavaを習得していく人が多くなります。
そうすると、技術者の数というのは当然、COBOL技術者は減少し、Java技術者が増加することになります。
各企業がCOBOL技術者の育成に力を入れなかった
また、今もなおそうですが、各企業は自社でエンジニアを抱えようとしません。本来は社内でシステムを改良できる人間を育成していくことが必要になってくるのですが、COBOLに未来はないと言われ続けてきた影響で、育成もせずにここまできてしまったことも原因なのかなと。(いわゆるITに関する組織体制そのものの問題)
こうして起こったプログラミング言語習得のトレンドは、一度起こるとなかなか戻ることはありません。
さらには、COBOLで新しいシステムを作る機会はかなり少ないのが実情で、大企業システムのほとんどの新規システムはjavaで構築されます。
以上の背景を踏まえると、今SIerで習得すべきプログラミング言語はJavaのほうが良い、という意見に至ります。
要は、そのときのトレンドに乗れ!ということです。
javaはSIer以外の企業で働くときも有効
SIerで選択すべき言語はjavaであると言いましたが、もう一つ理由があります。
それはエンジニアとして他の企業(Web系企業やSaaS開発している自社開発企業)で働くときにも優位になる可能性が大いにあるからです。
Javaで開発している企業はWeb系企業であっても自社開発企業であっても、まだまだ存在します。
この場合には、直接それまでのjavaで開発した経験が活きてきますよね。
一方、javaを使っていない企業の場合でも有効になりえます。
javaはJVM言語といわれるプログラミング言語の種類の一つです。このJVM言語には例えばKotlinといった言語が属しているのですが、Kotlinなどを使った開発をしている企業も多数存在します。
JVM言語を使っている場合、JVM言語用に用意されているライブラリはJavaで用意されていることが多く、それを解読するには当然Javaのスキルがあったほうが有利になります。
まとめると、SIerではJavaを選択するべき理由は、
・SIerで新規開発するシステムのほとんどはJavaであること
・将来、Web系企業で働く場合にもJavaを使っている企業の可能性があること
・転職先企業でJavaを使っていなかったとしても、JVM言語(Kotlinなど)を使用している場合には、Javaが役に立つ
というところだと思います。
新人はまず一つの言語で開発できるスキルを
これだけ世の中にプログラミング言語があると目移りしてしまうものですが、まずは一つの言語で開発できるレベルになることがエンジニアとして必要なことだと思います。
そして大切なことは、トレンドになる言語を最初に学んだプログラミングスキルを使って習得できるようになることです。
今はSIerでJavaが占める割合が多いですが、10年後にどうなっているかなんてわかりません。
その時に新しい言語が主流になっているかもしれませんし、まだまだJavaが最前線なのかもしれません。
適応能力
これがエンジニアにとって大事なことになると思います。
新人や初めて開発をやっていく人は、そこで使用している言語をマスタしてほしいと思います。
今回はこんなところで。それでは。
この記事へのコメントはありません。