PythonまたはSICPでプログラミングする方法を学び始める必要がありますか? SICPははるかに難しいと言われていますが、長期的にははるかに優れたプログラマーになるでしょう。


ベストアンサー

間違いなく使用するSICP、あなたが挑戦しているなら。 SICPは第一原理から始まるため、プログラミングについて何も知らない場合は、SICPを使用して統計を作成できますが、必要な数学は多くはありませんが、いくつかあります。著者は、概念やアイデアを説明するための美しく明確な言語を持っています。

私はすでに大学を卒業したときにSICPを手に入れましたが、それでも素晴らしい啓蒙であることがわかりました。まだ完成していませんが、これは私が読んだすべての本の中で最も教えてくれた本だとさえ言えます。たとえば、RacketのSICP言語を使用してSICP演習をセットアップすることをお勧めします。

回答

はい、絶対に、断固としてはい。

SICPは、コンピュータープログラミングに関する本でも、ソフトウェアエンジニアリング、OOP、またはその他のギズモやドゥーダッドに関する本でもありません。 SICPは、コンピュータサイエンスに関するものです。コンピュータを、情報を操作するために使用される抽象マシンとして理解します。

第1章では、著者の1人が作成した言語であるSchemeを紹介します。制御の流れは、字句的に含まれる環境AKAサブルーチンでの計算を通じて、大規模なプログラムで変更および管理されます。この本は、サブルーチンを実装する主な方法の両方をガイドし、両方の欠点と有用性を説明しています。

第2章では、データの構造化と、事前データからの生データの新しい意味の構築について学習します。既存のデータ型。数式処理システムやハフマン符号化ツリーなど、さまざまな場所で記号操作の力が示されています。

第3章は、すべての章の中で最も基本的なものです。第3章では、割り当てとの力について学習します。変数の変更。この本で説明されている以前の計算モデルは、状態を維持および影響する言語の機能に対応するために根本的に拡張されています。

第4章では、最も優れたものの1つを紹介します。コンピュータサイエンスの歴史におけるアイデア:LISPマクロとSchemeプログラムの同質性。 Cの置換マクロとは異なり、LISPマクロを使用すると、実行時にプログラムの抽象構文ツリーの基本構造を操作でき、LISPに新しいプログラミングパラダイムを実装できます。

最後の章ではまったく異なるアプローチであり、コンピュータをレジスタマシンとして扱います。 LISPコンパイラが、これまでに見たどのSchemeプログラムとも変わらないことを示し、次に、普遍性の概念をほのめかしました。最後に、「本物のLISPコンパイラの作成について説明しました。

この本は素晴らしかったです。コンピュータサイエンスとは、画面に数字を印刷する方法をコンピュータに教えることを意味し、コンピュータサイエンスは、貿易を理解することを意味します。さまざまな抽象化のオフとそれらを適切に使用する方法。

tl; dr絶対にこの本を読んでください。「気に入らない場合は、おそらく勝ちます」 CSをお楽しみください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です