プログラミングの基礎を学んだ後は実践から学ぼう
プログラマーを目指してプログラミングの基礎を本などから学習した人が悩むのが、次に何をすればいいかだと思います。
応用などが書かれたよりレベルの高い本から学習するという手もありますが、個人的にはいきなり実践から学んだ方が近道だと思います。
具体的にはプログラミング初心者として進みたい分野のIT系の会社に就職して実践するのが一番効率がいいです。
不安であれば就職の前に模擬的な実践経験を積めるプログラミングスクールを経由するという手もあります。
実践から得られるもの
チーム作業の方法
特にチーム作業に関しては本から得られない経験です。
要件定義、タスクの切り出し、工数の算出、チーム作業に適したクラスや機能設計、スケジュール管理、資産管理、デバッグ、検収、etc
各々がバラバラに作業していたらチーム作業は成り立ちませんので、チーム作業をするにあたっての流れというものがあります。
実際に会社でチームとして働くとそれぞれの項目で本が1冊出ているようなことをダイジェストで総合的に学ぶことができます。
実践的なデザインパターンの応用
デザインパターンの本もたくさん出ていますが本だけだと学習スピードは遅く応用力も身に付きにくいです。
実際にシステム開発に参加することにより具体的で実践的なデザインパターンに数多く出会えますので自然と学習して身についていきます。
様々なデザインパターンの応用力が身に着けば設計もスムーズに行えるようになります。
将来リーダーやマネージャーでシステム開発を指揮していく時の資産となっていくと思います。
パフォーマンスやセキュリティ
個人で本などから学習している段階ではパフォーマンスやセキュリティが具体的な脅威として問題になる事はありません。
しかし実際の開発現場ではパフォーマンスやセキュリティは重視しなければならない項目の一つです。
システム開発の実践からパフォーマンスやセキュリティを考慮した設計やコーディングを直接学ぶことができます。
パフォーマンス上のボトルネックになりやすいのはDB設計ですが、DBも奥が深く本からの学習よりは実践からの方が効率がいいと思います。
MySQL, PostgreSQL, DB2, Oracle, MSSQLなど、商用無料含めて様々なDBがありそれぞれに特徴があります。
大規模システムの開発でモデルやDBの設計、キャッシュの設計などの実践的なスキルに出会い、それを学べるチャンスも多くあります。
セキュリティについてもネットワーク層のものからアプリケーション層のものまで様々です。
パフォーマンスやセキュリティに関して基本的なこと、定石的なことは実践で自然と学習できます。
総合的な応用力
実践で様々な案件を経験することによって基本からは学べない総合的な応用力を高めることができます。
コーディングひとつとっても応用パターンがすぐに思いつくようになると思います。
同じように設計も応用パターンが広がっていきます。
新しい案件で新しい設計をしないといけない時でも、過去の経験の設計を応用した設計をすぐに思いつけるようになります。
過去の上手くいかなかった経験も活かすことができるようになります。
上手くいかなかったことは最初の段階で避けることができるので、後になって問題になるようなことを極力出さないようにしていけるようになります。
ソース管理、設計、運用時の手間など実際に問題になった過去の経験は本からは得られないものです。
その実践経験の積み重ねが総合的な応用力として身に着いていきます。
まとめ
どんなに凄いスーパープログラマーやスーパーエンジニアも最初は初心者の頃があったのです。
本だけみて理解した気になって実践に生かさないノウハウコレクターになってはダメです。
プログラマーを目指して基本を理解したら次は実践あるのみです。
初心者でも会社捜しを真剣にすればIT系プログラマーとして就職することは難しいことではありません。
もし、いきなり実践は怖いという方は今の時代プログラミングスクールを経由するという安全で確実な方法もあります。
プログラマーに興味があるのであれば飛び込むのを恐れないで行動した方が絶対に後悔しません。
成功している人は必ず行動して何度もチャレンジし、チャンスを掴みにいっています。
基本を学習して理解したプログラマー初心者はどんどん実践してチャンスものにしていきましょう。