エンジニア

今からプログラミング言語を勉強するならコレだ!! – オススメのプログラミング言語 –

learn-programming

タクシードライバーという異業種から、エンジニアにキャリアチェンジし、さらに未経験から開発者となった今の経験をブログに残しておきます。

この半年の間、いろんなプログラミング言語に触れてみました。
そこで感じた、自分が初学者ならどのプログラミング言語から始めるか?をまとめてみました。

経験のあるエンジニアに聞いても、口を揃えて
「最初に始めるプログラミング言語なんてどれも一緒だよ。」
なんて言われて、流行っているからとりあえずRubyから始めてみました!とかReact(JavaScriptのフレームワーク)から始めてみた!って話を耳にします。

適当に始めるより、ある程度先を見据え、理由を知った上で始めたほうが価値があるかもしれません。

ちなみに僕が今まで学習した言語は、
PHP > Angular ( JSのフレームワーク ) > JavaScript > TypeScript > React、Vue ( JSのフレームワーク ) > Java > Node.js
以上です。

他の言語も軽く触ったことはありますが、オススメできるほどの学習もしていないので上のリストに入れていません。

ちなみに今現在、仕事で主に使っているのはAngular(TypeScript)になります。
たまにJavaって感じです。

せっかくなのでフロントエンドとサーバーサイドに分けて、2つのプログラミング言語をご紹介します。

オススメのフロントエンド言語

TypeScript ( JavaScript ) です。
最近はどこもJavaScriptではなく、TypeScriptの案件が多くなってきてるように感じてきます。
TypeScriptとはJavaScriptに型システムが追加された拡張言語になります。
ただ学習をする順序としては、JavaScriptを学習し、次にTypeScriptになります。
TypeScriptから学習する時、基本的にJavaScriptの知識が必要になります。
エンジニアになってわかりましたが、この型というのが非常に大切になるんです。
アプリの規模が大きかったり、開発人数が多いときに、型がないとエラーが発生します。
エラーが発生すれば、なぜエラーになっているのか?をまず解析しなければなりません。かなり時間が無駄になります。
この型があれば、エラーを未然に防ぐことが可能です。
JavaScriptは型という概念がないので、本来動いてはいけない部分でも動いてしまったり、突然エラーを吐き出すことになります。
それが開発の段階で無くなるTypeScriptは非常にオススメです。

オススメのサーバーサイド言語

Java です。
オブジェクト指向や型について詳しく覚えれます。
他の言語でももちろん学習はできるのですが、詳しい説明はJava以外ではあまりされません。
入門言語と言われているのは、他の言語に比べ、圧倒的に情報が多いのでつまづいても調べればなんとかなったりします。
他の言語からJavaの学習を始めた時に、これはこういう意味だったのか!なんて事が多くありました。
エンジニアの世界は知ってて当たり前的なことが多く、入門言語じゃない言語で学習を始めると、説明が端折られていることが多くみられます。
そして何より案件が多く、未経験でも仕事がもらいやすい点も挙げられます。
Javaができれば、他の言語も学習しやすいです。

フレームワークについて

フレームワークについてですが、正直いきなりフレームワークを使っての学習はオススメしません。
なぜなら、フレームワークを理解をするためには、まずその言語を理解できないと全く理解できません。
基本的にフレームワークで動かせるものは、フレームワークがなくても作れます。
いきなりフレームワークを使って動くものを作っても、どうして動いているのかが全く理解できないのです。
作るだけならいいのですが、会社に入ればコードレビューなどで、ロジックの説明などを交えて自分のコードをみんなにチェックされます。
この時、フレームワークの知識しかなければ、詳しく説明できずに間違いなく皆に突っ込まれます。

オススメのJSフレームワーク

Angular > Vue > React
の順番になります。

世間ではReactやVueが多くの支持を得ていますが、僕はAngularを強く推します。
仕事で使っているからという理由ではなく、Angularを深く知り、他のフレームワークにも触れた感想です。
ちなみにReactやVueはフレームワークではなく、正確にはライブラリです。
最初はこのライブラリとフレームワークの区別もあまりつかないかもしれません。
この区別がついていない状態だと、他にどんなライブラリを選定すればいいのかも検討できませんよね。
その点、Angularはフルスタックフレームワークなので、自分で選定する必要はないです。
基本的にAngularに付属しているライブラリを使えばそれっぽいアプリは作れます。
Angularで知識をつければ、他のフレームワークの学習コストはすごく下がります。
Angularの学習コストは高いと言われていますが、その理由としてAngularの情報量が日本では少ないです。
海外ではAngularがすごい人気なので、英語の教材はいっぱいあります。
英語ができれば、Angularの学習コストはがくんと下がります。
なにより、Angularの案件も増えているので、仕事にも困りません。

Angularを学ぶなら、ドキュメントよりもこちらの書籍がオススメ

ABOUT ME
ヒロシ
ヒロシ
どーもっ!ヒロシです! ブログを書いてるうちに、文字を打つことに快楽を覚えるようになってしまった人間です。