コンピューターサイエンスの科学は死んでいますか?[閉まっている]


18

質問: CSの科学と芸術は死んでいますか?つまり、問題を考え、計画し、効率的に解決するための実際の要件は、最近ではCSから外れているようです。この分野は、より多くの人々が真にプログラムする方法を学ぶ必要なく「プログラム」できるように、侵入障壁を下げているようです。

背景: 私は最近コンピューターサイエンスの学士号を取得しています。私は、IT部門のかなりの規模の会社で出発点で働いています。私は主に仕事で.NETおよびその他のMicrosoftテクノロジーを使用しますが、これまではインターンシップなどを通じてJavaの仕事をしていました。私は個人的には、楽しいプロジェクトのためのC ++プログラマーです。

詳細:私が行ってきた仕事を通して、本当の科学の強烈な規律はCSにはもう存在しないように思えます。過去には、システムを堅牢かつ迅速にするために、プログラマは問題を効率的に解決する必要がありました。しかし、今では、.NET、Java、スクリプト言語などの普及している技術により、開発の容易さのために効率と堅牢性が犠牲になっているようです。

私が仕事をしている同僚のほとんどは、コンピューターサイエンスの学位さえ持っていません。ほとんどが電気工学の学位を取得しており、一部はソフトウェアエンジニアリングを取得しており、4年のプログラムを持たないハイテクスクールから来た人もいます。それでも、CSの技術的背景がなく、理論やアルゴリズムを勉強しなくても、エレガントなソリューションを作成することを考慮せずに、うまくいきます(最も簡単で安価なソリューションを求めています)。

会社はマイクロソフトの技術を使用するように私たちに促します。Microsoftの技術は問題を真剣に考え、それをあなたのプロジェクトを半分の時間で自動ビルドできるライブラリとツールに置き換えます。私は言語を嫌いにしようとはしていません、彼らは目的を果たし、それをうまくやることを理解していますが、従業員がハッシュテーブルの仕組みを知らず、間違ったソート方法を使用するか、SQLコマンドを実行するときひどく非効率的ですが(許容できる時間内に仕事を終わらせてください)、実際に人々に正しい方法を教えるのではなく、新しい「プログラマー」を悩ませる技術の開発にもっと努力が注がれているように感じます。

私は、効率的で、私の意見では、美しいプログラムを作ることに興味があります。より良い方法があれば、スライドさせるよりも前に戻ってリファクタリングしたいです。しかし、企業の世界では、彼らは私にエレガントではなく迅速にタスクを完了するように促しています。そして、それは本当に私を悩ませます。

これは私がこれからの人生を楽しみにしていることでしょうか?給与だけでなく、CSの科学と芸術を愛する人々のために、まだポジションはありますか?

そして、同じメモで、Java Schoolsの危険の前にそれを見なかったなら、ここは良い読書です


