気がついたらエンジニアとして働き始めてもう5年目になり、Java、PHP、Rubyと複数の言語を扱えるようになってきました。
そんな視点から、プログラミング完全初心者だった頃の自分にアドバイスをするという視点で記事を書いてみようと思います。
今回のテーマは、「プログラミング完全初心者が一番最初に学ぶのにおすすめな言語は、何か?」です。
結論から言うと、タイトルの通り「Laravel(PHP)」が現時点で最も最適な選択だと思っています。
その理由を以下で説明します。
目次
Laravelとは
Laravelとは、「PHP」というプログラミング言語で使用できるフレームワークで、「ララベル」と読みます。
フレームワークとは、一言で言えば「システム開発をより便利・効率的ににする機能群」という感じかなと思います。
Laravelを利用すると、管理画面やソーシャルログイン、決済機能、SSH接続など普通に作ろうと思うとちょっと面倒くさい機能を、コマンド少し入力するだけであっという間に作ることができます。
「PHPでWebアプリケーションを作りたい」と思った時に、プログラミングでの開発を圧倒的に便利にするツールみたいなものだと思っていただければ問題ないかと思います。
そのため、あくまでPHPがプログラミング言語であり、そのPHPでのプログラミングをサポートするのがLaravel、みたいなイメージです。
そして、今のご時世では、プログラミング言語単体で勉強するよりも、フレームワークと合わせて勉強する方が非常に効率がいいです。
というのも、現在のweb開発の現場では、「フレームワーク至上主義」と言っても過言ではないほど、フレームワークありで開発するのが当たり前になってきているからです。
特にプログラマーとしての就職・転職市場では、フレームワークを使えるかどうかが、大きく評価を分けてしまうことも少なくありません。
そのため、厳密には、最初のおすすめとしては、『プログラミング言語としてPHPを選択し、そのフレームワークとしてLaravelを選択する」が私の思う正解です。
その理由を下記に書いていきます。
簡単だから、挫折しない
プログラミング言語は、PHP以外にもRuby、Java、C、Scala、Haskellなど色々なものがありますが、ものによって習得難易度にかなり開きがあります。
そもそも習得難易度が高いプログラミング言語が、なぜ難易度が高いと言われているのか?という点ですが、それは覚えなければいけない知識の総量が多いからです。
とはいえ、難易度が高いと言語とはいっても、それは一部の天才しか習得できないというものではありません。時間をかけて知識と経験を増やしていけば、ほとんどの人はきちんと習得することができます。
ただ、プログラミング完全初心者がプログラマーになるために覚えなければいけないことは、プログラミング言語だけではありません。
HTML/CSS/JavaScriptといったデザイン言語の知識、DBRMSやSQLといったデータベースの知識、Linux OSやapacheなどといったサーバー周りの知識など、Webアプリケーションを作るために必要な知識は多岐に渡ります。
このように覚えなければいけないことが多い中なので、プログラミング言語ぐらいはまず簡単なものから入った方が挫折しにくいということです。
難易度が高いプログラミング言語に挑戦したければ、まずはPHP+Laravelでプログラミング周りの知識と経験を一通り蓄積し、その後で難易度が高いプログラミング言語に挑戦するほうが、トータルで見ると早く難易度の高い言語の理解も早くできます。
そのため、RubyやJavaなど、色々な言語に手を出してみたいと考えている人でも、まずはLaravel+PHPでWebアプリケーションの基礎知識を勉強することをおすすめします。
Laravelが挫折しないと思う具体的な理由について、これから書いていきます。
Macでも、Windowsでも環境構築が簡単
自分が書いたプログラミングを実際に動かしてみようと思ったら、自分のパソコンの中でそのコードが動くための環境を準備する作業が必要になります。
この動くための環境のことを「ローカル環境」と呼び、ローカル環境を準備する作業のことを「ローカル環境構築」と呼びます。
言語によっては、このローカル環境構築がかなり難しく、初心者にとって大きな挫折ポイントのひとつでもあります。
私が最初に選んだ言語はJavaだったのですが、お恥ずかしながら一度環境構築で挫折した経験があります…。
また、言語によっては、WindowsとMacで環境構築の難易度に大きな差があるものもあります。
私が初めてRuby on Railsという言語を勉強し始めた時は、Windows機しか持っていなかったのですが、環境構築がかなり大変だったのを覚えています。
Ruby on RailsはMacユーザーを中心に発達してきた言語なので、Mac用の環境構築が楽にできる手法は十分に確立していましたし、情報もMac向けのものは充実していました。その一方で、当時はWindowsユーザー向けの情報はネットにもほとんどない状態でした。
今でこそWindowsでもRuby on Railsの情報が充実してきて難易度が下がってきていますが、WindowsかMacのどちらを選ぶかによって、初心者にとってはエグいほど環境構築の難易度が変わる言語だったのです。
その点で、Laravelは非常に環境構築が簡単です。
WindowsとMacではインストール方法は結構違いますが、どちらでもそんなに迷わずできるはずです。
私はWindowsとMacの両方でLaravelの開発経験がありますが、どちらであっても1時間もあればローカル環境構築が終わる自信があります。
完全初心者の人でも、2〜3日あれば十分終わるものだと思います。
コーディングのルールが簡単
プログラミング言語には、書き方や動かし方にそれぞれ特色があり、その理解が結構難しかったりします。
Javaであればオブジェクティブ志向や静的型付け、C言語であればポインタやメモリ管理の知識、scalaやHaskellでは関数型処理の知識が必須など…。
PHPはスクリプト言語と呼ばれており、上記のような難しい知識はなくても、とりあえず書けば動きます。
スクリプト言語というのは、プログラムのコーディングや、実際に動かすための作業が比較的簡単な言語の総称で、PHP以外にもJavascriptなどがあります。
PHPは、実務だとWebデザイナーやマークアップエンジニア(画面のデザインをHTMLで作る人)が、プログラミングもちょろっとやる必要があるときに使われる言語でもあることから、簡単なことはわかるかと思います。
日本語の情報が充実している
Laravelは数年前まで、海外では人気にもかかわらず日本では無名のフレームワークでしたが、ここ数年で一気に日本でも注目を集め、知名度が上がりました。
それに伴って、日本語のドキュメントが作成されたり、Qiitaやいろんな人のブログに、Laravelの情報が増えてきました。
そのため、分からないことがあっても、Googleで検索すれば情報は手に入りやすくなっており、解決できずに挫折・・・ということはないと思います。
MVCモデルの基礎を学べる
今のWebアプリケーションのフレームワークのほとんどは、「MVCモデル」と呼ばれる考え方を採用しています。
MVCモデルとは、プログラミングの処理を「Model」「View」「Controller」という3つの役割に分散させる考え方です。
RubyやるならRails以外のフレームワークはありえないと言われるぐらい採用率の高いRuby on Railsをはじめ、SpringBoot(Java)、Play Framework(Scala/Java)など、PHP以外でも、各言語のフレームワークでMVCモデルが採用されています。
つまり、Laravelの学習を通してMVCモデルを理解しておければ、PHP+Larave以外に手を出してみようと思った時に、知識の流用がしやすくなります。
MVCモデルの代わりに「Model」「Templete」「View」という役割から構成される「MTVモデル」を採用しているDjango(Python)などのフレームワークもありますが、これもMVCモデルと考え方は似ているため、MVCモデルの考え方が頭に入っていれば理解は簡単です。
仕事がある
どんなに一生懸命プログラミング言語やフレームワークを勉強しても、それらを活かせる仕事がなければもったいないです。
まず、下記の表を見てください。
これは、日本国内における、Googleで検索された回数を、PHPの有名なフレームワークごとに並べたものです。
青がLaravelなのですが、他のフレームワークに比較してLaravelだけ異常に右肩上がりなのがわかりますでしょうか?
ここで「Laravel」で検索をする人がどんな人なのか、を考えてみると大きく下記の4種類の人に分類できます。
・Laravelに興味を持ち、注目している人
・Laravelを実際に勉強している人
・Laravelを実際に社内で使用するフレームワークとして導入しようと検討している人
・Laravelが実際に導入された企業で働いている人
実際にエンジニアとして働き、転職活動を経て一通りITの市場を見てきた私からしても、Laravelは現在すでに採用率は高くなっていると思います。
それだけでなく、今後も採用率は上がっていくと思っています。
その理由は、上記の表から読み取れることとして、今Laravelを仕事で使っていなくても、Laravelを勉強している人が多いということは、将来的にLaravelの知識を持った人が多くなり、その人たちが起業したり、社内の新規プロジェクトで新しくアプリケーションを作る際に、Laravelが採用される可能性があるからです。
とはいえ、本当にLaravelの仕事があるの?と疑問な人は、プログラミング言語やフレームワークの種類で仕事を探せるサイトで、まずはLaravelを使用している求人が本当に多いのか見てみてもいいかもしれません。
まとめ
色々書いてきましたが、短く結論をまとめると「一通りWebアプリケーションを最後まで作るという経験を通してプログラミング周りの基礎知識を覚えるのに最適な言語・フレームワークの組み合わせが、PHP+Laravelである」ということです。
プログラミングは、できるようになると楽しいですし、楽しいことを仕事にできるようになると毎日が楽しくなります。
ただ、楽しいと感じられるようになる道のりは決して短くなく、挫折してしまう人が多いのも事実です。
だからこそ、まずは「プログラミングは楽しい」という感覚を覚えるために、まずはLaravelを学習してみることを、私はおすすめします。
それでは!
コメント