推奨される C/C++ 学習教材

語学学習

  • C プログラミング言語 (デニス M. リッチーおよびブライアン W. カーニハン)
  • C言語による最新のプログラミング方法
  • C 落とし穴と落とし穴
  • C++入門
    (この本は、古くからある古典的な C++ チュートリアルです。少し分厚い本です。最初の 1/3 は C 言語について、後半は C++ についてです。C++ の知識は多すぎて、少しわかりにくいですが、主にいくつかのポイントを読むだけで済みます。1 つはオブジェクト指向ポリモーフィズム、もう 1 つはテンプレートとオーバーロードされた演算子、およびいくつかの STL に関するものです。C++ がジェネリックスと関数型プログラミングをどのように扱うかを参照してください)
  • 効果的な C++
  • より効果的な C++
  • C++ オブジェクト モデルの詳細な調査
  • C++ FAQ (Bjarne Stroustrup) 中国語版
  • C++ についての考察
  • 優れた C++
  • より優れた C++
  • 汎用プログラミングと STL

システム知識の学習

  • コンピュータ システムを深く理解する
    (本書の最大の利点は、プログラマ向けにコンピュータ システムの実装の詳細を説明し、プログラマの脳内で階層的なコンピュータ システムを構築できるようにすることです。メモリ内の最下位レベルのデータの表現から、パイプライン命令の構成、仮想メモリへ、コンパイル システムへ、動的にロードされたライブラリへ、最終的なユーザー モード アプリケーションへプログラムがシステムにどのようにマップされ、プログラムがどのように実行されるかを理解することで、その理由をよりよく理解できます。プログラムがそのように動作すること、および非効率がどのように引き起こされるのかを説明します。 )

  • 高度な Unix 環境プログラミング

  • Linux/Unix システム プログラミング マニュアル

  • Linuxシステムプログラミング

  • Unix ネットワーク プログラミング 第 1 巻 ソケット API、第 2 巻 プロセス間通信

  • TCP/IP 詳解 第 1 巻 プロトコル
    (この 3 冊は、読みやすいとは言えないかもしれません。一方で、比較的厚い一方で、知識の密度が高すぎて、少し退屈で、読むのは退屈です。しかし、仕方がありません、我慢しなければなりません。 )

上記の古典本は読みにくいと思われる場合は、以下のわかりやすい本を読んでみてください(もちろん、上記3冊が理解できれば、以下の本を読む必要はありません)

  • Linux C プログラミングのワンストップ学習
  • TCP/IPネットワークプログラミング
  • TCP/IPの説明
  • TCP/IP ガイド
  • Wireshark パケット分析の実践
  • C10K 問題 https://www.oschina.net/translate/c10k
    ( C10K 問題は本質的に、大量の同時リクエストを処理するオペレーティング システムの問題です。Web 時代のオペレーティング システムでは、クライアントからの大量の同時リクエストに対して、対応するサービス プロセスまたはスレッドを作成する必要があります。これらのプロセスまたはスレッドが多すぎるため、データのコピー (キャッシュ I/O、カーネルによるユーザー プロセス領域へのデータのコピー、ブロック) が頻繁に発生し、プロセス/スレッドのコンテキストの切り替えによって消費される大量のリソースが発生し、リソースが消費されます。これが C10K 問題の本質です。この問題を理解し、オペレーティング システムが多重化テクノロジを通じてこの問題をどのように解決するかを理解することは、重要なさまざまな I/O および非同期モデルを理解するのに役立ちます。将来のプログラミングとアーキテクチャのスキルは非常に重要です。 )

おすすめ

転載: blog.csdn.net/gaochubusheng/article/details/131713108