web-dev-qa-db-ja.com

プログラミングにおける電子機器の使用

プログラマーはデジタルエレクトロニクスについて深く理解する必要がありますか。理論的/実用的。彼らが大学で私たちに教えることはかなり基本的なのですか?

はいの場合、セキュリティ愛好家(ハッカー)がデジタルエレクトロニクスについて十分な知識を持っていれば、あらゆる種類のプログラマ(ソフトウェア開発者/ Web開発者/アプリ開発者)がそれを必要とします(深い理解)。

4
45hook

コンピューティングの世界はレイヤーの世界です。

  1. 半導体物理学を使用して、トランジスタを設計および構築できます。
  2. トランジスタを使用して論理ゲートを構築できます。
  3. 論理ゲートを使用して、組み合わせ論理とフリップフロップを構築できます。
  4. 組み合わせロジックとフリップフロップから、プロセッサやペリフェラルなどのデジタルロジックシステムを構築します
  5. これらのプロセッサは、マシンコードを解釈し、メモリマップドレジスタ(または特定の「IOマップ」に登録されることもある)を介してperhiperalと通信します。
  6. コンパイラとオペレーティングシステムを使用して、ハードウェアの詳細を抽象化します
  7. 私たちは、高度なインタプリタ言語または自動コンパイルされたjitコンパイル言語を使用して、物事をさらに抽象化しています。

インタプリタ型スクリプト言語で作業している人は、まったく関係のない半導体物理学に関する情報を見つけようとしますが、作業している層の1つまたは2つ下の層を知ることは、物事のあり方や効率的な解決策を理解するのに役立ちます。 。

10
Peter Green

「深い理解」-いいえ。役に立ちましたか? - はい。特にブール代数とカーナウマップが表示されます。あなたは本当に、そしてあなたのANDとORを本当に知るようになりますが、排他的ではありません。

1
radarbob

プログラマーが答えを求めている専門知識によって異なります。プログラマーが専用ハードウェアのドライバーを専門とする場合、深い理解が必要になる場合があります。一方、Web開発者はハードウェアの側面に深く入り込む必要はなく、単にキャリアで抽象化を使用するだけかもしれません。

大学で教えられていることは、時間の経過とともに進化する可能性のあるセットについてどのように学ぶかを知るための練習を提供するはずです。新しいハードウェアが作成されると、多くの場合、物事の新しいスタイルをどのように学習するかという課題が発生する可能性があります。 15年前には存在しなかった可能性のあるジェスチャーがモバイル開発にどれほどあるかを考えてみてください。

さまざまな専門分野ではさまざまなレベルが必要になる可能性があるため、ここでの短い答えは、物事について知るのに役立ちますが、深度の測定方法も重要です。たとえば、ここではCPUとGPUの設計について話しているのですか、それともすでに市場に出ているものを単に使用しているのですか?ここではどのレベルの深さを意味しますか?博士は量子力学では必要ですか、それとも電子がどのように電荷を保持するかを知るのに十分ですか?

0
JB King