2
2つのこと-1.開発を難しくする必要はありません。2.拡張性が重要な状況では、適切に作成されたプログラムが不可欠です。あなたが言っていることに原則的に同意します。私は自分は初心者のプログラマーだと考えていますが、私は低レベルで(ある程度)すべてを学習し、事前に作成されたフレームワークを使用しないなどに興味があります...(少なくとも最初に...またはいつ私はそれが私自身のことでしょうフレームワークの任意の種類を使用します。
匿名

48
あなたのCSとプログラミングを混同していると思います。これらは関連していますが、2つの異なるものです。
ダークナイト

1
@クリス私は完全に同意します。私はフレームワークとライブラリを広範囲に使用していますが、最初に問題を理解し、ライブラリがそれを解決する方法を理解することなくそれらを実行しようとします。私が知っているしたら、その後、私はそれがでこのインスタンスは、だけでなく、すべての問題で汎用的なライブラリを投げ、それを望んでスティック最高のライブラリどの解き選択することができます
Veaviticus

8
この質問で解決しようとしている問題は何ですか?
ジェレミー

15
@Veaviticus、あなたは配管工が流体力学を知っていることを本当に期待しています(そのため、彼らは仕事をより良くすることができますか?)。基幹業務アプリケーション(デスクトップ/ Web)の大部分は、非常に複雑な問題を解決する必要はありません(ほとんどありません)。はい、CSのバックグラウンドがあると助かります!最も確かに。LOB に必要ですか->そうではありません。
ダークナイト

回答:


25

はいといいえ

良い質問ですが、悪い仮定です。

教育の科学の部分は欠けているように見えますが、単にプログラムを効率的にするためだけに科学がそこにあったという仮定は間違っています。

科学は、人々に問題の定義と解決方法を教えるために必要でした。

残念なことに、一部の「CS」カリキュラムの一部(カリキュラム?)は完全に省略されており、玩具の問題は些細なまたは既知の解決策に置き換えられており、単にツールへの習熟を教えることのみを目的としています

がっかり。多くのJavaスクールの卒業生は、問題を分解したり、アルゴリズムを設計したり、テストを指定したり、効果的にデバッグしたりする方法を教えたことはありませんでした。


2
私はJavaをそれほど強調していなかった学校に通いました。私がしたことのほとんどはC ++でした。しかし、彼らはまだあなたが言及したことをする方法を教えてくれませんでした。彼らは基本をカバーし、いくつかの内容をざっと読み、各教授が興味を持っていることについて深く掘り下げました。
Veaviticus

@Veaviticus:それは幸運な学生たちのためでしょう。私の大学では、教授たちは統合失調症レベルの抽象化を行っており、彼らの試験のアイデアは「暗示的な正式な定義」です。
DeadMG

この言語は、問題を分解するという教えとは関係ありません。問題は、それがC、Java、またはRubyであるかどうかに関係なく問題です。
リグ

29

コンピューターサイエンスの科学は死んでいますか?」...「コンピューターサイエンスの学士号を取得したばかりの最近の卒業生です。私はIT部門の適当な規模の会社スタートポジションを働いています。

正直なところ、私自身は2セントです。CS部門ではなくIT部門であるため、まともな規模の会社のIT部門で働くコンピューターサイエンスの「科学」は見つかりません。PhDのために学校に戻るか、コンピューターサイエンス(画像処理、高性能ネットワーク、コンピューター代数システム、航空宇宙など)に重点を置いている会社のエンジニアリング部門で働いてみてください。これは、ずさんなデザインが(一般に)容認されない難しい、興味深い問題を見つける場所です。

「給与だけでなく、CSの科学と芸術を愛する人々のために、まだポジションはありますか?」

はい、絶対ですが、おそらく中規模企業のIT部門ではそうではありません。


16

プログラマーである場合、自分を「コンピューター科学者」と見なさないでください。コンピュータ科学者は次世代のコンピュータを作成する人であり、その一部は、材料、ミニチュア化、および計算理論の正しい組み合わせが導き出されるまではまだSFです。それらはパイプラインの始まりにすぎません。ここでソフトウェアを開発する人々は、現在「ソフトウェアエンジニア」です。彼らは理論とツールを取り、時には実用的な理論と現実世界のツールを重ねて、この複雑な電気ウィザードの力の力を活用し、私たちが望むことをさせます。これは、コンピューター科学者の理論を取り入れ、ハードウェアとソフトウェアを実際のエンドユーザーの電子ソリューションに適用する「コンピューターエンジニアリング」の分野の専門化です。

これは、ビジネスが理論と出会うIMOです。これらのタイプのケースでは、古い格言「より良い敵は十分です」を簡単に振り返って、「十分な敵はより良い」と読むことができます。自分を「科学者」ではなく「エンジニア」と見なし、他のエンジニアリング分野と並行して自分の仕事をすることで、違いが浮き彫りになります。

クライアントが土木/構造エンジニアであるあなたのところに来て、橋を架けるように頼んだとしましょう。橋は20フィートに渡り、それ自体と1トンの積載荷重をサポートする必要があり、定期メンテナンスで10年間持続する必要があります。これらはあなたの制約です。最大値を超えないで最小値を満たします。それを行うことは「十分」であり、給与を受け取ります。ゴールデンゲートブリッジを構築することは、設計仕様と予算の両方を数桁上回ってしまうため、エンジニアリングが不十分です。通常、費用の超過分を食べ、時間超過に対して罰金を支払うことになります。また、時間と材料がたった1000ドルしかかからないにもかかわらず、5人の成人男性の体重に耐えられるロープブリッジを構築することは、エンジニアリングが不十分です。あなたは良いクライアントのレビューと声を得ることができません、

ソフトウェアに戻って、入ってくるファイルをダイジェストして情報をシステムに入れるために構築されたファイル処理システムを必要とするクライアントがあるとします。彼らはそれを1週間で完了したいと考えており、1日5ファイル、約10MBのデータを処理する必要があります。あなたの貴重な理論は、主に窓の外に出ます。あなたの仕事は、1週間でそれらの仕様を満たす製品を構築することです。そうすることで、クライアントのコスト予算も満たすためです(一般に、このサイズのソフトウェア契約の場合、材料はバケツに入っています)。ゲインの10倍であっても、2週間を費やすことは選択肢ではありませんが、2つのコピーを実行するよう指示することで、スループットの半分しか処理できないプログラムを1日で構築することもできません。

これがフリンジケースだと思うなら、あなたは間違っています。これは、ほとんどの社内の日常環境です。その理由はROIです。この初期プログラムはそれほど費用がかからないため、非常に迅速に費用がかかります。エンドユーザーがより多くの処理を行うか、より高速に処理する必要がある場合、コードをリファクタリングおよびスケーリングできます。

それが現在のプログラミング状態の主な理由です。コンピューティングの歴史全体から裏付けられた仮定は、プログラムは決して静的ではないということです。常にアップグレードする必要があり、最終的に交換されます。並行して、プログラムが実行されるコンピューターの絶え間ない改善により、理論的な効率への注意が低下し、スケーラビリティと並列化(Nの2乗時間で実行されるがNコアで実行するために並列化できるアルゴリズム)への注意が高まります線形に見え、多くの場合、より効率的なソリューションを考案するために、より多くのハードウェアのコストが開発者のコ​​ストよりも安価です。

それに加えて、開発者コードのすべての行が間違ったものになる可能性があるという非常に単純な教義があります。開発者の書き込みが少なければ少ないほど、彼が書いたものに問題がある可能性は低くなります。これは、誰かの「バグ率」に対する批判ではありません。単純な事実の表明です。MergeSortを5つの言語で前後に記述する方法を知っているかもしれませんが、1行のコードで1つの識別子だけを指で動かすと、ソート全体が機能せず、コンパイラがそれをキャッチしなかった場合、それをデバッグする時間。List.Sort()と比較してください。それはそこにあり、一般的な場合には効率的です。そして、ここに最高のものがあります、それはすでに動作しています。

そのため、最新のプラットフォームの多くの機能、および最新の設計方法論の教義は、これを念頭に置いて構築されました。

  • OOP-関連するデータとロジックをオブジェクトに組み込み、そのオブジェクトの概念が有効であればどこでも、オブジェクトまたはより特化した派生物を構築します。
  • 事前に構築されたテンプレート-優れたコードの60%以上は構文上の問題であり、プログラムを画面上に表示するための基本です。このコードを標準化および自動生成することにより、開発者の作業負荷を半分に削減し、生産性を向上させることができます。
  • アルゴリズムとデータ構造のライブラリ-上記のように、Stack、Queue、QuickSortなどの作成方法を知っているかもしれませんが、これらすべてが組み込まれたコードライブラリがあるのに、なぜそうする必要がありますか?Webサイトが必要なため、IISまたはApacheを書き換えないのに、いくつかの優れた実装が利用できるのに、なぜQuickSortアルゴリズムまたは赤黒ツリーオブジェクトを実装するのですか?
  • 流interfacesなインターフェイス-同じ行に沿って、レコードをフィルタリングおよびソートするアルゴリズムを使用できます。それは高速ですが、おそらく非常に読みやすいものではありません。レコードオブジェクトの追加フィールドでソートするために必要な外科的変更は言うまでもなく、後輩開発者がそれを理解するのに1日かかるだけです。代わりに、Linqのようなライブラリは、オブジェクトのリストをフィルター処理、並べ替え、投影されたオブジェクトに変換する1つまたは2行の構成可能なメソッド呼び出しで、多くの非常にい、しばしば脆弱なコードを置き換えます。

2
良い答えですが、1つの重要なポイントを見逃しています。「複製できないこと、私にはわかりません。」それらがどのように機能するかを知っているからといって、すべてのプロジェクトでそれらを手書き入力する必要はありません。むしろ、それぞれの長所と短所を確実に把握できるため、最適なものを選択できます。次に、そのアルゴリズム/データ構造が標準ライブラリにあるかどうかを知る必要があります。
マイケルK

あなたの格言が間違っていることを除いて。うまく複製できるとは思えない重要な事柄の背後にある概念を非常に明確に理解できます。私は原則的に同意します。あらゆる種類の成功したエンジニアは、有効なソリューションを選択するのに十分な理論を知る必要があります。だからといって、エンジニアがそれぞれの仕様を知るためにあらゆるタイプの電球を作らなければならないというわけではなく、家に合った電球を選択する必要があります。同様に、赤黒ツリーを使用して、そのパフォーマンスと適切なアプリケーションを理解することができます。最初から実装する方法がわかりません。
キース

エンジニアリングとの類推は良いものではありません。CSの「より良い橋」に必ずしも多くの費用がかかるわけではありません。多くの場合、どのツールが適切な仕事に適しているかを理解するだけの問題です。かなり複雑なテキストブックアルゴリズムを実装することでさえ、多くの場合、人々の快適な領域から抜け出しますが、それは難しくも高価な概念でもありません(ただし、範囲によって異なりますが、これは人手ではなく人年単位のプロジェクトであると仮定します)。通常、それはさらに簡単です-カスタム実装は不要で、適切なツールとグーグルのキーワードを知るだけの質問です。
イーモンネルボンヌ14年

8

ITはCSではなくITを行っているように思えますが、それはCSが死んだことを意味するものではありません。CSは死んでいませんが、ほとんどの仕事はソフトウェア開発にあります。ほとんどのCS学生はプログラミングを学ぶため、通常はコンピューターサイエンティストではなくプログラマーとして採用されます。コンピューターサイエンスの仕事は、プログラミングの仕事と比べるとごくわずかです。コンピューターサイエンスの手法を使用して複雑なアプリを作成することもありますが、私の意見では(主観的なものであるため、意見の回答は好きではありません)、科学者キャンプよりもエンジニアリングキャンプに分類されます。

また、美しくエレガントなコードは見る人の目にありますが、ほとんどの企業/マネージャーにとって、時間通りに十分に設計することは、美しいコードよりもはるかに重要ですが、時間通りに終わらないことです。

最後に、現実世界とララランドがあります。残念ながら、私たちは前者から給料を受け取ります。それは、ソフトウェア開発の「科学/技術」が時間/予算の制約で高いソフトウェア品質を生み出す方法に出くわす場所です。私のキャリアの初めにあなたが持っているのと同じタイプの感情を感じました。私は常に「最高」を作りたかったのですが、すぐに「最高」が最も効率的またはエレガントではなく、最もコスト効率の高い設計であることに気付きました。


3
「美しくエレガントなコード」と「良いが、時間通り」は間違った二分法です。デザインがシンプルで、美しいデザインに匹敵するシンプルなデザインであれば、時間通りに仕上げることが簡単です。ただ、シンプルと単純すぎるという意味ではありません。
pillmuncher

1
@pillmuncher、はい、私は美しいコードは単純ですが(単純ではありません)、同意しますが、残念なことに、その前提は主観的/相対的です。「シンプルなデザインは美しいデザインに等しい」という主張は、意見ではありません(私が100%に同意する非常に人気のある意見ですが、それでも意見です)。意見ではないのは、スケジュール、要件、コストです。これらの制約は、指定された制約に対して十分な設計につながる傾向があります。
アルマンド

「[1] ITはあなたがCSではなくITを行っているように思えますが、それはCSが死んでいることを意味するものではありません。あなたの最初のステートメントは正しいです-OPはCSではなくITにあります。私はあなたの2番目の声明にも問題を抱えていますが、多くのいわゆる「コンピュータ科学者」もソフトウェア開発を行っています。それは、「研究開発」と呼ばれる、との例では、定義解決、および特定のネットワーク・トポロジ上のルーティングアルゴリズムの正しさを証明し、その後、「公式」やプロトタイプ実装を実装するコンピュータ科学者であってもよい
ビル・VB

8

まず第一に、あなたはそれを間違えました。「問題を考え、計画し、効率的に解決する」ことは科学ではなく、エンジニアリングです。科学は、新しい分野の探索にとどまりません。そして実際、学術の世界では、コードの効率については、産業界よりも人々の関心はずっと低くなっています。アカデミアでは、概念実証などが重要です。

いいえ、あなたが説明しているのは、ソフトウェア開発に必要な詳細な知識が少ないことです。要件が同じ場合、これは真実かもしれません。しかし、今日では、ソフトウェアエンジニアは、マルチスレッド、分散コンピューティング、スケーリングなどに対処する方法を知っていることが期待されています。彼らは、プロジェクトを効率的にリードする方法を知っていることが期待されています。これのほとんどは、数十年前のカリキュラムではまったくありませんでした。


私がここで読んでいるものからは、まだそうではありません。多くの学校は工学を教えず、言語を教えます。これは、土木工学の学生にAutocadを教えることと同じです。
マイケルK

@マイケル:まともな大学がそれを見たことがない。
バルテック

1
RITに行きます。それは非常にランク付けされているが、それでもかなり安っぽい。プログラミングを正しく教えている学校はありません。それは、他のコースワークのコンテキストでは、たった4、5年でプログラミングを行うことができないからです。
ジョンパーディ

4

私は正確に右であるあなたが言ったとは思わないが、あなたは持っている何か、とにかくポイントのを。具体的には、時間の経過とともに、コンピューターサイエンスとソフトウェアエンジニアリングが離れて成長したと思います。

ソフトウェアエンジニアリング(他のエンジニアリングと同様)は、科学を応用して製品を構築し、問題を解決するなどです。コンピューターサイエンスは、主にアルゴリズムの研究と(この部分は忘れられがちですが)それらのアルゴリズムの実装方法(少なくとも理論的な意味では) -たとえば、おそらくすべてのPRAMマシンを同等のものとして扱う)。

