最近Youtubeやブログ記事でプログラミング初心者がPHPを学ぶ必要がないという発言や記事を見かけることが多くなってきました。
一昔前はPHPとJavaScriptでウェブサイト全体を管理するアプリケーションの開発ができました。
機械学習などもまだまだだったのでWebをやるのであればまずPHPでよかったと思います。
近年はフロントエンド・バックエンド・機械学習などいろいろな領域が生まれ、それぞれ深い技術が求められているのでいろいろなプログラミング言語が台頭してきました。
そのためちょっと調べると目にするプログラミング言語の数が本当に多くなってきました。
このような状況の中、多くの人はまずググってプログラミング初心者向けの動画やブログ記事を閲覧すると思いますが、上位にでてくる情報でもプログラミングを学びたい方の視点ではなく、発信者側目線での紹介が多かったので、ここではプログラミング初心者が正しい選択をできるようにするための情報を提供したいと思います。
本記事の想定読者
本記事は、プログラミングを学習しようとして調べ始めたけど、
PHPって学ぶ必要がないの?
という疑問を持たれている方を想定しており、PHPは本当に学ぶ必要がないのかどうかを自分で判断できるようにするための情報を提供いたします。
結論
まずは結論です。
プログラミング初心者がPHPを最初に学習する価値はあるかどうかは「条件付きであり」です。
どういう条件かというと、PHPを学習することがおすすめの方は以下のいずれかになります。
・フリーランスとして小規模案件を受注して生活したい
・とりあえず何かのプログラミング言語を学びたい
・フロントエンジニアになりたい
・SESでプログラマーとして働きたい
・プログラミングを副業として小銭を稼ぎたい
詳細については次章以降を参照してください。
プログラミング初心者向けでYoutube動画やGoogle検索で上位に表示されるブログ記事の信憑性について
まずプログラミングを始めようと思って最初に行動することの多くは、YoutubeやGoogleで「プログラミング 初心者」「プログラミング 入門」みたいな感じで検索すると思います。
このとき上位に表示される情報は広告を打っていたり、プログラミングスクールが運営しているサイト、派遣業者、オンラインサロンを運営している方などのインフルエンサーだったりがほとんどです。
企業が運営しているサイトということは自社の利益につながることが中心となるため、プログラミングスクールだったら高額なプランに誘導したい、派遣業者だったらとりあえず派遣に出したい、オンラインサロン運営者なら自分の得意分野に引きずりこみたいというゴールがあるわけです。
そうなってくると正しい情報の中に自社のゴールへ誘導する仕掛けをあちこちちりばめた情報を提供していくことになります。
特に注意なのがオンラインサロン運営者です。
例えば大企業に対してRuby on Railsをバリバリやってきたキャリアがあり、PHPはほとんど経験したことがないという運営者の場合、PHPを学ばれてしまうと自分の得意分野に引きずり込めずオンラインサロンに入会してもらえないので、「PHPは学ぶ必要がない」「まずはRubyを学ぼう」みたいな誘導記事や動画を作成することになります。
エンジニア歴が長いとすぐわかりますが、実際初心者をくいものにしようとしているオンラインサロン運営者がいたりします。
さらに悪質なのは、自分のオンラインサロンに入会させ、サロン内で質問すると簡単な回答しか返さず、詳細な回答がほしい場合は高額な上位プランに誘導するというような悪質なサロンもあるようです。
このようにプログラミング初心者は狙われやすいので、検索上位表示されているプログラミング初心者向け情報は鵜呑みにしないようにしてください。
次章では、自分でどのプログラミング言語を最初に選んだらよいか判断できるようになるための情報、プログラミングを学んだあとの方向性と関連するおすすめプログラミング言語を紹介します。
初めて学ぶプログラミング言語の選定
ではどうやって最初の一歩を踏み出すかを考えておきます。
最初に考えることは「プログラミングを学んだあと何をするか」という目的を整理することです。
プログラミングは手段であって目的ではありません。
何かしたいことがあってプログラミングをしようと思い立ったはずです。
「副業でプログラミングをしたい」「プログラマーになりたい」「フロントエンジニアを目指している」など何かしらの動機があるはずですね。
この目的によって最初に学ぶプログラミング言語が変わってきます。
今回はPHPに絞っているのでどのような方がPHPを最初に学ぶべきかについて掘り下げます。
私が考えるPHPを最初に学ぶべき方は結論で先に書いたように以下の目的を持っている方に特に初めてほしいと思っています。
・フリーランスとして小規模案件を受注して生活したい
・とりあえず何かのプログラミング言語を学びたい
・フロントエンジニアになりたい
・SESでプログラマーとして働きたい
・プログラミングを副業として小銭を稼ぎたい
ひとつずつ説明していきます。
フリーランスとして小規模案件を受注して生活したい
〜数十万円くらいの規模の小規模Web制作案件を受注してフリーランスとして活動していきたい方はPHPを最初に学ぶことがおすすめです。
理由としては、小規模案件のウェブサイトはWordPressやPHPのフレームワークを使ったプログラムがほとんどだからです。
そのため、PHPを学んでおけば既存のソースを読むことができるので新規開発だけでなく改修作業やリニューアル案件を獲得できる可能性が考えられます。
PythonやRuby、Java等を最初に学んだ場合、小規模案件ではほとんど利用されていないので目的を達成することは難しくなります。
とりあえず何かのプログラミング言語を学びたい
何でもいいからプログラミングを学びたいという場合、PHPは日本語の情報が多いので学習しやすいためおすすめします。
PHP以外では将来性も考えるとPythonがいいですね。
フロントエンジニアになりたい
フロントエンジニアなのにPHP?という感じだと思いますが、PHPを学ぶことでバックエンド周りを理解することができます。
またフロントエンジニアでは必須のJavaScriptも当然触ることになるので、最初にPHPの基礎を学ぶことでフロントエンジニアの道が開けてくるかと思います。
それにフロントエンジニアの技術ってすごく難しいのでいきなりフロントエンジニア方面は未経験の人だとかなり厳しいかなと思います。
SESでプログラマーとして働きたい
SESとしてプログラマーを目指すのであれば選択肢はいくつかありますがPHPはまだまだ案件が多いので2,3年は大丈夫です。
その場合、Laravelの習得も必須になります。
理由はSESだと中規模・大規模案件が多くなりフレームワークを利用することがほぼ必須になります。
Laravelは現在PHPのデファクトスタンダードレベルのフレームワークとなっていること、Laravelさえ理解しておけばPHPの理解が早まるというメリットがあるためです。
もし5年10年後まで使える技術を最初から学びたいというのであればPHPではなくJavaScriptとPythonをおすすめしています。
プログラミングを副業として小銭を稼ぎたい
プログラミング案件を受注したり、自分でプログラムを作成し、それを利用して小銭を稼ぎたいといった目的の場合はPHPも選択のひとつとなります。
この場合、前者を考えるとPHPは案件が多いメリットがありますがデメリットとしてライバルが多いということがあります。
後者のプログラムを作成してそれを自分で活用するということがメインであればPHPである必要はなくなんでもいいのですが、Pythonが機械学習やスクレイピングなど個人でよく使われそうな技術と親和性が高いのでおすすめです。
また、PythonはPHPよりライバルはまだ少ないので受託案件は少ないですがそれなりの単価で受注できる可能性はあります。
次にPHPを学んだ場合の学習スタイルについて紹介します。
PHPを最初に学ぶ場合の学習方法
PHPを学習することに決めた場合、おすすめの学習方法は3つあります。
具体的には以下となります。
・完全独学する
・独学で行い自分でメンターを探す
・プログラミングスクールを利用する
それぞれメリットデメリットをまじえて紹介していきます。
プログラミング学習を完全独学する場合
独学のメリットは費用があまりかからないことです。
PCは必須なのでそれを除くと書籍代、動画学習などする場合はその費用、オンラインサービスを利用する場合は会費などくらいになります。
あとはひたすら自分で勉強しまくることでやればやるだけ最初は伸びていくはずです。
もちろんスムーズにいくわけはなく、エラーがでたら調査する、想定外の動きをしたらその原因を特定し調査するなど地道な努力を積み上げていくだけで個人差はありますが間違いなく伸びます。
デメリットは気軽に質問できる方法がないということです。
質問サイトやピンポイントで有料サービスを利用するなど自分で都度質問できる方法を考える必要があります。
ただ、こういうことは実践ではよくあることなので課題解決のひとつにはなります。
プログラミング学習を独学で行い自分でメンターを探す場合
メリットは完全独学と同じで費用があまりかからないことですね。
学習スタイルは先に紹介した前章の「プログラミング学習を完全独学する場合」と同様ですが、メンターを自分で探す必要があります。
メンターについては以下のようなマッチングサイトやTwitterで相談する、知人など信頼できる人を探すなど何かしらの方法で見つける必要があります。
MENTA
https://menta.work/
独学+メンターで学習する場合のデメリットは、自分でメンターを見つけないといけないので、相性のいいメンターをどう見つけるかが肝になりますね。
プログラミングスクールを利用する場合
プログラミングスクールは賛否両論があり、もめる原因となっています。
私の見解としては以下の2点がよくやり玉に挙がっていると感じています。
(1)プログラミングスクール出身者は現場で使えない
(2)プログラミングスクールだとメンター(担当者)とやりとりすることになる場合が多いですが、その担当者のスキルが低い、または教えるのが下手な場合がある
1番目の現場では使えないというのは全員に当てはまるものではないですね。
プログラミングスクールは卒業しているけど現場は初めてには違いないので、当然単価は安くなっているはずなのでやる気がある人なら現場でどんどん伸びていくはずです。
また、最初から優秀な人も多くいると思います。
逆に伸びない人を選んでしまったのであればそれは人を見る目がなかったということで採用する側の問題だし、未経験者を雇うリスクとして仕方のないことだと思うのでプログラミングスクールの問題ではないと考えます。
2番目のメンターの問題、これは確かにわかります。
メンターガチャという言葉も目にします笑
プログラミングスクール(特にオンライン)はたいてい生徒ひとりに対して1人メンターと呼ばれる担当者がついたり、時間帯で対応するメンターとやりとりするなどいろいろあると思いますが、そのメンターは選べないことが多いです。
メンターの質が一定ならいいのですが、プログラミングが人によって千差万別であるようにメンターの質もかなり差があるという問題があり、スキルが低い人や教えるのが下手な人に当たってしまう可能性があるわけです。
逆にものすごいスキルが高くて教えるのが上手な人もいるのに選択の余地はない、まさにガチャですね。
なぜそのような問題があるかというとメンターの募集方法にもあるかなと思っています。
最近見かけなくなりましたが以前大量にクラウドワークスやランサーズでメンター募集を見かけました。
私のところにも誘いは来ましたが、片っ端から声をかけているような感じでこれではメンターの質も・・・という印象を受けました。
もちろん採用されたあとに教育はあるということだったのでそれなりの品質にはなるのだとは思いますがそれなりですよね。
また、メンターの時給が結構安いとも感じました。
私は時給を見てまったくやる気はしませんでしたので(笑)
そういった感じでデメリットもあるのですが、もちろん高額な料金を払ってでも得られる大きなメリットもあります。
一番は体系的に学習することができること、お金を払っているのでやらなければいけないと自分を追い込めること、相談できる場所があることが大きなメリットと考えます。
高額な費用がかかる分判断するのが難しいがやる気が本当にあり費用をよういできるのであれば、現場までの最短コースなのは間違いないと思います。
プログラミングスクールの金額をざっくり比較
ざっくりどれくらい費用がかかるのかをまとめてみました。
概算金額なので詳細は各スクールの公式サイトを確認してください。
調べていて要注意だと思った点は、返金やキャンペーで結構高額をキャッシュバックするとかあるのですが、条件が結構厳しいのでよく読んでから検討してください。
悩んだときにおすすめはオンライン説明会などでとりあえず聞きたいことを質問しまくることは必要だと思います。
入会せずとも行動を起こすことはエンジニアとしてはとても大切です。
まとめ
結論で最初に述べたようにPHPはプログラミングを学ぶ目的によっては最初に学ぶ価値のあるプログラミング言語です。
言語選定は道具を選ぶようなものなので、プログラミングを学習するためにはまず目的を明確にすることから始めることが大切です。
学習方法についてはぶっちゃけどの学習方法でも大丈夫です。
どのスタイルでやるにしても自分のやる気がすべてなので、最後までやりきる覚悟を持って学習してもらえれば必ずプログラミングできるようになります。