35

私は常に、ウィキペディアやさまざまな本からできることを収集する、ほぼ独立した学習者でした。しかし、トピックや概念をうっかり省略して、独学に偏りが生じたのではないかと心配しています。私の目標は、一流の大学でコンピューター サイエンスの学士号を取得するのと同等の学位を取得することです (どの大学でもかまいません)。

そのために、私はいくつかの学術教科書を購入して読み始めました。

せいぜい平凡な州立大学で取ったクラスから残ったいくつかの教科書と同様に:

私の質問は次のとおりです。

  • このコレクションでカバーされていないトピックは何ですか?
  • ここにリストされている本よりも厳密または詳細な (またはさらに読みやすい) 本はありますか?
  • 私の時間を無駄にしている本はありますか?
  • どの順番で本を読むべきですか?
  • MIT やスタンフォード (または UCB や CMU など) の学部生は、私が見逃しているかもしれないことを何を学びますか?

ソフトウェア工学の本は歓迎しますが、学術研究の文脈でのみお願いします。Code Complete と Pragmatic Programmer は知っていますが、より理論的なアプローチを探しています。ありがとう!

4

22 に答える 22

13

私が見る最大の2つの省略:

オペレーティング システムについては、Silberschatz ではなく Tanenbaum を好みますが、どちらも優れています。

注文については、あなたの興味次第です。多くの前提条件はありません。コンパイラのオートマトンは最も明白なものです。最初にオートマトンの本を読み、次にドラゴンの本を読みます。

私はあなたが持っているすべての本を知っているわけではありませんが、私が知っている本は十分に優れているので、他の本もまともなものである可能性があります.

論理個別の数学の本もいくつかありません。

データベース理論の本も忘れずに!

于 2008-09-27T15:07:24.457 に答える
12

私が見つけた最善の方法は、お気に入りの大学を選び、そのウェブサイトにアクセスして、学位取得のためのコースをチェックすることです。大規模なものの多くは、コースごとに必要な読み物を公開しています。MIT の Open Course Ware が良い例です。

ちなみに、これは CS 以外の学位プログラムでも機能します。

于 2008-09-27T15:09:10.240 に答える
9

Don Knuthによるコンピュータプログラミングの芸術

于 2008-09-27T15:05:53.210 に答える
6

MIT は、数年前に「OpenCourseWare」プログラムを導入しました。彼らは本/宿題/講義をオンラインで公開しているので、MITのカリキュラムに従うことができます:

http://web.mit.edu/catalogue/degre.engin.ch6.shtml

于 2009-06-08T03:34:07.687 に答える
4

一流大学の多くのコースでは、十分に優れた書籍が入手できないため、教科書を使用しません。(私はプリンストン大学で教育を受け、ハーバード大学で 8 年間教鞭をとりました。) 誰かが本を推薦するときは、その本が本当に優れているのか、それともその分野で入手できる最高のものなのかを尋ねてください。

たとえば、コンパイラでは、私は「ドラゴン ブック」の大ファンではありません。私はこのアプローチが好きではありませんでした。現在の版は非常に時代遅れです。Michael Scott のProgramming Language Pragmaticsのような本を読んだほうがいいと思います。(私はそれから教えたことがないので、学生がそれについてどう思うかは言えません。) 私は独学のためのコンパイラ構築に関する本当に良い本を知りませんそれは最新であり、ビジネスで最高のコンパイラ エンジニアの 2 人によって書かれているからです。

于 2008-12-20T03:53:22.020 に答える
3

私はおそらく最高の本を提案することはできませんが、あなたが見逃している重要な主題がいくつかあります:

  • 統計学
  • 線形代数
  • グラフ理論と離散数学
  • コンピューターグラフィックス
  • 科学計算
  • コンピューターネットワーク
  • ソフトウェア工学
  • データ構造

より「オプション」と見なされる可能性があるいくつかのトピックは次のとおりです。

  • 暗号化
  • 画像・パターン処理・認識
  • バイオインフォマティクス
  • インターネットコンピューティング
  • 古典物理学
于 2009-06-08T04:29:07.603 に答える
3

申し訳ありませんが、大学の 4 年間の代わりに本を読んだり、本を何冊も読んだりすることはできません。できるとしたら、なぜ大学に行く人がいるのですか?

于 2009-01-17T18:11:25.273 に答える
3

まず、私はそれについて心配することはありません。しかし、CS の抽象的な概念を学ぶための本が必要な場合は、The Turing OmnibusまたはTheoretical Introduction to Programming をお勧めします。

2 人のプログラマーを雇うかどうかを決めていて、どちらもあまり経験がなく、1 人がコンピューター サイエンスの学位を持っていて、もう 1 人が持っていない場合、私はコンピューター サイエンスの学位を持っている方を採用します。しかし、12 年の経験を持つ 2 人のプログラマーを比較する場合、学歴はほとんど問題になりません。

于 2009-01-17T18:13:15.690 に答える
3

コンピューティング システムの要素

この本は、ハードウェア設計の基礎からオブジェクト指向言語でのプログラムの作成までを説明しています。シミュレーターを使用して、完全なコンピューターを構築します。次に、アセンブラ、オペレーティング システム、コンパイラ (VM 上で実行するようにコンパイルされたオブジェクト指向言語用) を作成し、その言語を使用してゲームを作成します。

大変な作業ですが、作成者は作業をできる限り簡単にするように慎重に取り組んでいます。この問題を解決するにはかなりの努力が必要ですが、コンピューター プログラミングの全体像を把握できます。

いくつかのサンプル チャプターを表示したり、ここでシミュレーターで遊んだりできます。