それらを念頭に置いて、分岐の背後にある理由が明らかになると思います:典型的なウェブサイトのようなものに関係するアルゴリズムの問​​題のほとんどはすでに解決されています-それらのほとんどはずっと前に。おそらくもっと重要なことは、それらのほとんどが十分に解決されており、平均的なWeb開発者にとっては、問題がほぼ完全に消滅したことです。たとえば、分散データベースのアトミックな更新は間違いなく簡単な作業ではありませんが、典型的なWeb開発者はSQLを記述するだけで、作業の進め方を把握するためにどれだけの研究をしたかについての手掛かり(または注意)はありません信頼できる。

かつて、コンピューターサイエンスとソフトウェアエンジニアリングを分離することは本質的に不可能でした。解決された問題はほとんどなかったため、比較的些細なプログラムであっても基礎の研究が必要でした。50年代後半または60年代前半に大量のデータを並べ替えるような単純なことをしたい場合、データの分析を行い、設計しようとする可能性がかなり高いその特定のデータを並べ替えるのに必要なものに可能な限り適合するアルゴリズム-今日のように多くの並べ替えアルゴリズムに知られている場所はなく、既知のアルゴリズムでさえ、今日ほどには知られていませんでした。

しかし、50年にわたる研究開発は成果を上げています。ほとんどの典型的な開発では、既知のアルゴリズムだけでなく、事前に作成された実装を使用できます。ほとんどの典型的な問題は、アルゴリズムの既存の知識(さらには既存の実装)に基づいてかなり合理的に解決できます。

