web-dev-qa-db-ja.com

POPまたはOOPのプログラミングを学ぶのに最適なプログラミングスタイルはどれですか。

誰かがプログラムの学習を始めなければならない場合、どこから始めればよいですか?彼は手続き指向のプログラムを書き始めるべきか、それともOOPにジャンプすべきか?

6
Saurabh

あなたができる最善のことは、すべてのパラダイムを理解することです。次の順序をお勧めします。

  1. 単純な手続き型プログラミング:基本的な逐次プログラミング手法を使用するだけです。
  2. 構造化プログラミング:トップダウン設計、抽象データ型、モジュール。
  3. 関数型プログラミング:副作用のない作業、ファーストクラスのオブジェクトとしての機能
  4. オブジェクト指向プログラミング:抽象化、ポリモーフィズム
  5. 非常に低レベルのプログラミング、つまりアセンブリ言語:ハードウェアの操作、レジスターの数、キャッシュ、メモリ、SIMD命令、最適化、そして一般に、コンパイラーとインタープリターがどれほど簡単に作業を行えるかについての理解。
  6. マルチパラダイムプログラミング:必要に応じて、ジョブに最適なツールを使用して上記のすべてを組み合わせる

そして、ロジックプログラミング(Prolog)や並行プログラミング(Communicating Synchronous Processes、OCCAM)など、より難解なスタイルを試すことができます。

1つの言語でいくつかのステップを実行できます(Pythonはほとんどのベースをカバーします)が、比較的厳密な関数型言語で3つ(LISPをお勧めします)、4つを比較的厳密なOO言語(Java、C#)どの言語でも極端に深く掘り下げる必要はありません。パラダイムの感覚を得るために、それぞれに コードカタまたは2つ を実行してください。

それらのすべて(またはいくつかのみ)をベルトの下に置くことで、特定のパラダイムに再び深く踏み込んだことがなくても、より用途の広いプログラマーになります。

13

あなたが最初に始めることはそれほど重要ではないと思います。重要なのは、両方を知っていて、両方で失敗することです。

失敗するから。それから学ぶ。

すべてのxOPは、ソフトウェアのコーディングまたは保守時に開発者が遭遇する問題を解決するためのものです。ソフトウェアが大きいほど、それはより重要になります。 OOPまたはPOPを学ぶことはできますが、最終的には、これらの方法論に従っていない問題を経験しない限り、それが何に適しているかを理解できません。

POP、OOPなどはコーディング手法だけではありません。これはコードについて考える方法です。新しい考え方は、開発者が以前に行っていた方法で考えていた問題を解決するために開発されたものです。 。

それを習得するには、単純なテクニックを学ぶよりも、時間がかかります。

とにかく、POPから始めることをお勧めします。結局、それなしでは何もできないからです。 OOPを実行すると、クラスとメソッドが作成されますが、メソッドを使用すると、古い手続き型プログラミングが見つかります。

POPとOOPは、命令レベルで考える必要があるとは思われません。この時点では、OOP、機能、またはその他のことを行っていても、手続きを行っています。しかし、POPのみを行うと、ソフトウェアが大きくなると問題が発生するOOP、関数、その他のソフトウェア全体の考え方は、コードの複雑化に対処するのに役立ちます。

Thosは純粋な手続き型で実現できますが、多少困難であり、業界で広く使用されている方法ではありません。

3
deadalnix

Oopプログラミングを始める前に、プログラミングが以前行われていたのと同じように、プログラミングの基本を理解している必要があると思います。プログラマーがなぜoopを使用しているのかを知ることが重要です。これを理解する最も速い方法は、メモリ操作と数学の基本から始めてから始めることです。

3
hcb

Squeak または Ruby with Shoes のようなシンプルで邪魔にならない環境をお勧めします。

手続き的な方法でプログラミングを開始する理由はありません。コンピュータの近くでコーディングすることも、プログラミングの歴史を再現することも、プログラミングへの適切なエントリポイントを見つけるのに役立ちません。
歴史的に正しく、エンジンの基本原理を実際に理解するのに役立ちますが、最初に運転方法を学ぶときは、Steamエンジンではそれを行いません。

最初にそれを行う方法を学び、いくつかの直感を収集してから、より深い理解のために前進してください。

1
back2dos

私はOOPを最初にお勧めします、これが理由です:

第一言語

あなたはOOPから始めたいです。その理由は、これが主に実際のWordで使用されているものであり、そのような概念を第1言語としてではなく、第2言語として学ぶ方が常に簡単だからです。 OOPの概念を理解していないという人々の話をよく耳にします。これらは通常、OOPに移行するPOPプログラマーです。私の最初の言語はJavaでした。これはOOPプログラミング言語であり、他に何も知らなかったので、概念の理解に問題がありませんでした。

OOPはPOPでできるすべてのことを実行できます

もう1つは、必要に応じてOOP言語をPOPとしていつでも使用できることです。たとえば、Javaでは、必要に応じて複数のクラスを使用する必要はありません。 POPがどのようなものかを理解するのはかなり簡単になります(OOPはPOP言語のすべての機能を備えていますが、より動的で再利用可能ですが、望まない場合は必ずしも必要ではありませんこれらの機能を利用するには、C++とCのようなものでも同じことが当てはまります。

0
Ephraim

割礼が割礼を受けないよりも良いと考えるかどうかを男性に尋ねるような質問です[]割礼かどうかと、彼らはそれがより良いと思うかどうか。もちろん、割礼を受けたら、戻るのは難しいです。 ;-)

手続き型プログラミングを最初に学んだ人として、私(および私の同僚のかなりの数)は最初はOOPに苦労していました。プログラミングの最初の経験がOOPだった人々と話をしたので、彼らはそれがはるかに自然な働き方だと感じたようです。これは、彼らが既存の手続き型アプローチに適合させようとしておらず、もしそうなら、それを課そうとしているためかもしれません。あるいは、彼らが私や私の友人よりも賢かっただけかもしれません(非常に可能性が高いです)。

0
TrojanName