【転職】IT業界未経験からプログラマーを目指す場合におススメする就職に繋がる言語

IT転職・就職
スポンサーリンク

プログラマーを目指してプログラミング学習をしたいんだけど、SNSでよく見るプログラミング言語を選べばいいのかな?

中の人
中の人

SNSやスクールの広告でよく見かけるプログラミング言語が就職にも繋がりやすい言語という訳ではないよ!

未経験者が学んでおくべき本当のプログラミング言語を紹介するね

昨今はプログラミングが非常に注目されています。
義務教育のカリキュラムにも取り入れられ、社会人向けのプログラミングスクールは過去に無いほど盛況です。

ただ、プログラミング言語は様々な種類があり、プログラミング言語によっては、処理の向き不向きがあったり、習得難易度に大きく差があったり、何より仕事の多さ(需要の高さ)もまちまちです。

よくある勘違いとしては以下があります。初心者の人は注意が必要です。

「人気があるプログラミング言語」=「需要が高い」←ではない!

今回は、数あるプログラミング言語のなかから、未経験者からでも、習得することで就職に結びつく可能性の高いプログラミング言語を紹介していきます。

最初に学ぶ言語を選択するうえでのポイント

もし貴方が全くのプログラミング未経験であれば、どのプログラミング言語から学習を始めるかについて、慎重に選択してください。

選択した言語によっては、習得するために必要になる労力や、習得後のIT業界に対する就職活動の困難さに関しても影響してきます。

当項では、そんなプログラミング言語は、何を基準に選択していくのが良いのかを簡単に解説していきます。

ポイント1:市場の需要が高いこと

未経験者がプログラマーを目指す場合に、もっとも重要な言語の選択基準はこれだと思います。
市場の需要が高いということは、別の言い方をすると「仕事や求人が豊富にある」ということ。

当たり前ですが、これはとても重要です。
一生懸命学習して、そのプログラミング言語の基礎を習得できたとしても、その言語を扱える技術者を求める求人が存在しなければ、せっかく習得した技術を生かす場がありません。

また、IT業界未経験者がプログラマーを目指すというところもポイントです。
業界内でその言語を使った仕事が少なければ、採用される為に必要なスキルレベルは高くなり、逆に仕事が多い場合は、求められるスキルレベルは下がります。

言語によっては、

少しでも学習した経験があれば無条件で採用する

といったケースも多く見られます。

後、時々インターネット上では、海外でのプログラミング言語毎の需要や人気ランキングを紹介しつつ、流行りのプログラミング言語をおススメしている記事も見受けられますが、我々が住んでいるのは日本であり、海外のランキングは少なくても初心者にとっては意味はありません。

また、海外と国内ではプログラミングに関する考え方や接し方もだいぶ異なる為、注意が必要です。

ポイント2:歴史があって情報が豊富なこと

プログラミング言語のなかには、歴史は浅いが人気があるものもあります。
例えば、Googleが開発した「Go」という名前のプログラミング言語があります。
後発の言語と言う事もあり評判は良く、プログラマー界隈でも注目されています。

あのYouTubeやメルカリなんかでも使われています。
また、アメリカでは、Goが使える開発者は非常に高い収入を得ていると聞きます。

それだけ聞くと、大変魅力的な言語だと感じますが、比較的新しい言語の場合は、実は習得が大変です。
その理由は以下です。

日本語の技術情報が存在しないか有っても非常に少ない

当ブログでも「VBScript」というプログラミング言語の入門記事を連載しており、多くの方に見に来ていただいています。
この「VBScript」は二十数年前にMicrosoftが公開し、非常に歴史があります。
今や廃れていく一方の言語ではありますが、その二十年以上の歴史があるため、インターネット上では入門サイトやサンプルコードを紹介したサイトなどがまだまだ豊富に存在します。
よって、プログラミング言語を習得するために学ぼうとした場合や、実際にこの言語を用いてプログラムを作る場合に参考になる情報を探すのに困ることはあまりありません。

これが上記のような歴史の浅いプログラミング言語の場合はどうかと言えば、まず、日本語で書かれた公式のドキュメントが存在しないケースが大半です。
プログラミング言語は大体アメリカなど海外の技術者や企業、研究機関が開発して公開します。
その際には、主に英語で公式ドキュメントが作成されます。
そういったドキュメントが日本語化されるのはかなり時間が掛かります。

また、その言語を紹介したインターネット上の技術系記事や技術ブログなども、まずは英語圏の人たちを対象にしたものであり、それを日本語に訳して国内向けに紹介したり、又は日本人が習得して日本国内向けに技術記事を作成するといった段階まで到達するには非常に時間が掛かります。

