コーディングを始めて数年になりますが、自分の知識はプロになるにはまだ足りないと感じています。デザインパターンに関する本を何冊か読んだことがありますが、他にもたくさんの本があることは知っています。
では、より優れたプログラマーになり、より専門的になるために学ぶのに良いと思われるパターンと原則を誰か挙げてもらえますか?
私が取り組んでいるプログラミング言語: C#、Ruby、Javascript。
コーディングを始めて数年になりますが、自分の知識はプロになるにはまだ足りないと感じています。デザインパターンに関する本を何冊か読んだことがありますが、他にもたくさんの本があることは知っています。
では、より優れたプログラマーになり、より専門的になるために学ぶのに良いと思われるパターンと原則を誰か挙げてもらえますか?
私が取り組んでいるプログラミング言語: C#、Ruby、Javascript。
デザインパターンに関する百科事典的な知識だけでは、何の役にも立ちません。それらを適用した豊富な経験があります。これにより、それらをいつ使用し、いつ使用しないかがわかります。
そうは言っても、オリジナルのデザイン パターンの本は今でも私のお気に入りの 1 つです。あなたが進むにつれて、他のパターンを拾います。
コーディング全体を改善するために現在学習/取り組んでいる、言語に依存しないスキルのいくつか。
本の推薦に関する質問へのリンク @ SO:
そしてもちろん、以前のコメントで述べたように、 Pragmatic Programmer の本もありました。
原則は私が始める場所であり、パターンは僅差の 2 番目です。
原則: 筏全体がありますが、これらは私が実用的なマイレージを得るものです:
これらの多くは (グループ化された場合) SOLID (オブジェクト指向設計)として知られています。
パターン:
ウィキペディアには、まだ見たことがないという前提で、 Software design patternsのかなり良いリストがあります。
最後に覚えておくべきことは、パターンには 3 つの基本的なタイプがあることです (さらに、マルチスレッド/同時実行の 4 番目のカテゴリ)。これらのカテゴリについて知り、何かを行うときにそれらを念頭に置いておくだけでも役立ちます。それらは次のとおりです。
ツール (プログラミング パラダイム、パターン、ソース管理、単体テストなど) を習得することは不可欠ですが、自分を「プロ」と呼ぶだけでは十分ではありません。真のプロ プログラマーの証は、クライアントが何を理解しているかを理解する能力です。ニーズ。残念ながら、この種の知識を本から学ぶのは非常に困難です。
言語をたくさん学ぶのが最善の方法だと思います。LISP、Scheme、Python、Smalltalk、Erlang、Prolog、Eiffel、その他多数
そして、それらを使って何かを構築します。
Martin Fowler のエンタープライズ アプリケーション アーキテクチャのパターン(たとえば、リポジトリ、アクティブ レコード、ドメイン モデル、作業単位) を他の開発者と共有する語彙を構築します。
Douglas Crockford のJavascript: The Good Partsは、実際に Javascript がどのように機能するかを理解するのに役立ちます。
そして、TDD (テスト駆動開発) に参加することを強くお勧めします。多くの優れた TDD の本がありますが、ブラウンフィールド開発を行っている場合 (私たちのほとんどがそうです)、Michael Feather のWorking Effectively with Legacy Code を強くお勧めします。
そして最後に、いかにリファクタリングされてクリーンなコードができるかを示す本: Uncle Bob's Clean Code .
コードを書くだけでなく、コードを読んでみる必要があります。たとえば、オープン ソース プロジェクトからコードをダウンロードし、コードをいじってみて、コードが何をしているのか、そしてその理由を理解してください。または、以前のプロジェクトから独自のコードを確認してみてください。今と違うことは何ですか?なぜ自分のやり方でそれを構築したのか、まだ理解できますか?
また、アジャイル コミュニティから出てきたプラクティスのいくつかを調べることもできます。特にテスト駆動開発は、コードの品質を向上させる優れた方法として思い浮かびます。
本書Head First Design Patternに記載されているパターンはすべて、デザイナー/プログラマーが知っておくべき最低限のものだと思います。デザインパターンの学習を開始するには、この本をお勧めします。別の本、Design Pattern Work Bookも練習に良いです。