しかし、それはコンピューターサイエンスが死んだことを意味するものではありません。研究すべきアルゴリズムはまだまだあり、人々はそれらを研究しています。ただし、ほとんどの研究はより専門的であり、かなり専門的な分野にのみ適用される可能性が高いことを意味します。おそらく、知識の取得と適用の間には大きな「ギャップ」があります。かつて、ソートプログラムを作成するプロセスでソートのより良い方法を見つけたので、ほとんどすぐに実際のコードに書き込まれました。現在、本質的に無限の数のプロセッサーを使用する方法などに多くのコンピューターサイエンスが専念しています。これはおそらくいつか役に立つでしょうが、原始的な部族でさえ私のコンピューターのデュアルコアを「多く」とは見なしません... :-)


1

ソフトウェア開発とコンピューターサイエンスは同じものではなく、クラスメートのほとんどが学士号を取得していることがわかりました。Comp Sciプログラムはこれに不満を感じていました。

ソフトウェアはコンピューターサイエンスの産物だと思います。絵画は視覚芸術の産物のようです。

特に学歴の早い段階で、CS学位のほとんどの人がソフトウェア開発を行うために仕事に雇われると思います。私は、この役割の多くの人々がそこにとどまり、それ以上進むことはないと思います。

新しい問題やパラダイムが現れたとき、または「一緒に叩く」だけでは十分でないとき、違いが現れ始めると思います。誰が新しいフレームワークまたは言語を作成しますか?誰が座って新しい物理エンジンの詳細を打ち出しますか?アルゴリズムからパフォーマンスの反復ごとに数サイクルを引き出すために、グラフ理論/グラフ変換を使用するのは誰ですか?