そもそもプログラミング経験も無く、これから始めてのプログラミング言語を学ぼうとしているのに、その言語では日本語で書かれた技術情報が少なく、更に苦手な英語の技術文章を読まないと学習が進まないといった状況になってしまったら、その言語を習得する前に諦めてしまう可能性も高いです。

よって、習得を目指すプログラミング言語を選択する場合は、必ずある程度歴史のあるメジャーなプログラミング言語を選択することが重要です。

ポイント3:その言語単独で広い用途があること

ベテランプログラマーは一つのプログラミング言語しか使えないということはあまりなく、得手不得手は有りますが、いくつかのプログラミング言語を使い分けることができます。

当然、IT未経験者がプログラミング学習をしてIT業界に転職しようとした場合、いきなり複数のプログラミング言語を同時に習得していくのは困難であり、せいぜい一つの言語の基礎を習得するのが精一杯です。

ただ、プログラミング言語によっては、用途が限られており、別のプログラミング言語と組み合わせて使うことが前提だったり、別のプログラミング言語と使い分けて開発するプロジェクトで採用されることが多い言語もあります。
そういったプログラミング言語を初学で選択してしまった場合は、追加で別の言語の習得も求められる事もあり、初心者には大変です。

そのため、選択するプログラミング言語は

特定の用途に限定されたものではなく、幅広い用途で使用できる言語

を選択しておきたいところです。

ここで言う「用途」とは、例えば以下の様な分類です。

・Windowsデスクトップアプリケーション
・サーバーサイドアプリケーション
・クライアントサイドアプリケーション
・バッチアプリケーション
・スマートフォンアプリケーション
・機械学習やディープラーニング
 などなど

これらの全てを一つの言語で担える必要があるという訳では有りませんが、いくつかの用途は共有できる言語が望ましいです。

例えば、クライアントサイドアプリケーションしか作れない言語を習得しても、併せてサーバーサイドの処理も作らないと一連の処理は完結しない場合もあり、別の言語も習得せざるを得なくなります。

ポイント4:言語仕様が難解ではないもの

プログラミング言語には様々な種類があり、その言語本来の仕様として、初心者向けな仕様のものと、初心者が1から習得するには困難な仕様のものがあります。

言語仕様が難解で初心者向けではないプログラミング言語の特徴としては以下です。

・メモリーの参照や置き換え、開放といった機械を意識した実装が必要になる
・用意されているライブラリが貧弱で自作しないといけない処理が多い
・プログラムを動かすにはコンパイルが必要
・型の扱いが厳格

3つ目と4つ目についてはメリットデメリットがあると思いますが、初学であれば多少なりとも習得のハードルになる可能性もあります。

具体的な「習得の困難なプログラミング言語」の例は以下です。

■C
・メモリーやCPUといったハードウェアの制御まで意識する必要があり、プログラムの作りによってはシステム全体を壊すこともある
・オブジェクト指向プログラミングに対応していない

■C++
・C言語にオブジェクト指向プログラミングに対応出来るように拡張した言語だが、C言語の困難さも引き継いでいる
・C言語との互換性を保ったまま拡張したことで、自由度が増えた半面、言語仕様の複雑さが増している

そもそもC言語は、元々アセンブリ言語(アセンブラ)と呼ばれる、機械に対して直接命令をさせているのに近いレイヤーの難解なプログラミング言語(低級言語)を楽に書けるようにするために開発されたものだと聞きます。
その為、本来アセンブラを書ける水準にある高度な技術を持った人たちを基準にしたプログラミング言語であり、アセンブラでできることはCでもできる必要があり、そういった前提で作られているプログラミング言語が、現代の高級言語(ここで言う「高級」と「低級」は高価や安価といういう意味ではなく、ハードウェアを意識しないで済むか否かといった処理対象のレイヤー)と同等の習得難易度な訳が無いのです。

これらのことから、初心者でも習得がし易い言語の特徴としては、メモリーの管理などを意識する必要がなく安全にプログラムを実行できて、標準で豊富なライブラリが用意されており少ない記述で処理を実装できて、コンパイルしなくてもプログラムが動かせて、言語仕様における型の扱いが緩やかなもの、ということが言えます。

プログラミングを職業にするために初学で学ぶべき言語

当項では、当記事の主題である「プログラミングを職業にするために初学で学ぶべき言語」を、その理由も踏まえて紹介していきます。

Java

