• ベストアンサー

phpの勉強について

初心者の質問で申し訳ないのですが、現在phpを独学で勉強しようと思っています。 参考書を買えば初心者レベルにはなれると思うのですが中級者・上級者へステップアップするにはどういうことを学んだらいいかわからない状況です。 もしよろしければどういうことを学べばいいか教えてもらえると助かります。 また、どういうことができて中級者・上級者なのかも教えてもらえるとうれしいです。 あととりあえずショッピングカート機能・会員登録・メールフォームなどが作れるようになりたいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

・とにかく手を動かしてつくってみる事。 ・最初から完璧なものをつくろうとしない事。 まずはこの2点だと思います。 --- 因みに初心者・中級者・上級者の定義ですが、 上級者に関しては その言語における上級者なのか 開発者として上級者なのかによって意味合いがかなり異なってくると思います( 一般には開発者として上級者という意味合いかなと思うのでそちらで話を進めます ) (初心者) 一通り構造化プログラミング等の基礎文法、またPHPであればMySQLとの連携を学び終えて、最低限のCRUD(データベースのCreate, Read, Update, Delete)処理等の操作ができる状態でしょうか。 (中級者) このレベルではその言語におけるフレームワークを習得できていれば望ましいと思われます( PHPなら Laravelとか、FuelPHPとか、CakePHPとか )。 また、中級者になると PHPのバージョン間における差異や、他のプログラミング言語と相対化した上での言語仕様の理解が必要になってくるかなあと思います( 他の言語と比べて PHPはどういう点に優れていて、どういう点で劣るのか 等が理解できている 等 )。ので、必然的にPHPだけではなく他の言語の経験も必要になってきます。 (上級者) 上記の「上級者」の仮定で言えば、その言語単体におけるレベルというより 技術体系全体を通した話になってくると思います。 例えば ・保守性を考慮した設計 ・負荷を考慮した設計( 秒間何リクエストまでさばけるか ) ・上記に関連するキャッシュ周りの処理 ・Git, Jenkins, ユニットテストフレームワーク等との連携 等々。 --- ・完成された素晴らしいプログラムをつくるためにやった方が良いなあと思うこと 1. データモデリング、DB設計、プログラム設計、テスト手法 等を理論で学びながらも、理論だけになることなく 実際に手を動かして習得し続けることが大事かなあと思います。 2. 色々な人のコードに触れ、良いものを学ぶ事。 ・チームビルディング・実務での利便性等を考えるのであれば、 3. Git、Github、Slack、Redmine、アジャイル開発、スクラム、テスト駆動開発 等。 ただ、これは正直個人で開発する上では身につきにくいので、実際にそういう手法が採用されているチームに参画して 実際に課題に直面してウンウン悩みながら学んでいくことが習得するための手っ取り早い道のりです。 2, 3 は個人での勉強というよりも 色々な人やチームとのふれあい、コミュニティへの参画によってもたらされるものだと思うので、ある程度基礎をつけたら インターンシップに参加してみるなり ハッカソンや勉強会に参加してみるなりをお勧めします。

その他の回答 (1)

  • coai
  • ベストアンサー率50% (152/301)
回答No.2

>参考書を買えば初心者レベルには 参考書の最大の欠点は、セキュリティやエラー対策に無頓着なことです。 まあ、問題が起こらないように事前に行うセキュリティ対策、それでも問題が起こった際にのみ意味があるエラー対策などは、入門時の勉強のモチベーションにとってはマイナスになる可能性がありますから判らなくもありません。 最低限、セキュリティ対策やエラー対策が判っていないと中級なんて言えないと思います。 上級となると直接PHPからは外れますが、Ajaxなど他の技術との連携、あるいはApatch等HTTPサーバ等を理解した上でその技術との連携、HTMLやCSSを理解して単独でWebサイトを(デザイン面含めて)作成できる能力等、周辺技術と連携が実用レベルであることかなという気がします。 Web技術は単独じゃ限界が近くて、ちょっと勉強すればできない事の壁にぶつかるように思う。 その割に、周辺技術との連携が容易で、ちょっと周辺技術を勉強すればできる事の幅が極端に広がる。 しかも勉強すればするほど、深く広くなっていく気がする。 これじゃ抽象的で伝わらないかも知れませんが、連携を考えられるようになるとPHPの限界がなくなると思って貰えればいいかな。 という意味で、私はこれを上級だと感じます。