ソフトウェア開発/エンジニアリングの役割には多くのコンピューター科学者がいて、おそらく彼らの潜在能力に応えていないことに同意して、始めたところから終わります。


1

コンピュータサイエンスとプログラミングおよびソフトウェア開発全般を混同しているようです。2つは同じではなく、近くさえありません。私たちの学位が何を言おうとも、私たちの大部分はコンピューター科学者ではなくプログラマーです。あなたが高レベルで学界に積極的に関わっていない限り、私はあなたがコンピュータサイエンスで何が起こっているかについて本当に何も考えていないことを望みます。


0

コンピューターサイエンスは健在です。私は毎日新しい問題を解決し、それらの問題に対する効果的でエレガントな解決策を考え出す必要があります。エンジニアとしてのスキルを毎日活用し、自分自身と同僚の知識を活用して、お客様の問題を解決する必要があります。

私は言語を嫌いにしようとはしていません、彼らは目的を果たし、それをうまくやることを理解していますが、従業員がハッシュテーブルの仕組みを知らず、間違ったソート方法を使用するか、SQLコマンドを実行するときひどく非効率的ですが(許容できる時間内に仕事を終わらせてください)、実際に人々に正しい方法を教えるのではなく、新しい「プログラマー」を悩ませる技術の開発にもっと努力が注がれているように感じます。