仕事の多さ:★★★
汎用性  :★★★
難しさ  :★★★
コンパイル:必要

個人的には本腰を入れて未経験から学びだすには一番オススメしたいプログラミング言語です。

JavaはJVMと呼ばれるJavaを動かす汎用的なプラットフォーム上で実行されます。
そのプラットフォームはWindows上でもLinux上でもOSを問わずに乗せることができる為、Javaで作ったアプリケーションは異なるOS間で共通して実行させることが一番の魅力です。

アプリケーション開発で一般的に使われるようになり、長い歴史のなかで改良が繰り返され、信頼性も非常に高く成熟しています。

また、Javaを使って作れるアプリケーションも豊富にあり、デスクトップアプリケーション、サーバーサイドアプリケーション、バッチアプリケーション、スマートフォンアプリケーション(Android)などはJavaさえ習得すれば作れます。

複数のプログラミング言語での「バイリンガル」を求めれるプログラマーにおいて、「この言語しか書けません!」が唯一通用する言語だと感じます。

また、仕事の多さも魅力です。
IT業界のプログラマー向けの仕事の数で言えば、様々な言語のなかで一番多いと思われます。
仕事が多いということは、当然プログラマーとして雇用される可能性も非常に高くなります。
システム会社のなかには、「Javaを勉強していました!」と言うだけで無条件に採用してくれるとこも結構あります。

それだけ仕事が多いのであれば、JavaはIT技術者からの人気もあるのではないかと思われるかも知れませんが、あまり人気はありません。
IT技術者はもっと先進的でスマートな言語を使いたがり、Javaは少し古臭い言語といった印象を持たれています。

後、習得の難易度で言えば、言語仕様は残念ながら簡単ではありません。
所謂「オブジェクト指向」に沿ったコーディングが必要になり、型の管理も厳格で、プログラムを実行するにはコンパイルも必要になります。

よって、軽い気持ちで学習をしても挫折する可能性は高いので、冒頭で記載したように”本腰を入れて“学習に臨む必要があります。

ウズウズカレッジ Javaプログラミングコース

PHP

仕事の多さ:★★★
汎用性  :★
難しさ  :★
コンパイル:不要

用途はWebのサーバーサイドにしか使えませんが、所謂Web系のプログラミング言語のなかで最も仕事が豊富にある言語です。

用途が限定されているので、併せてHTMLやCSSなども多少覚えておく必要があります。
また、Webページにおけるクライアントサイドの制御などでは後述するJavaScriptも多少は学んだ方がより望ましいです。

PHPの特徴としては、習得の容易さがあります。
プログラミング言語のなかでも、言語仕様が分かりやすく初心者向けです。
プログラムの実行ではコンパイルは必要ありません。
コードを編集してWebサーバー上に反映させればすぐに動作の確認ができます。

また、フレームワークと呼ばれる、プログラミングでよく実装する処理群を使いやすく部品化したツールも様々な種類が出回っており、それらを使用することで、プログラム内の処理を標準化したり、大勢での大規模な開発を効率化したり、きれいなプログラム設計で実装できるようになります。

フレームワークは実際のPHPのプログラミングの現場では必須であり、個々の開発会社ごとやプロジェクトごとに、自社やプロジェクトに適したフレームワークを選定して使用しています。

当ブログでは「WordPress」と呼ばれる「CMS」を使用していますが、そのWordPressもPHPで作られており、WordPressのカスタマイズなどもPHPを習得すれば可能になります。

転職のためのプログラミングスクール【無料PHPスクール】

JavaScript(Node.js)

仕事の多さ:★★★
汎用性  :★★
難しさ  :★
コンパイル:不要

JavaScriptは、主にクライアントサイドで実行できるプログラミング言語です。
今や世の中のアプリケーションは何でもWebブラウザ上で動かすことが求められることから、Webブラウザのクライアント側で動作するクライアントサイド用のプログラミング言語は年々重要さが増しています。

皆さんが普段見ている様々なウェブサイトで広く利用され、動きのあるウェブページの実装で使われたり、入力フォーム内の入力値やフォーカスの制御で使われたりしています。

ただ、本来のJavaScriptはクライアントサイドでしか実行できず、プログラミングにおける「主役」にはならなかったのですが、近年はJavaScriptをサーバーサイドで実行できる技術である「Node.js」が普及してきています。
ウェブサーバーに対してNode.jsの実行環境を構築することで使用できるようになります。

