これまで、PHPを中心にプログラミング関係の本を100冊ほど読んできたので、後学のために、どのような技術を、どの順番で、どれだけ深く学習したらよいかを簡単にですがまとめておきます。
なお、各項で「比重」とあるのは、全体(100%)からみてどれだけの労力を学習に充てるべきかの比率を表しています。括弧書きは、100冊読んだ場合の冊数を表しています。
それでは、学習すべきお勧め順に紹介していきます。
■ 1. PHP
比重:20%(20/100冊)
難度:普
要点:文法、セッション、データベース連携、セキュリティ、フレームワーク
概要:PHPプログラマであるならば、当然、PHPについて深く知る必要があります。文法はもちろん、クッキーやセッションの扱い、データベースとの連携、そして、セキュリティまで広範囲に技術をカバーする必要があります。レベル的には、会員制サイトを運営できるくらいになれば、まずまずでしょう。更に、CakePHP等の主要なフレームワークについても習得しておくことが望ましいです。
おすすめのPHP入門書
■ 2. SQLおよびデータベース
比重:15%(15/100冊)
難度:普
要点:文法、データベース設計
概要:PHPでアプリケーションを制作する場合には、データベースとの連携がまず不可欠です。アプリを効率よく動作させるために、深いSQLの知識が必要です。また、データを効率よく取り扱うために、データベース設計の知識も必要です。データベースとの連携は、アプリの肝となるため、十分に学習することが求められます。なお、主にMySQLを中心に学習すると良いでしょう。
おすすめのSQL・DB入門書
■ 3. HTML
比重:5%(5/100冊)
難度:易
要点:文法、HTML5
概要:PHPは、最終的にはHTMLを生成することが多いので、当然、HTML自体についても正確な知識が求められます。HTMLの構造として、正しく適切なマークアップができることが必要です。HTMLは比較的簡単なので、数冊ほどの入門書に目を通すくらいで良いでしょう。
おすすめのHTML入門書
■ 4. CSS
比重:5%(5/100冊)
難度:易
要点:文法、CSS3
概要:HTMLを学習したならば、HTMLの装飾としての機能であるCSSもセットで学習しておきましょう。最近は、CSS3といって、CSSの多機能化も進んでいます。基礎から最新のCSS事情まで目を通すと良いでしょう。
おすすめのCSS入門書
■ 5. JavaScript
比重:15%(15/100冊)
難度:普
要点:文法、DOM、Ajax、ライブラリ
概要:PHPがサーバーサイドの言語であるならば、JavaScriptはクライアントサイドの言語です。JavaScriptは従来、HTML及びCSSとセットで学習されてきましたが、PHPと連携させることで、表現の幅がとても広くなります。HTMLやCSSの操作であるDOMはもちろん、PHPとの連携であるAjax、そして、余力があれば、JQueryなどのライブラリまで学習すると良いでしょう。
おすすめのJavaScript入門書
■ 6. Linux
比重:5%(5/100冊)
難度:普
要点:基礎知識、Apache、Bash
概要:PHPはサーバーで動作するものである以上、サーバー自体の知識も必要です。サーバーの構成そのものや、パーミッション、WEBサーバーであるApache、サーバーを操作するためのコマンド、そして、Bashといったプログラミングまで学習すると効率よく開発と保守ができるようになります。
おすすめのLinux入門書
■ 7. Java
比重:20%(20/100冊)
難度:やや難
要点:文法、オブジェクト指向、デザインパターン、リファクタリング
概要:PHPの学習に際しては入門書等を利用するのですが、それだけだと、プログラミングの力が不足してしまいます。よりPHPの力を発揮させるには、オブジェクト指向やデザインパターン、そして、リファクタリングといった知識も必要です。こうしたステップアップのための学習をするには、Java言語が最適です。内訳としては、各分野の本を5冊ずつくらいを目途に学習すると良いでしょう。
おすすめのJava入門書
■ 8. C言語
比重:7%(7/100冊)
難度:普
要点:文法、ポインタ、構造体、アルゴリズム
概要:Javaを学習したら、ついでにC言語も学習するのがお勧めです。理由は、プログラミングの定番コードの説明にはC言語がよく使われること、また、アルゴリズムといった分野ではC言語が多く利用されていることがあげられます。C言語の文法は、PHPやJavaと似ているため学習は比較的楽だと思います。ポインタや構造体などの知識も、あとあとプログラミングの理解を深めるので一通り学習するのが良いでしょう。また、C言語の学習に併せてアルゴリズム関係の本も数冊読んでおくのがお勧めです。
おすすめのC言語入門書
■ 9. C++
比重:3%(3/100冊)
難度:難
要点:文法
概要:JavaとC言語を学習したら、ついでにC++の入門書にも目を通しておくのがお勧めです。プログラミング言語の中でも最も難しい言語とされているので深入りは不要ですが、簡単な入門書を数冊読んでおくと自信になります。同じオブジェクト指向の言語であるJavaとの比較や、C言語の構造体とC++のクラスの比較などをすると理解が深まります。C言語とC++を合わせて10%くらいを目途に学習すると良いでしょう。なお、最終的には、デザインパターンのGoF本(オブジェクト指向における再利用のためのデザインパターン)を読むのがおすすめです。
おすすめのC++入門書
■ 10. その他
比重:5%(5/100冊)
難度:普
要点:コーディングスタイル、アジャイル開発、テスト駆動開発、環境構築
概要:主なプログラミング言語を上記で挙げましたが、その他にも、コーディングスタイルについてや、アジャイル開発やテスト駆動開発といった開発手法、そして、gitなどのバージョン管理システムなども学習する必要があります。ここらへんは、必要に応じ随時学習すると良いでしょう。
以上で、PHPプログラマが習得すべき技術を10個ばかり簡単に解説しました。この他にも、関数型言語やPython、Ruby、perlといったスクリプト言語、そして、スマホ開発に必要なAndroidなどの分野もあります。IT技術はもちろん、プログラミングに限ってもとても広大な分野なので、学習は際限が無いとも言えます。しかし、自分に必要な知識を見極めて効率よく学習できたならそれに越したことはないと思います。この記事が後学の人のために少しでも役立てば嬉しく思います。