強くお勧めします!(CS卒でも可)

于 2009-06-08T04:58:34.610 に答える
2
  • Discrete Math I&II(私の私立学校)
  • 物理学I(ミズーリ州のほとんどの公立学校)
  • 統計I
  • 暗号化(オプションですが、気に入りました)
  • C ++のOpenGL(オプションですがきちんとしています)
  • システム分析と設計(ビジネスの観点からのソフトウェア工学。クラスはそうだった。)

  • 倫理。

  • ネットワーク(ネットワークアルゴリズム、ネットワークデータを処理するビットパターンを教えます)。

    それらを理解するには助けが必要なことがいくつかあります。必ずしも教授ではありませんが(彼らは生計を立てるためにそうします)、クラスを受講したり、フィールドを勉強したりした友人かもしれません。

これらの主題に関する本を読んでも、あなたがそれらを知っているという意味ではありません。数学で数学を行うこと、コードでコーディングすることなどは、理解するのに役立ち、最終的に主題を知っていることを示します。

于 2008-09-27T15:46:34.657 に答える
2

他のほとんどの本を参考にして、 ProgrammingPearlsを完全に吸収できると思います。そうすることで、私が今まで会ったプログラマーの90%よりも上手になります。

于 2008-09-27T16:05:51.040 に答える
1

具体的な数学

于 2008-09-27T16:05:52.023 に答える
1

また、Oracle、MySQL、SQL Server などの詳細を深く掘り下げずに、一般的なデータベースに関する本を持っている必要があります。

お勧めします: Database Systems: The Complete Book

于 2008-09-27T19:35:20.787 に答える
1

アメリカでの様子はわかりませんが、私の国では形式言語やオートマトンの前に、離散数学とグラフ理論の紹介を勉強しています。

また、コンピュータ ネットワークに関する本は見当たりません。Andrew Tanenbaum のComputer Networksを試してみませんか?

于 2008-09-27T15:12:37.813 に答える
1

何よりも先に、Computer Science: a Modern Introductionをお読みください。これにより、追求すべき主題の優れた基礎と概要が得られます。

アルゴリズムの紹介はとても良いです。関数型プログラミングの入門として、働くプログラマー向けの ML を使用することをお勧めします。

コンピューター科学者とプログラマーを区別する分野: 離散数学の基礎、VLSI とシステム アーキテクチャの基本的な理解、暗号とセキュリティの基本の理解、計算可能性理論の理解、情報理論の理解。

于 2008-09-27T15:12:47.983 に答える
1

これはかなり良いリストです。私が間違いなく追加する 2 つのトピックは、離散数学とネットワークです。あなたが興味を持つかもしれないその他のトピックは、コンパイラ、コンピュータ グラフィックス、分散オペレーティング システムです。コンピューター ビジョンや機械学習など、AI の優れたサブフィールドもあります。これらすべてを処理するには、線形代数と確率が必要です。

言うまでもなく、本を読んだだけではコンピュータ サイエンスはできません。各トピックを本当に理解するには、そのトピックでプロジェクトを行う必要があります。また、教授がシラバス、講義ノート、課題を投稿している MIT の Open Courseware も参照することをお勧めします。

于 2008-09-27T15:15:04.547 に答える
1

Concepts, Techniques and Models of Computer Programmingは、さまざまな高水準言語のプログラミング スタイルと手法について、私が見た中で最も幅広い概要を持っているようです。

于 2009-06-17T05:11:29.877 に答える
0

ファイル構造:C++を使用したオブジェクト指向アプローチ

あなたがリストしたどの本にも見当たらない、ブロックデバイスとファイル構造に関する多くの良い情報。人々が彼のコード例を気に入らなかったので、それはアマゾンでいくつかの批評的なレビューを得ました、しかし本のポイントは概念を教えることであり、カットアンドペーストのコード例を与えることではありません。

また、コンパイラに関する本を必ず入手してください

于 2008-11-25T21:25:00.363 に答える
0

ソフトウェアプロジェクトがどのように機能するか、さまざまな方法論、および設計パターンをカバーするプロフェッショナルソフトウェア開発に関する本は素晴らしいです。ウェブデザインの知識は、雇用に関しても非常に役立ちます。

なぜあなたが自分でこれをやろうとしているのか分かりません。「最高の平凡な」大学でさえ、あなたが自分で教えるよりもはるかに優れたスキルをあなたに教えることができるでしょう。それはすべて、コンピューティング業界で実際に働いた経験のある人々に会うことです。

それは大学についてではなく、あなたがどれだけうまくやるかを決定するのはあなたが費やした努力についてです。

あなたがどこから来たのかわからないので、私の答えはおそらくあなたには役に立たないでしょう。私が住んでいるスコットランドでは、無料で大学に行かなければなりませんでしたが、そうではないかもしれません。

于 2008-09-27T15:50:30.607 に答える
0

「GangofFour」デザインパターンの本。大学で受講したデザインパターンコースは、おそらくこれまでに受講した中で最も有益なクラスでした。

于 2009-06-17T05:24:59.657 に答える
0

計算理論の紹介をリストに追加します

于 2009-06-08T04:12:17.980 に答える
0

仕事の後の自由時間にコンピュータ サイエンスを勉強しています。これらは私が今私の本棚に持っている本の一部です

  1. UML とパターンの適用 - ラーマン
  2. アルゴリズムの紹介 - コーメン
  3. 離散数学とその応用 – Rosen
  4. ソフトウェア工学
  5. UNIX 環境での高度なプログラミング

完成したらすぐにこのリストをさらに更新します... :-)

于 2010-10-14T13:34:00.943 に答える