そのため、Node.jsも併せて利用することで、JavaScriptを習得すれば、クライアントサイドだけではなく、サーバーサイドアプリケーションを作成も可能になります。
※Web系言語なのでHTMLやCSSも併せて習得は必要ですが。

またJavaScriptは名前の通りスクリプト言語であり、コンパイルは不要です。
言語仕様も難しくはなく、初心者の初学に最適です。

仕事もたくさん存在するため、就職も比較的容易です。

因みに、名前に「Java」と入っていますが、前述した「Java」とは全く別の言語なので注意してください。

C#

仕事の多さ:★★★
汎用性  :★★★
難しさ  :★★★
コンパイル:必要

マイクロソフトが開発したC系の言語であり、マイクロソフトが提供する共通言語基盤である「.NET Framework」における中心的なプログラミング言語です。

特徴としては、前述した「Java」とは構文などの言語仕様では共通点も多く、似ていると言われています。
また、C#で作成したアプリケーションを動かすには、実行環境に「.NET Framework」がインストールされている必要があるが、Windows7からはWindows自体も「.NET Framework」を利用するようになったことで、「.NET Framework」はWindows環境では必ずインストールされています。

「.NET Framework」に依存するため、動作環境はWindows環境のみに限定されます。
ただし、「.NET Framework」は現在の最新バージョンである4.8をもってメジャーバージョンアップを終了するとマイクロソフトは発表しており、今後はWindows環境に依存しない「.NET Core」に移行していくことになっています。

C#では、主に.NETの様々な先進的な機能を利用したプログラミングを行えるのが魅力です。
また、C#の言語設計も洗練されており、非常に生産性の高い言語でもあります。
その為、IT技術者からも支持をされています。

C#は一般的なWindows環境上でexeファイルを起動して実行するデスクトップアプリケーションの開発言語としての用途が最も一般的ですが、WebサーバーとしてWindowsServer上で利用できる「IIS」を使用した場合は、同じ.NETの共通言語基盤を利用する「ASP.NET」と組み合わせることで、サーバーサイドアプリケーションの開発も行えます。
また、近年では前述した「.NET Core」が利用できることから、「.NET Core」を元に開発したアプリケーションであれば、Linux環境上でも実行できるようになっています。

「Java」と同様に、厳格な型管理や、オブジェクト指向に沿ったプログラミングが必要になることや、コンパイルが必要になることから、習得の難易度は比較的高いと言えます。
「.NET Framework」から様々な機能を呼び出して利用することができますが、その機能の豊富さも初心者には逆に難しく感じてしまうことも要因です。

ただ、Windows環境であれば動作環境は保証されているという側面から、企業内で使用する業務アプリケーションとの相性は良く、C#を使ったアプリケーション開発を行う案件は非常に多いため、C#を習得しておくことで、その後の就職も大変有利になります。

前述した「Java」とは色々と似ている点が多いのですが、使い分けの例としては、個人的なイメージでは、超大規模な企業や銀行などの堅い業界の業務システムで「Java」が採用されるケースが多いです。
それは、Javaは歴史が古く、所謂「枯れた言語」であり、その分信頼性も高いことから選ばれていると思われます。
逆に、そこまで大きくない企業などでは、信頼性よりもシステム開発会社側の生産性などを優先してC#が採用されているように見受けられます。

個人的には、これまで紹介したプログラミング言語のなかで一番好きな言語です。

【番外編】VBA

仕事の多さ:★★★
汎用性  :★
難しさ  :☆
コンパイル:不要(MS Office製品内でのみ実行可能)

プログラミングを学習し、その学習した言語を武器にプログラマー職への採用に挑む場合はこれまで紹介したプログラミング言語のどれかを学ぶべきだと思いますが、まずはプログラミングの基礎を習得するために、もっと簡単なプログラミング言語から学んでいきたいと考えた場合は、VBAが一番オススメです。

VBAはマイクロソフトのExcelやWordといったOffice製品上で実行できるプログラミング言語です。
このVBAを「マクロ」と呼ぶ人もいますが、個人的にはその呼びかたは適切では無いと考えています。

VBAは20年以上前にアプリケーション開発におけるプログラミング言語でのシェアが高かった「VB 6.0」をベースに作られており、そのVB6.0の簡易版の言語です。

VBAは長い間バージョンアップもされておらず、言語の基本仕様は古く、処理速度も遅く、これまで紹介したプログラミング言語より劣っている点が多々あります。

その反面、言語仕様は非常にわかりやすく、また、事務職の経験がある社会人であれば、マイクロソフトのOfficeがインストールされている端末であれば誰でも特別な設定をすることなく実行できる為、大変身近なプログラミング言語と言えます。