これは従業員の問題のように聞こえますが、すべてのプログラマーには当てはまりません。

仕事を簡単にするツールが存在するからといって、下線の技術を理解してはいけないというわけではありません。誰かを助けていないし、問題を正しく解決するために仕事をしていないのです。


同意する。私は考える必要のない仕事がない、またはすべての開発者が自分が何をしているのかわからないというつもりはありませんが、CSプログラムから来たばかりなので、私の学校はそうではなかったと言えます今知っていることの半分を教えてください。私は自分でそれらを学びました。そして、私はそれらを知ったので、私のためにそれを行うフレームワークを使用できます。私は自分でそれを学んでいなかった場合でも、私はただやみくもに最も頻繁に間違って、フレームワークを使用しただろう
Veaviticus

0

目の前の問題を理解していないだけです。問題は、最大のパフォーマンスを得ることではありません。アプリが応答し、十分に高速であるために十分なパフォーマンスを得ていることです。プログラミングを学ぶことは、最小限のお金で問題を解決することです。

このように表現するのは嫌いですが、CSの死についてあなたが感じている印象は、「本当の」プログラマーがしなければならないことについてのあなた自身の先入観にすぎません。


正しい。企業はお金を稼ぐ必要があることを知っています。そして、アプリケーションの一部を最高の速度ではなく「十分に高速」にすることは確かに無邪気ではありません。多くの(少なくとも私が知ることができる)開発者がCSを研究したことがないという全体的な傾向について、私はもっと興味があります。彼らは他の場所からフィールドに来て、少しその背後にある本当の理論、フレームワークとのちょうど経験に持っている
Veaviticus

