プログラミング初心者にオススメのプログラミング言語
どうも、kouです!
今回は、駆け出しエンジニアにオススメのプログラミング言語というテーマで話していきたいと思います。
駆け出しエンジニアの方は、何のプログラミング言語を学習されていますか?
PHP?Ruby?Python?Java?でしょうか?
それともJavaScript?TypeScript?
実は僕は最初Pythonから学習を始めました。
その点も踏まえて、駆け出しエンジニアは何の言語からやるべきかを解説していきます。
今からやるのにオススメのプログラミング言語
それじゃあまず先に結論からお話したいと思います。
Web系のエンジニアを目指している駆け出しエンジニアにオススメのプログラミング言語は、
ずばり今からやるなら、
- ・PHP
- または
- ・Ruby
が良いんじゃないかと思います。
またWeb系の開発では、フレームワークを使用して開発することが多いので
- PHPのフレームワークならLaravel
- RubyのフレームワークならRuby on Rails
が良いんじゃないかと思います。
注意点としては、PHPは沢山のフレームワークがあるのですが、とりあえず今ならLaravelが1番オススメって感じですかね。
プログラミング言語を比較する
それでは、オススメなプログラミング言語について様々な観点から比較し、細かい説明をしていきたいと思います。
静的型付け言語か、動的型付け言語か
まずプログラミング言語を選ぶ時に一つの要素となるのが
- 静的型付け言語
- 動的型付け言語
どちらかってところですね。
実は今のWeb開発では、圧倒的に静的言語が流行っているし、大抵の場合はそちらの方が良いとされているんですよね。
確実に技術力のある企業やエンジニアであれば、静的言語を採用して開発をします。
ところが、静的型付け言語は未経験者にはやっぱりハードルが高いんです。
それこそネット上にいるPHPとかRubyの現役エンジニアで、歴1〜2年、2〜3年の程度のエンジニアの人だと、静的言語でちゃんと開発できる人なんてほとんどいないんです。
PHPに関して言うと、元々PHPは動的言語ですが、実は最近ちょっとずつ時代の流れを汲んで、型(typehint)がつけれるようになってきました。
でもPHPのバージョン的には使える環境になっていても、ちゃんと型付けて開発している人も現場も全然ないです。
まぁせっかく新しいバージョンのPHP使って開発していても活かせていないことがほとんどなのです。
実力をつけることができる言語
実力をつけることができる言語に関して言うと、よくレガシーと揶揄やれがちな言語ですが、Javaはオススメな言語です。
Javaは言語仕様も比較的しっかりしていて、とても力が付きやすいので経験できると良いんですが、最初からある程度、オブジェクト志向的な知識が要求されるし、やっぱり未経験者にはハードルが高いんです。
僕は業務で始めて触れた言語としてはJavaとなりますが、やっぱりPythonやPHPなどの難易度の低い動的言語から入ったため、最初はかなり苦労しました。
Cとかもそうですが、それから始めるとプログラミングを挫折する原因にもなりますので、プログラミング未経験者や特別プログラミングに自信のある方以外は最初の言語としてはオススメできません。
逆に学生時代に情報系の専門学校へ行っていた方やプログラミングに自信のある方は、JavaやC、C++、C#などは力が付く言語としては良さそうです。
ただ現在では、Web系の開発ではJavaすらもあまり使われていない(SIerでは使われていますが)ので、Web系のエンジニアを目指している場合はやはり選択肢としては除外でしょうか。
Web系の現場でよく使われている静的言語だと、最近ではGo言語などがありますので、こちらはプログラミングに自信のある方はオススメです。
ただGo言語が採用されている企業では、比較的、技術力が高めな(経験年数がある)エンジニアが集まっている&採用されている側面があり、こちらも未経験者飛び込む世界としては、結構難易度が上がります。
また個人的な感想としては、学習面でのデメリットも多少あるような気がします。
Web系の開発をやっていく上ではクラスを用いた設計や開発(オブジェクト志向開発)が基本となりますが、Go言語にはクラスがなく少し特殊なため、キャリアの初期で基本的な部分が経験できなくなると言うことにはなります。
JavaScriptやTypeScript
僕は現在フロントエンドエンジニアとしてやっているので、フロントエンドで主流なJavaScriptやTypeScriptをオススメしたい気持ちもあるのですが、以下の記事にある通りキャリアや難易度の観点からどうなんだろうってところが正直なところです。
さらにプログラミング言語自体の言語仕様から言っても、JavaScript自体が正直微妙であるため、それを補うためにTypeScriptがありますが、初心者には複雑になりがちです。
非同期処理などの初学者には少し難易度が高い実装を避けては通れない部分もあり、フロントエンドを専門にやるのはプログラミングに慣れてきてからやるのがオススメなのかなと思います。
初心者にオススメのプログラミング言語
まぁそんな感じで、静的言語は一定レベル以上の界隈では、流行っているし、良いものとされているんですが、未経験者にはちょっとハードル高くて、動的言語から始めるのがオススメですよって感じになります。
そうなると駆け出しエンジニアには、やっぱりPHPとかRubyが現状のファーストチョイスになります!
未経験者からプログラマーへの就職を考慮する
未経験者がプログラマーとして就職するとなると、スタートアップとかベンチャーみたいな、
比較的まだ小さな企業とかが狙い目になってくるとは思います。
そういうところは開発スピードを重視したり、採用できる技術者のレベルを考慮すると、今だとPHP/LaravelやRuby/Ruby on Railsを採用することが多いので、そこが狙い目になってきます。
経験豊富なエンジニアは今時、給料とか単価もかなり高いし、やりたい技術もかなりレベルの高いものを求めるので、そんな感じの企業は未経験を雇って育てた方がコスパいいので、全然採用してくれるところはあると思います。
プログラミング初心者にpythonってどうなの?
動的言語で初心者向けの言語だと、冒頭で言ったように僕も最初に学習を始めたPythonもあるんですけど、就職と言う点ではあまりよくないです。
Pythonはさっき言ったようなスタートアップとかベンチャーみたいなところでは、あまり採用されていないのです。
また現状をみる限りでは、Web開発では採用するメリットも特にないので、今後も大きく使われていくことはないと思います。
よくネットだと、海外ではPythonは使われているとかって言う人いるんですが、普通に日本で就職する場合がほとんどだと思うので、その意見は参考になりません。
日本で普通にWebのプログラマーとしてやりたいのであれば、Pythonはあまりオススメはできないってことですね。
まぁPythonはWebでは使われないのですが、データサイエンティストや機械学習エンジニアになるのであれば、ファーストチョイスになります。
まとめ
まぁそんな感じで、駆け出しエンジニアがやる言語は、
- 動的言語で初心者が取り組みやすい物
- 企業に多く採用されていて、就職に有利な物
がオススメですよってことですね。
ネット上の人たちはよく
- 「言語なんて何でも良い」
- 「どの言語でも良いから一個の言語を極めろ」
とか言いますが、実際に言語選びでミスると、就職で不利になったり、学習で挫折することにも繋がります。
また挫折しなくても難易度の高い言語を選んでしまうと
- 理解できなくて何日も無駄にしてしまう
- エラー解決ができない
- 環境構築が難しすぎる
など学習の進捗に大きく影響するので、最初の走り出しとしては、結構重要だと思います。
まぁ駆け出しさんは、
- インフルエンサー
- 経験浅い系の現役エンジニア
- 経験ある系イケてる技術大好き現役エンジニア
- 経験ある系レガシー技術メインな現役エンジニア
- 変なエンジニア採用担当
とか、みんな色々なこと言うので、色々な情報に振り回されてしまうと思います。
まぁ実際のところ、視点が違うだけでこれらの情報のほとんどは正しくて、どれでも最終的にエンジニアになることは可能だと思います。
絶対的な正解はないってことなのですね。
個人レベルでは、自分で正しく情報を選択して、できるだけ最短でエンジニアになって力を付けられる方法を選べると良いですね!
音声配信
音声配信でも駆け出しエンジニアにオススメのプログラミング言語について配信しています!
他にも以下の音声配信プラットフォームでは、フリーランス、Web系エンジニア、プログラミング、技術全般などの話について配信していますので、是非フォローをお願い致します!
- stand.fm
- himalaya
感想
大変ありがたいことに、音声配信について以下のような感想もいただいております!
コメント