例えば、Excel上でVBAを使用することで、セルに対する編集処理を自動化したり、日頃の集計作業を効率化できたりと、プログラムで実装する処理自体も日常業務の延長線上にある処理が多く、プログラミング初心者の人であっても活用方法がイメージし易いということも魅力です。

また、VBAは初心者向けだとは言え、Windowsのレジストリにアクセスできたり、DOSコマンドを実行することができたり、OracleやSQL Serverなどのデータベースとも接続が出来たりと、Officeのアプリケーションの範疇を超えて幅広く処理を作ることができ、使いこなすことで非常に高度な処理も行えます。

その為、IT技術者における「プログラマー」という職業だけでいえば、VBAが書けるというスキルは若干インパクトに欠けるのですが、就業先がシステム会社ではなく、非ITの事業会社であれば、バリバリ本格的なプログラミング言語を書ける人はオーバースペックであり、VBAを使ってちょっとした事務作業を自動化したり効率化できる人の方がはるかに重宝されます。

よって、プログラミング学習をなるべく「初心者向けのやさしいものから始めていきたい人」や、今すぐプログラマーへの転職をするのではなく、まずは「今勤めている会社の目先の業務をプログラミングで効率化したい人」は、VBAから学習していくことをおススメします。



最近のPython人気に思うこと

SNSなどを見ていると、「Python」の習得を目的としたオンラインの学習教材やプログラミングスクールが目立ちます。

Python自体は洗練された言語で、特に機械学習やディープラーニングなどのライブラリが充実しており、そういった用途で利用する場合は非常に便利です。
大量のデータを一気に読み込んでメモリ内で加工するといった処理も非常に高速に行えて、機械学習で使用される殆どのモデルはライブラリで用意されており、自身でモデルを組まなくても簡単に機械学習によるデータ分析が行えることで、機械学習などの高度なデータ処理に関する敷居を大きく下げてくれます。
また、データ分析以外の用途とし、サーバーサイドアプリケーションなども実装できます。

ただ、IT未経験者が突然Pythonを習得したところで、データサイエンティストの様に高度な統計学の知識や数学の知識を元にライブラリを活用できる訳でもなく、データ分析関連のプログラマーにはなれないでしょう。
また、Pythonはデータ分析以外にも、アプリケーション開発でも活用できるプログラミング言語ですが、少なくとも現状の日本国内において、Pythonを使用して作られているWebシステムやWebサービスはそれほど多くはありません。
よって、未経験者がPythonを習得したところで、そのPythonを使用する未経験者向きの仕事は殆どなく、プログラマーへの就職には繋がりません。

私の主観になりますが、Pythonの現状の立ち位置としては以下のように感じています。

プログラマーが仕事の幅を広げる為に習得する言語

既にいくつかのメジャーなプログラミング言語を習得しており、比較的新しいプログラミング言語も何か覚えてみようと思ったときに、機械学習などのこれまで経験の無い分野へも仕事の幅を広げていこうとしている場合に最適な言語だと思います。

冒頭で記載した通り、「人気のあるプログラミング言語が仕事の豊富にあるプログラミング言語ではない」ため、Pythonの人気を利用して大げさな広告を出しているプログラミングスクールやプログラミング教材については十分に注意して頂いたほうがよいかと思います。

ただ、Python自体は非常に便利で優秀なプログラミング言語なのは間違いないので、他の言語と併せて学んでいくのは全然アリです。

最後に

今回は、IT未経験者がプログラマーを目指す場合に、ちゃんと就職に繋がると思われるおススメのプログラミング言語を紹介しました。
IT業界の経験が無い場合や、プログラミングに関わることがない分野のIT技術者の場合は、様々な種類が存在するプログラミング言語のなかで、どれが良くてどれが悪いといったことを判別することは難しいです。

また、プログラミング言語の人気ランキングは結構見かけますが、そこで順位付けされているのは、あくまで”プログラマー目線で選択した好きなプログラミング言語”であるケースが多く、その順位付けの判断材料に、「仕事や案件の多さ」は加味されていない場合が多いです。

今回の記事では、あまり初心者向けの記事で語られることのない、プログラミング初心者が就職することを目的とした「おすすめプログラミング言語」を紹介させていただきました。
今回の記事が、今後プログラマーを目指そうとすると貴方の背中を押して、プログラミング学習の始める第一歩の助けになることができれば幸いです。
それでは今回も読んで頂きましてありがとうございました。

タイトルとURLをコピーしました