このような疑問をお持ちの方に向けて書いています。このあと、下の2点についてくわしく説明していきます。
- おすすめのプログラム言語はPHP
- PHPはどのような言語なのか
- PHPの後に学ぶ言語は
プログラミング言語の難易度
プログラミング言語は一つ理解できれば、どのプログラム言語も同じと言われます。それでも僕は理解しやすさだったり、学びやすさに違いがあると思っています。
それはプログラム言語だけでなくフレームワークも関係していたり、ライブラリだったり難易度はいろいろ含めて違ってくると思う。
プログラム言語の難易度の違い
プログラム言語にも難易度があり、今まで僕が開発で使ってきたプログラム言語限定で難易度を考えてみました。
経験してきたプログラム言語
- JavaScript(Vue.js, Nuxt.js)
- TypeScript(Angular)
- Java(Struts, Spring, Spring Boot)
- C#
- PHP(Laravel, CakePHP, Codeigniter, Symfony, Zend Framework)
- Ruby(Ruby on Rails)
- Objective-C
少ししかさわっていない言語もあるので、自分の理解に幅があるので平等ではないかもしれないけど。
プログラミング言語難易度ランキング
経験してきた言語からざっくりと難易度を考えてみました。難易度を3つにランク分けしてみます。
難易度 S | Objective-C, Java, C# |
難易度 A | TypeScript, Ruby |
難易度 B | JavaScript, PHP |
プログラミング言語難易度ランキングの解説
個人的にはソースコードが見やすいプログラム言語はわかりやすいと感じる。
Javaは経験が浅いころに学んだ言語なので、難しかったという印象が残っています。その後に学んだPHPがJavaに比べると理解しやすかったのでPHPは初心者向きだなと感じました。
JavaScriptはHTML,CSSの知識も含めて難易度が変わるのかなと思う。僕は低めに設定しましたが、人によってはSランクになってしまう人もいると思う。
Objective-Cが一番難しいと感じた。ソースコードも読みにくい笑。読みやすさでいうとJava,TypeScriptあたりが読みやすい。型があるので引数と戻りがわかりやすく他の人の処理でもやりたいことを想像できる。
ただいろんな部分を考慮してPHPが一番難易度が低いと感じました。
初心者におすすめのプログラム言語
PHPは動的型付け言語で、Javaとかは静的型付け言語になります。初心者が型まで意識してプログラム作るのって少し難易度が高いのかなと思っている。
他にもいろいろと理由があって以下で説明していきます。
PHPが初心者向きな理由
- 変数がわかりやすい
- まだまだ人気がある
- WordPressから学べることが多い
- Javaの次に案件が多い
初心者向きな理由になっているのかわかりませんが、プログラミングは需要と供給が大事でどんなに好きなプログラム言語でも需要がないと仕事にはならないと思っていて、その辺りも含めて考えると2020年現在はまだPHPが一番ちょうどいいのではと思いました。
安定して需要がありJavaの次に案件数が多い。また経験者はあまりPHPを好まない人が多いので初心者が案件に入りやすい。
変数名に$が付いているので、ぱっと見わかりやすい。ローカル開発環境もXAMPP入れるとポチって出来上がる。Webのために作られた言語。ネットでの情報が多い。
何か試したい時にパッと作れる。
PHPをきっかけに次の言語へ
PHPはかなり批判されやすい言語で特に他のプログラム言語を知ってると統一性がなく感じたり、動的型付け言語ということで作り手によってバラツキがでてくるということがある。
最近PHPから離れていたので、最近のPHP事情はあまりわからないですがPHP7になって型が使えるようになったため、少しは批判も減るのではと思っています。
どの言語にもメリットとデメリットがあると思うので、これはだめだと言わず言語の特徴を理解しながら開発していくのが僕たちの仕事かと思っています。
PHPと比べられる言語はJava,Ruby,Python,Goあたりだと思います。Webにいたらいろいろと触る機会があると思うので、いろんな言語に触れたらいいと思います。
PHPの後に他の言語を学ぶ
Javaは日本では不動の人気で案件数も常にトップのプログラム言語です。SIerが大きなプロジェクトを受託して下請けが開発するという流れから、日本ではJavaの需要はなくならないのではと思っています。
最近人気のPythonはこれからもAIの分野で人気が止まらないので需要がある。
Goは処理速度の速さで人気急上昇中。Rubyは少し需要が下がってきている。僕のイメージはこんな感じです。
PHPの後はJavaを学ぶ
PHPに比べるとJavaの完成度は高いなと感じます。僕の場合はJava → PHPの順で学んだので、PHPの自由さに戸惑った部分があったけど、小規模の開発では2,3人でさくさく進むので良い部分もありました。
逆に大規模でPHPを使った時は、Javaのようにコンパイルエラーがでないのでバグがわかりにくかったり、大変に感じる部分もありました。
PHPとJavaは全く違う感じのプログラム言語で両方やるとJavaの完成度の高さを知ることができると思うので、Javaを学んでほしい。
Pythonを学ぶ
僕はPythonの経験がないので、興味はあるけどフリーランスになって経験のない言語ではなかなかプロジェクトに入りにくい部分がある。けれどもPythonで開発できる機会があるなら需要も大きいためできるならやった方がいい言語だと思う。
AIの分野は未経験の人が入りにくいという話を聞いているので、初心者が最初に始める言語としておすすめはしていないですが、2番目、3番目の言語として学ぶことはおすすめかと思います。
Goを学ぶ
僕が今一番興味があるのがGo言語。高速処理で評価が高い。これからも複雑なシステムが増え処理することが増えると処理速度は重要な問題になると思っている。
これから伸びる(伸びてる)のでやってみたいプログラム言語です。
Rubyはどうか
PHPの後を追ってRubyが出てきて、一時期は人気のプログラム言語だったが最近は海外でも人気が下がり気味。今から学ぶ言語としてはあまりおすすめではないのかと感じます。
まとめ
僕はプログラム言語を学ぶ時、ただやってみたいということだけを考えるのではなく、その時の需要や将来性を考えて学ぶようにしています。
初心者が学ぶ言語にPHPを選択すると批判する人が一定数いることはわかっていますが、フリーランスエンジニアとして常に案件の動向をエージェントに確認していていると、まだまだJavaとPHPの需要がある。
そこを考えた時、GoやRuby、Pythonで未経験の人が学んで入るには厳しいと思う。単純に将来性だけを考えるとPythonがおすすめになるのかもしれませんが、「初心者」がいきなり入る場所があるのかが大事かと思いました。
個人的に僕の考えを記事にしてみました。プログラミングを学ぶ参考にしてみてください。