在宅「ママ×プログラミング」でライフステージに合わせた働き方を実現プログラミングを学びたいんだけど、PHPを選ぶべきなのかわからない最近PHPって廃れてきたって聞いたんだけど初心者が学ぶべき言語ってどれなんだろう?こんにちは。選んだ言語がCで挫折を経験した後、PHPでプログラミングの面白さを理解できたエンジニア・テックライターの平山です。プログラミングを学びたいと思っている方の中には、上のようにどの言語を選んでいいのかわからない、という人が結構いるのではないでしょうか?PHPについては、いい噂と悪い噂が入り混じっているようです。初心者の方には判断が難しくなっているのも事実かもしれません。そこでこの記事では、PHPを学ぶべきかどうか迷っている初心者の方を対象に、学ぶべき人、おすすめできない人を提示していきます。この記事を読むと、自分の目指している方向とPHPがどれだけ噛み合っているのか、初心者の方でも判断できるようになるはずです。まとめPHPを学ぶべきなのはこんな人まずはPHPを学ぶべき、と声を大にしておすすめできる人を見ていきましょう。以下に紹介するような人はPHPを学ぶメリットがとても大きいといえます。Webサービス・Webアプリを作りたいCMSを改造したいWebでできるこの幅を広げたいWebサービス・Webアプリを作りたい人PHPはよく「Webに特化した言語」と言われます。Toolsという物がありました。名前の通りホームページをいじるのに便利なツール群でして、これを改造・発展させたものが現在のPHPへとつながっているんです。生まれも育ちもWebに使われることを念頭においてきただけあって、PHPはWebの扱いに特化した言語となったわけなんです。このためPHPは、Webで何かを作るには非常に便利な言語に仕上がっています。PHPで作られたWebサービスに興味のある方は以下の記事も見てみると、いろいろ発見があり、より興味が深まることでしょう。略で、日本語ではコンテンツ管理システムと呼ばれます。CMSはWebコンテンツを構成するテキストや画像などを管理し、配信するためのシステムです。これを簡単にいうと、インターネットに対する深い知識が無くてもWebコンテンツを作ることができるシステムです。これらは昨今のWebサイト作成でよく使われているCMSです。重要なポイントですが、この2つのCMSはPHPで作られている、ということをぜひ覚えておいてください。これらのCMSはPHPを使うことで独自に改造を加えることができるんです。このため、WordPressで必要な機能を追加するためにPHPを学ぶ、という人は現実に多くいます。世界の1/3のWebサイトはWordPress製、といわれるほど広く普及しています。WordPressを改造する知識があれば、それだけで優秀な人材として重宝されます。実際に、WordPressのプラグインやテーマを制作して生計を立てているエンジニアもいるくらいです。Webでできることの幅を広げたいこの項目はすでにある程度Webに馴染みのある人向けです。HTMLとCSSはそこそこわかるけど、プログラミングになるとさっぱりわからない、Webデザイナーやディレクターの方が主に該当するでしょうか。いった方がPHPをわかるようになると非常に強力です。フロントエンド側の知識はある程度しっかり持っている上に、バックエンドの知識が加わるので、フロントとバックの間を非常にスムーズにつなげることができます。今までだったら意味のわからなかったAPIの仕様や、バックエンドに優しいフロントの設計とか、そういった部分の配慮ができるようになると、全体の開発速度は格段に上がります。システム全体を見渡すことができる、ということはそれだけできることの幅が広い、ということなので、ぜひこの機会にバックエンドの入門としてPHPを始めてみてはいかがでしょうか?次の章では本章とは逆に積極的にはおすすめしにくい人を紹介していきます。続いてこの章ではPHPの学習をおすすめしにくい人を見ていきます。次のような人にはPHPをおすすめしにくいですね。Web以外のプログラミングをしたいWebに興味がないHTMLやCSS、JavaScriptなどの周辺知識を学びたくないプログラミングを基礎からじっくりやりたいオブジェクト指向を極めたいただ、あくまでも目的を達成する手段としてPHPが噛み合っていないということです。PHPを学びたいのであれば、その気持を大事にしながらPHPを学び始めるべきです。Web以外のプログラミングをしたい画像:Shutterstockまず一番わかりやすいのがこの項目に当てはまる人です。1章で触れましたが、PHPはWebに特化した言語と言われています。いうことは、Webプログラミング以外のことをやりたい場合、他の言語を習得したほうが希望を実現できる可能性が高いです。以下にやりたいことと、それに対するオススメ言語を紹介しています。Windowsアプリ多くの人が使っているWindowsで動くアプリを作りたいならば、C#やVB.NETという言語がおすすめです。難易度は高いですが、C言語からはじめてC++を習得することで、かなり深い部分までWindowsをいじれるようになります。多くの人に使ってほしいということならば、Webアプリ、という選択肢もあります。興味のある方はぜひ1章をご覧ください。OSで動くアプリを作りたいならば、Swiftという言語がオススメです。swiftとは何かを知りたい方はこちらの記事を読んでみると、理解が深まるでしょう。2019年10月8日なお、swift登場以前はObjective-Cという言語がApple製品でプログラミングを行うための基本言語だったのですが、swiftが登場した関係で最近廃れ気味です。今から始めるならあえて選ぶ必要性は薄いでしょう。AndroidアプリスマホのAndroidで使えるアプリを作りたいならば、Javaが基本になります。Javaは様々な環境で動かすことができ、安定性も高いため、業務用のアプリ開発などでもよく使われている非常に人気の高い言語です。Javaについては以下の記事もご覧ください。2019年5月22日また、最近ですとAndroidアプリ開発に使えるということでKotlinという言語が話題になっています。KotlinはJavaと似たような用途で使える言語でありながら、新技術や新発想の物事を積極的に取り入れている先進的な言語です。興味のある方はこちらをご覧ください。2019年4月18日iPhoneアプリ日本で大人気のiPhoneのアプリ開発をやりたいならば、習得すべき言語はSwift一択です。SwiftはMacのアプリ開発でも使えると紹介しましたが、Apple社の製品全般の開発言語として使われています。いう方は真っ先に選んでみるのもいいですね。ゲームプログラミングを学んでゲームを作ってみたい!という人は結構な数がいるようです。最近はプログラミングを直接使う、というよりもゲームエンジンと呼ばれるゲーム制作のためのツールを使いつつ、必要な箇所でプログラミングを行ってゲームを作っていくことが一般的です。多くのスマホゲームやコンシューマゲームで使われているゲームエンジンとして、Unity(ユニティ)があります。Unityの使い方を学びつつ、必要となるプログラミング言語を習得していくといいでしょう。Unityについてはこちらの記事をどうぞ。2019年5月8日また、ゲームエンジンを使わずに、昔ながらの方法で1からプログラミングをしていく、という方法もあります。いったやり方は今でも実行速度が求められる現場で利用されており、そのために使われる言語はC++です。多様な環境に対応させることができる、という点からJavaを採用したMinecraftというゲームもあります。人工知能ですが、人工知能を作るためにもプログラミングが必要になります。人工知能を作る際に必要になるプログラミング言語はPython(パイソン)が一番人気ですね。書きやすさ・読みやすさを重視した言語で、人工知能の開発に必要な数学的処理も簡単にこなせる機能が充実しており、とても人気があります。Pythonについてはこちらの記事をどうぞ。大学などの研究機関では、実験結果の解析にプログラムを使うこともよくあります。そんな用途に特化した言語として有名なのがR言語です。最近流行りのデータサイエンスや統計分析を行うのにもよく利用されていますね。R言語について詳しく知りたい方はこちらの記事をご覧ください。2020年1月10日また、Pythonも学術・研究用途のライブラリが充実しており、統計分析などでよく使われています。Webに興味がない続いてのPHPをオススメしにくい人は、Webに興味がない人です。人の興味はそれぞれですが、まったくもってWebに興味がないとなるとさすがに難しい部分があります。プログラミングを学んで作りたいのはローカルなアプリのみ、Webを使った拡張性とかまったく興味がわかない、という人にはPHPはオススメしづらいですね。これもPHPがWebに特化した言語ゆえです。確かにWebプログラミングはフロントエンドとバックエンドで大きく分けられたり、バックエンドも単純なプログラミングだけでなくインフラや通信についての細かい知識が必要になったりと、一般的なローカルアプリの開発とはかなり勝手が違います。Webにさえつながればどんな端末からでも使える汎用性や、端末の性能にそこまで依存せずに設計できたりと、Web特有のメリットはたくさんあります。今現在、ローカルで実現したいと思っていることも、Webアプリで作ったほうがより簡単に実現できるかもしれません。一度Webという選択肢も考えてみてください。HTMLやCSS、JavaScriptなど周辺知識を学びたくない上のWebに興味がないとも繋がる部分かもしれませんが、多くのWeb嫌いにとって、一番の問題は1つの言語を学んだだけではものが作れない、という事かもしれません。Webアプリを開発しようとすると、上でも書いたようにフロントエンド・バックエンド両方の知識が必要になります。フロントエンドというと、基本的にHTML/CSS、JavaScriptのことを指します。バックエンドはバックエンドで用いられるPHPなどの言語1つとサーバ設計が主な構成要素です。Webアプリを一つ作るのに、これだけの知識が必要になります。全部をプロフェッショナルレベルで使いこなせる必要はないので、1つ1つを必要な部分だけつまみ食いしていけばそこまで大変な学習量にはならないんですが。それでも、プログラムを1つ作るのにたくさん勉強したくない、という人にはPHPはオススメしづらいですね。プログラミングを基礎からじっくりやりたいこの項目は今までとは少し毛色が異なります。PHPの学習は上で紹介したようにWebアプリを制作することを目標にする場合、かなり実践的な学習スタイルになります。実際に手を動かして作りたいものを作り上げていく、という方式ですね。この方法は、Webアプリ制作の実践的な方法論を身につけられるというメリットがあります。逆に、つまみ食い状態で各技術を習得していくため、虫食い的に学習では拾いきれない項目がある程度発生してしまいます。いう学習スタイルの方には向かない方法ですね。プログラミング言語にはそれぞれクセのようなものがあり、似たようなものは系統としてまとめることができます。PHPは他の言語に比べて結構クセが強めです。そのため、PHPを最初に習得すると、他の言語では当たり前でないようなことが当たり前になっていたりと、意外と変な部分でつまずくことが時々あります。暗黙の型変換とか、知らないと結構致命的なものもあったりして気が抜けません。複数のプログラミング言語を習得する場合、こういった言語ごとの常識の食い違いは往々にして発生が避けられません。最初に系統の大本になっている言語を習得しておくと、混乱が少ないとも言われています。この場合、C言語とかJavaが系統の大本と言えるでしょうか。(まあ、CやJavaが昔からあって、それを改善するように新しい言語が発展してきた、という歴史があるので、改善の前と後を知っておけば混乱しにくいであろう、程度の問題ですが。CやJavaが構造として完璧なわけでもありませんし。)将来たくさんのプログラミング言語を習得したい。プログラミングを極めたい。いう人は、PHPは最初に選ばないほうがいいかもしれませんね。オブジェクト指向を極めたいこちらも一つ上の項目とリンクしますが、プログラミングの方法論の一つにオブジェクト指向プログラミングというものがあります。このオブジェクト指向プログラミングは初心者の壁としても有名です。プログラミングを挫折した人の内、一定割合でオブジェクト指向が理解できなかった、という人がいるくらいです。PHPもオブジェクト指向プログラミングができるオブジェクト指向言語ではあります。問題点としてPHPベースで書かれたオブジェクト指向の解説書があまり売られていないんですよね。個人的にオブジェクト指向は実際にプログラミングをしながら実践の中で習得していくことと優れた解説書を読んで概念を理解することの両方が大切だと考えています。いった点で、PHPだけで完結できる解説書が無いのは大きな痛手といえますね。オブジェクト指向を本格的に極めようと思ったら、オブジェクト指向の開祖であるJavaで学ぶことがおすすめです。オブジェクト指向という概念を世に広めた立役者がJavaで、Java向けに書かれた解説書はとても豊富に用意されています。オブジェクト指向に欠かせない、デザインパターンの学習もJavaベースだとやりやすいです。上記以外のPHPのメリット・デメリットPHPを学ぶべき人・学ぶべきでない人という分類で、PHPについて見てきました。この章では上2章で紹介しきれなかったPHPのメリット、デメリットを紹介していきます。フリーランスやエンジニアとしてやっていく際のメリットについて。実は、PHPは世界中で使われているバックエンドの言語のうち80%を占めている、という調査があります。https://w3techs.com/これは、CMSの項でも書きましたが、世界中のWebサイトの1/3がWordPressで作られていることや、ほとんどのサーバでPHPが動作することが原因と考えられています。この数字だけ見ても、PHPのエンジニアに対する需要はかなりものであることが予想できるのではないでしょうか?エンジニア目線でPHPのメリットを紹介した記事がこちらです。2019年6月5日また、PHPは確かに多くの場所で使われているけど、最近別の言語が流行っているから人気が落ちてきた──という話を聞いたことがある方もいるかも知れません。確かに最近はRubyやPythonなど、PHP以外の言語が流行してきており、PHPの存在感が相対的に低下したようにも感じられます。求人サイトで検索をかけてみると、そうでもないことがわかってきます。求人サイトのWantedlyでPHP、Ruby、Pythonで検索をかけてみたところ、エンジニアの求人がそれぞれ4100、3700、2800件程度となりました。いうと、そうではありません。確かにRubyはRailsというフレームワークで人気を拡大させましたし、Pythonは人工知能ブームの昨今、需要が高まっています。日本には依然として多くのPHPで作られたシステムが存在します。PHPもCakePHPやLaravelといった優秀なフレームワークを利用したサービスが今後も作られていくことでしょう。考えると、PHPの需要自体はしばらく安泰といってもいいのではないでしょうか。PHPの人気が無いのかを考察した記事が以下になります。最後に資格について見てみましょう。いった国家資格やOracleが開催しているOracle認定Javaプログラマなど、様々な資格試験があります。PHPも例に漏れず、PHP技術者認定機構が開催しているPHP技術者認定試験があります。持っていることで業務を独占できるタイプの資格ではありませんが、自身の技術力の証にはなります。転職やフリーランスとしてなにか証明できるものがほしい方は狙ってみてもいいかもしれませんね。PHP技術者認定試験に関する記事はこちらです。2016年8月3日まとめいかがでしたか?今回はPHPを学ぶかどうかお悩み中の人向けに、おすすめできる人、できない人。PHPのメリットデメリットを紹介してきました。プログラミングをやってみようと思っている人にとって、言語選択は一大イベントです。この記事が皆様の言語選択のお役に立てたのであれば嬉しく思います。お相手は年に1言語習得を目標にしている平山がお届けしました。TweetPocket「プログラミング、右も左もわからない...」という方にオススメ当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。その経験を通して、プログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。Reserved.現役生徒500名以上が在籍する弊社のプログラミング学習プランをあなたに合わせて最短1分で診断します。