4

現時点で最も重要なことは何ですか?後でプログラミングの経験を積むことができることを知っています。卒業後に優れたプログラマーまたはアナリストになるために、次のうちどれを勉強する必要がありますか?

  • データ構造
  • アルゴリズム
  • ソフトウェア工学
  • 低レベルの側面
  • デザインパターンとオブジェクト指向分析

[編集]

答えてくれてありがとう。他の学生の参考になるように、他の重要なトピックを含めたいと思います。

  • 並行プログラミング
  • オペレーティングシステム

[/編集]

注:リストの最初の項目は英語を学ぶべきだと思います

4

11 に答える 11

17

それらのすべて。リストのすべてが重要です。

于 2009-03-13T05:18:56.360 に答える
7

私は個人的に次のことを勉強します:

  • 1 つの C ライク言語 (C/C/C++/C#/Java)
  • 1 つのスクリプト言語
  • 1 つの関数型プログラミング言語
    • 特に、マルチコアの世界に移行しているため、他の言語が現在実行できる以上の並列化が可能になるため、これは便利です。たとえば、通信インフラ全体が Erlang で実行されています。
  • データ構造
    • これらはどこでも使用できます。彼らはプログラミング言語にとらわれず、あなたのキャリアを通して彼らを必要とします
  • アルゴリズム
    • これらはおそらく上記のアイテムと一緒に行くでしょう。特定のデータ構造には、それらにアクセスするための特定のアルゴリズムがあります。
  • デザインパターン
    • はい、もちろん、さまざまな設計パターンを学びますが、同時に、それらがすべてソフトウェア エンジニアリングで終わりではないことも知っています。

あなたのリストにある他のすべてのものも同様に非常に重要です. これらは私が学校教育から抜け出せたらよかったのにと思う項目であり、悲しいことにクラスとして提供されなかったのですが、他のすべてのコースワークと一緒に自分で学ばなければなりませんでした.

于 2009-03-13T05:23:45.817 に答える
3

リストに特定の言語について言及していないことを考えると、あなたはすでに正しい方向に進んでいると思います。これが、CSの学生が犯した一番の間違いだと思います。言語やパラダイムに焦点を当てています。

リスト全体が非常に重要です。私が追加する唯一のことは、マルチスレッドのかなり詳細な研究です。将来的にはますます重要になるでしょう:( Ars-Technicaの記事

于 2009-03-13T05:50:13.553 に答える
2

それらはすべて必須です!!

何を考えてるの?集中力(たとえば、ゲームデザインとセキュリティおよび暗号化)のどちらかを選択することを期待していました。

「アルゴリズム、おっと、データ構造、ソフトウェア工学など」から選択することはできません。これらは基本です!あなたはそれらすべてを学ぶ必要があります。

于 2009-03-13T05:31:08.730 に答える
2

私はデータ構造体とアルゴリズムから始めますが、そこにはコンテストはありません。OOデザインは便利です。少し低レベルです、はい。S / Wエンジニアリングはスキップできます(塩の粒で問題ありません)。

さらに、ここにいくつかのアイデアがあります:

  • リレーショナルデータベースの基本(「オラクルの使い方」だけでなく、実際の関係代数)
  • オペレーティングシステム
  • コンパイラー+インタープリター
  • IRの何か(/遺伝的アルゴリズム/ニューラルネット)

はい、私は「ハードコア」CSのものに偏っています。忙しい仕事、非常に重いプロセス、その他のPMのがらくたは、すぐに業界で学ぶことができ、教育リソースを無駄にする必要はありません。:-)

于 2009-03-13T05:31:23.380 に答える
2

Joel をここに挿入するのが適切なようです ;-)

http://www.joelonsoftware.com/articles/CollegeAdvice.html

于 2009-03-13T05:25:35.233 に答える
1

どれどれ..

重要な選択を行えるように、複雑さとデータ構造とアルゴリズムを理解する必要があります。残念ながら、これらのトピックを本当に理解し、複雑な頭の体操を解決する必要があります。なぜなら、それらは後の実際の仕事よりも就職の面接ではるかに大きな役割を果たすからです. したがって、これらは実際的な理由から注目すべき最も重要なことです。

ソフトウェア エンジニアリング、デザイン パターン、および分析は非常に重要です (偏見がありますが)。残念ながら、設計パターンを除いて、主要なプロジェクトで積極的に実践しない限り、これらのトピックを実際に学ぶことはできません。オブジェクト指向プログラミングの概念と仮想関数/動的バインディングの概念を理解することに重点を置いてください。これらは非常に重要であり、多くの人が正しく理解していないためです。良いインターンシップを得るために最善を尽くしてください。

于 2009-03-13T05:19:52.457 に答える
1

あなたがリストしたものはすべて、まともなコンピューターサイエンス教育の基本的な要素ですが、実際には次のことを追加する必要があります:

  • オペレーティングシステム
  • ネットワーキング
  • 数学 (離散、微積分、代数、証明、統計の入門コース)
  • データベース
  • 基礎 (有限オートマトン、正規表現、チューリング マシンなど)

これら 2 つのリストを一緒に使用すると、コンピューター サイエンスの核となる部分を十分に理解できます。その後、さらに専門的なトピック (最も関心のあるトピック) を選択する必要があります。

  • 人工知能
  • 暗号/セキュリティ
  • 画像・信号処理・認識
  • コンパイラ
  • グラフィック
  • ゲームデザイン

トピックに深く入り始めると、数学を含むすべてのコアコースがすべて機能し始めることがわかります! たとえば、私は現在画像認識を研究しており、統計、AI、微積分、証明、代数、アルゴリズム、データ構造、OOP などを使用して理解する必要がありました。

于 2009-03-13T07:02:56.123 に答える
0

リストにあるものはすべて重要ですが、正しい姿勢も必要です。クラスの割り当てを行うだけでなく、勉強するそれぞれのことがどのように機能し、なぜこのように行われたのかについて、十分な詳細を掘り下げる必要があります. これが、将来のスペシャリストとしての強みになります。

于 2009-03-13T05:27:45.790 に答える
-1
  1. マルチスレッドおよび分散システム。
  2. 優れたGUIを使用してユーザーフレンドリーなアプリケーションを構築する方法。
于 2009-03-13T05:43:20.170 に答える
-1

それらはすべて非常に優れていますが、アルゴリズムは開始するのに適した場所です. おそらく、理論については、最初に個別の数学コースを検討する必要があります。

于 2009-03-13T05:20:06.120 に答える