@Veaviticus:フレームワークの使用は画期的な学術理論ではないかもしれませんが、それでも間違いなくCSです。
DeadMG

0

まあ、死んだかどうかは議論の余地があります!

事実、今日の技術の時代には、ほとんどの企業がソフトウェアオートメーションを通じて現実世界のワークフロータイプのタスクを解決するために人材を採用しています。彼らは、ビジネスがより高い出力でより速く実行できるのであれば、あなたが書くことができるプログラムがどれほどエレガントで速いかには興味がありません。

ストレスは少ない時間でより多くの出力です。(作物/食品の商業化を考えてください;より少ないコストでより速く、より多くの成長)。テクノロジーの世界でも同じことが起こります(次の新しいアイデア)。

覚えておいてください、この日と時代において、物事はかつてないほど速く、知識へのアクセスと量のおかげで以前よりも速く動いています。昔は、生産量は小さく、より良く、利益は大きかった。今、ゲームは完全に変更されました。カスタマーサービスの品質などを見てください。一般的には長持ちしません。

Googleなどのハイテク企業にとって優雅さと効率性は重要です。これらの場所でさえ完璧ではありませんが、今後数年のうちにそれらの企業の1つと仕事をすることでそれに近づくことができます。

人生には常にトレードオフがあります。あなたは常にあなたがすべての時間と注意を持っている場所で、より安い賃金の仕事を見つけることができます。または、あなたは私たちと一緒に泳いでより良い給料を求め、完璧ではないものを無視することを選択します。この実現がより速くあなたに沈むならば、あなたは現実の世界のために自分自身を準備することができます。私はあなたが品質と優雅さを無視すべきであると言っているのではなく、ダイナミクスを知っている。あなたは幸せになります:)


0

私の考えでは、未来が持つかもしれない最も興味深いもののいくつかは、確かにコンピューターサイエンスの科学の部分、特に改善されたコンピュータービジョン/機械学習およびその他のセマタイズアルゴリズムに基づいているでしょう。これらはおそらく業界で推進されます(たとえば、Microsoft Kinectを採用する)が、学術分野で行われた大規模な研究と進歩に基づいた非常に困難な問題です(再び、Microsoft Kinectを採用します)。


0

標準的な日々のプログラミングは科学と同じくらい芸術的だと思いますが、コンピューターサイエンスの科学的側面に深く関心のある分野は確かに存在します。たとえば、企業や大学の研究者。あなたが本当に科学に専門的に関わりたいなら、あなたは博士号を求めるべきです。しかし、実際には私の創造的な側面に頼る必要があるにもかかわらず、教育の科学的部分は継続的に価値があることがわかりました!

自分が何をしているのか分からない人は、あなたが言及したいくつかのツールで物事をハッキングすることができますが、通常は本当のCSの人を雇ってツールを作成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.