2012-03-14 2 views
5

私はソフトウェアをより効果的に書くためのリソース/ブック提案を探しています。私はちょうど2つのPythonコース、C++、およびデータ構造を完成させました。プログラムの基礎を知っていますが、改善の余地があります。私は約100時間の経験があると言います。私はここからどこへ行くのかを探しています...目標は私のコーディングスキルを構築することです。python/C++初心者のためのソフトウェアを効果的に作成するためのリソース/ブック提案

私は読書のためだけの本ではなく、私が学ぶことのできる具体的な例の本を望んでいます。私の最大の問題は、自分の設計方法論を作り、自分自身ですべてのコードを書いたことだと思うし、他の人がどのようにそれをするのか見るために私の視野を広げる必要がある。

私は初心者のプログラマー(PythonとC++)です。コードをデバッグしたりリファクタリングしたり、自分の設計方法を教えるのに時間がかかりすぎています。私の最長のプロジェクトは500 LOCでした。私はホイールを自分で改革するのではなく、具体的な例をもって良い本が必要です。私が必要とする最優先事項はソフトウェアの設計です。私は4冊の本のギャングについて様々な話を聞いた。それは私がこの時点で調べなければならないものですか?

私は確かに多くのことを学んでいますが、よく書かれた本から勉強すれば、私の進歩はずっと速くなると思います。これまでに私が学んだことは、他のクラスのために "自分のプロジェクトを完成させるために"行われてきたことです。私はコーディングにもっと熟達したいと思います。私は最終的な仕事がコーディングの重要な側面を含むと想像します。

このオープンエンドの質問に答えるか、議論する時間をいただき、ありがとうございます。

編集:pythonに相当するリストはありますか? - The Definitive C++ Book Guide and List

+2

C++の場合、GoFから離れてください。その中のC++コードはメモリリークでいっぱいで、リモートで慣用的なC++でさえありません。また、[最終的なC++ブックリスト](http://stackoverflow.com/q/388242/485561)を参照してください。 – Mankarse

+1

この質問はここで話題になっていません(あなたが知っているように、それは自由であり、議論につながるでしょう)。 [FAQ](http://stackoverflow.com/faq)でここでは不適切だと言われています。 "建設的ではない"とクローズする投票。このサイトは、チャットルームやディスカッショングループになるようには設計されていないので、このサイトを役立つリソースにしておくことをお勧めします。ありがとう) –

+0

優秀私はそれをチェックします。現在、私は必ずしもC++をうまく使いたいとは思っていませんが、一般的にプログラミングしています。私は、実行速度がミッションクリティカルな状況では、プロのコーダー向けのC++を使用していると聞いています。私が何をしたいのか、開発時間はミッションクリティカルです。それが最初のところで私をPythonに導いたのです。私はPythonの同等のリストを探しましたが、見つからなかった – SwimBikeRun

答えて

2

最初はGoFブックから離れてください。本当に私は地面に降りるために役立った本は消化する方がはるかに簡単だった...

http://www.amazon.com/Design-Patterns-Explained-Perspective-Object-Oriented/dp/0321247140/ref=pd_sim_b_20

これは、GoF本穏やかなプライマーです。これにより、適切な考え方であなたを得ることができ、どんなOO言語にも役立つ情報が得られます。運が良かった。

0

どのようにプログラムをデザインするのが本当に便利で、インターネット(http://www.htdp.org)で無料で利用できます。これは、C++やPythonなどの言語とはまったく異なるスキーム/ラケットを使用していますが、デザイン原則はまだ適用されており、初心者/中級のソフトウェア設計コースで大学で一般的に使用されている本です。

1

デザインは重要です。非常に重要。しかし、なぜ?後でスケーラブルな問題にぶつからないように、組織を離れるときにコードを他の人などが容易に把握して維持できるようにします。

しかし、実際にはより重要なことは、スケーラブルなデータ構造を構築する良いアルゴリズム&を書くことです。したがって、たとえ平均的なアルゴリズムの下では非常に偉大な&コードを持っていても、顧客にデザインを提供するのではなく、グレートアルゴリズムを使用することは目的を果たしません。あなたとあなたの会社のためのデザインは、将来のため&です。また、良い設計バックエンドアルゴリズムがあれば、いつでも変更することができます。そうではありません。開発者は先験者です(Perlの作成者によって素晴らしいプログラマの3つの徳を読んでください:))。 C++を作成したAlex Stepanov氏でさえ、STLで長い間出荷されたAlgorithmの二次関数を書いています。彼は怠け者ではないと、より複雑なものをやっていたと同意しました。

デザインは重要ではありません(私の答えの最初の行を読んでください)が、スケーラブルなデータ構造がデザインに役立ちます。あなたがデザインに入る前に、これらの2つはマスターされ、うまく練習されていなければなりません(コーディング中にアンチパターンが当てられ、自動的に良いデザインパターンに変換されます)。コースを通して、あなたは自分自身でデザインパターンを発明します(しかし、GOFやヘッドファーストデザインパターのような本はあなたに良いスタートを与えるかもしれません)。

「Programming Pearls」というタイトルのJon Bentleyの本を最初に読んでお勧めします。あなたが望むなら、Pythonでそのことを書いてみてください。それらの問題を解決し、あなたは多くを得るでしょう。その後、デザインのものに行きましょう。

関連する問題