私は有機化学の大学院の学位を目指しています。
今、私の地域では多くの才能ある人々がナノテクノロジーに向かっています。
現代のコンピューターサイエンスで同等の分野は何ですか?
私は有機化学の大学院の学位を目指しています。
今、私の地域では多くの才能ある人々がナノテクノロジーに向かっています。
現代のコンピューターサイエンスで同等の分野は何ですか?
私にとって、それはスレッド化です。比較的 "単純な" スレッド化でさえ難しいものであり、ロックフリー コードの領域を掘り下げると、さらに難しくなります。確かに、精神的な問題 (アクター、メッセージ パッシングなど) をあまり引き起こさないスレッド化パラダイムがありますが、それらには独自のトレードオフが伴う傾向があります。
これは私の見解では「深い」複雑さのレベルですが、さまざまな方法で挑戦的なコーディングの他の領域があります。セキュリティ、国際化、および日付/時刻の処理 (または実際の人間の特性に関連するほとんどすべて) は非常に厄介であり、学習して注意する必要のある多くのコーナー ケースがあります。これは確かに難しいですが、並行性とは別の方法です。
編集: twk の回答への応答として: はい、同時実行を容易にしようとしている人がたくさんいます。並行処理を適切にサポートするさまざまなプラットフォーム (Erlang など) が既に存在しますが、現時点では、より単純な並行処理を既に主流のプラットフォームに導入する動きが活発になっています。.NET 開発者としての私の観点からは (とにかくアマチュア/愛好家の .NET 開発者であり、現時点では Java の専門家です)、Parallel ExtensionsとCoordination and Concurrency Runtimeは、最近の 2 つの最も興味深い開発です。これで並行処理が簡単になるとは思いません。
「強力な」人工知能と量子コンピューティングは、ナノテクノロジーとの同等性に対する私の投票です.
スレッド化/並列実行がホットなトピックであり、トランザクション メモリのような新しい分野を開拓したり、独創的なテクノロジを考えたりしているという Jon Skeet の意見に同意します。それは新しい概念のための開かれた分野です。
私にとって、最も精神的に挑戦的な名前を付けるのは非常に難しいです。私は、1つはないと思います。
システムと組み込みプログラミングは、私見で最も難しい分野の2つです。ハードウェアに最も近い、最も難しい(実際のモードのアセンブリを少なくとも一度は見てください:D)。
Jonは、並行プログラミングは非常にトリッキーで、正しく理解するのが難しいと言うのは絶対に正しいです。
しかし、私は暗号、機械学習、または数学プログラミングのいくつかの側面について同じことを結論付けます。CSの基礎とより高いレベルのタスクを区別することは理にかなっていると思います...
ただし、非常に主観的な質問です。
HTML / CSS
正確にはコーディングではありませんが、頭痛の種です
より多くのプロセッサ コアを自動的に簡単に使用できるようにするために忙しい人たちがいることを願っています。確かに、Intel Thread Building Blocks のようなものや、Erlang のような言語さえありますが、今後 10 年間でその面でさらに多くの進歩が見られることを願っています。
少なくともローカルでは、ホットな分野は情報学、特にバイオインフォマティクスです。多くの情報源から情報を収集、組み立て、関連付け、分析し、収集物から追加情報を導き出すことは、コンピューター サイエンスと他の活動との最も強いつながりを表しています。これは、当社の CS 部門に提供された最新の学位であり、多くの分野から最も多くの大学院生を CS クラスに引き付けています。
どれだけ精神的に難しいかはわかりませんが、新しいものなので、考えられていない、ましてや調査されていないアイデアがたくさんあります。オリジナルのアイデアを思いつくのはかなり難しいですが、その背後にある実際のプログラミング部分はおそらくそうではありません。
最も精神的に困難なコーディング形式を表すものは何ですか? 組み込みファームウェアの開発。
現在、私の地域では多くの才能ある人々がナノテクノロジーに向かっています。
現代のコンピューターサイエンスで同等の分野は何ですか? 繰り返しますが、組み込みファームウェアの開発です。
また、デスクトップ開発者やインターネット開発者にとって、組み込みコーディングが他のどのタイプのコーディングよりもはるかに難しいと思わないのであれば、組み込みを理解していません。デスクトッププログラマーやインターネットプログラマーができることは何でもできますが、ほとんどのデスクトッププログラマーやインターネットプログラマーが組み込みをうまくできるか、まったくできないかは非常に疑わしいです。
適切な例として、現在取り組んでいるバグがあります。シリアル通信ポートで 4 バイトが正常に受信された後 (割り込み駆動型受信)、連続するバイトによって UART が割り込みを生成しません (必要な場合)。 )。
では、Windows とインターネットのプログラマーは、最も可能性の高い原因は何だと思いますか? あなたならどうしますか?ああ、忘れていましたが、Windows とインターネットのプログラマーは、ハードウェアに完全かつ直接アクセスできないため、おそらくそのような状況を経験したことさえありません。組み込み開発の世界では、「それはハードウェアです」と言ってそのままにしておくことはできません。UI から電源 (ソフトウェア、ファームウェア、ハードウェア、組み込み開発者のすべての責任)。これは、どの Windows プログラマーやインターネット プログラマーが直面するよりも大きな課題です。