コンピュータ科学と技術(もちろん学習++ Cを含む)プログラミングと実践のルート&プログラミング&アプリケーションベース4個を学びます
基本的な導入
私は大学では211件の専攻、大学卒業の存在は、混乱の仲間の旅行者以降の人々いくつかの提案や提言、迂回路を与えたいと思っています。彼らはほとんど卒業して、(すべての部分ではない)の学習に破壊関心をいくつかのゴミ学校のカリキュラムや教材を失ってきた後に考えて、私は、私の見解を共有するために、それを経験するために4年間より良いコンピュータ科学と技術をお勧めしますもちろん学習、すべての私の現在の経験になります。
読者のために:
- C ++初心者
- 私たちは、プログラミング言語を習得&初心者のためのプログラミングのスキルを向上させたいきました
- 基本的に4枚(データ構造とアルゴリズム、コンピュータネットワーク、オペレーティングシステム、およびコンピュータの構成原理、デザインパターン)、およびコバーンの人生のLinuxのプログラミングを勉強したいです
- C ++の構文が完了した後、あなたはプログラミングとアプリケーションプログラミングの練習の四つの基本的な部分を学ぶ必要があります
- 覚えておいてください:基礎編4かさばるプログラミングプログラミング言語そのものよりは、はるかに重要です
- 変換する機能を経由しなければならないようにしかし、C ++の構文とプログラミングの知識は、物事の4つの基本であるアプリケーション・プログラミングの練習(Linuxベース)
Linuxのエンタープライズアプリケーションをに基づいているためにLinuxを学ぶ理由については、ああ、何のマスターLinuxやジュニアプログラマー(私は仕事を持っていませんが、仕事の経験が言ってこれらの経験があるため、個人的な謙虚な意見を持っている人は)ありません。私はGoogleのBaiduのに自由ののLinux / Unixの重要性を理解していません
0.C ++文法の学習
ネットワークビデオレッスンをお勧めします
(再び学生C ++チュートリアルとの接触のためにも適している)、推奨小さなカメBステーションC ++教育ビデオのクイックスタートを理解しやすいと深さを話します
推奨書籍が
深いと浅いから順番に読むには
- 最初の本「エッセンシャルC ++」クレソンのスコア9.1(Cへ移行することにより、C ++、この科学は、C ++やC ++クイックスタートビデオを見ることができない見ていました)
- この第二の「のC ++入門第五版」クレソンスコア9.4(非常に広いが、深い、オブジェクト指向プログラミングやジェネリックプログラミングのためのエントリと、STLに適した予備的な理解を持っていません)
- この第三の「効果的なC ++」クレソンのスコア9.6(55回のベストプラクティス、最適化のヒント)
- 「より効果的なC ++」のIV クレソンスコア9.2(35ベストプラクティス、スマートポインタ、リファレンス・デザイン、など)
- この第五「C ++標準ライブラリ」クレソンスコア8.9(STL-深度調査)
- 「C ++オブジェクトモデルの詳細な探査」のVI クレソンのスコア9.1あなたは、インタビュアーが頼むかもしれない仕事を見つけるためにそれを読むことができる前に、(プロジェクト数年前は非常に困難な経験は、それを読み取ることは困難であろう。含有量は、約、非常に深いですそのような仮想関数テーブルとして基礎となる原理は、仮想関数を持っている、内部の仮想関数テーブルを実装する方法)
1.ベース4個
4つの塩基は、データ構造とアルゴリズム、コンピュータネットワーク、コンピュータのオペレーティングシステムとコンピュータの構成原理を含み、デザインパターンは、
データ構造、アルゴリズム、すなわち、グループ、OS、ネットワークメーター、デザインパターン:それは学習シーケンスをお勧めします。
1.1データ構造とアルゴリズム
トピックleetcodeを磨くために高強度の基本的な概念を学習した後
「西のデータ構造」C / C ++ クレソンスコア7.9(エントリーレベル、簡単に理解するために)
、「データ構造とアルゴリズムグラフィック」クレソンスコア9.0 2019のうち(、データ構造、アルゴリズムを提供することであり、この本は両方の組み合わせでありますプライマー)
「アルゴリズムグラフィック」クレソンのスコア8.4(アルゴリズム入門書、理解しやすいが、コードの実装の欠如)
「アルゴリズム」の第四版クレソンのスコア9.4(学部Iの使用はこれで、読むことを生徒に基づいてデータ構造のために、Javaを使用して、達成するためのコードが含まれています強くお勧めします)
「安全プランを証明」クレソンのスコア8.9ポイント(ブラシます仕事を見つけるために)
ブラシのタイトルに残っているエネルギー
1.3オペレーティングシステムおよびコンピュータ構成原理
総グループのオペレーティングシステムと私は2つのクロスのコンテンツので、一緒に言います
1.2.1コンピュータのオペレーティングシステム
それは私のような多くの学部や自習時間のオペレーティングシステムがそれを理解し、またはOSは非常に空気中の城を学ぶとは思わないがあると推定しています。それでは、どのようにオペレーティングシステムを理解することを学ぶのですか?次の一節は、私が今まで見た中で最高の答えである
オペレーティングシステムを理解するためには、コンパイルすることを学ぶ必要性、推薦図書
- 「アセンブリ言語」(第3版)王双クレソンスコア9.2
- 「X86アセンブリ言語:リアルモードからプロテクトモードへの」忠クレソンスコア9.0
OSの推奨ブックス
- 「コンピュータシステムの深い理解」(元の本バージョン3)クレソンスコア9.8(多くの人が等の組立OS、メーターグループ、コンパイル、を含むコンピュータの知識を知っているより多くのプログラマのニーズのように、本をお勧めします、続きを読むことができます数回、読みたいし、自分のパートを読んで)
- 「オペレーティングシステムの設計と実装」(書籍)クレソンスコア9.1(として知られている多くの人々が「現代のオペレーティングシステム、」クレソンのスコア8.6、および本書は、同じ著者です)
- 「オペレーティングシステムの概念」クレソンは8.9スコア
コンピュータの構成の1.2.2原則
合計グループと、より最近のコンパイル、OSのメモリ管理に関わることに加えて、ディスク管理、だけでなく、コンピュータ・アーキテクチャに関し、CPUなどの原則に
- 「コンピュータの構成と設計」クレソンのスコア9.1(表面的だけでカウント識字グループについて学びたいこの1つは十分です)
- 「コンピュータアーキテクチャ」クレソンスコア9.5(コンピュータアーキテクチャは、方向CSの大学院生、高度メーターグループの同等ですが、この本は、高度な研究グループが完了した後、カウントのためにも非常に快適です)
- 「構造と解釈コンピュータプログラムの」クレソンスコア9.5(多くの人々が推奨する、私は+時間100Hを学習し、次のように私のピッククレソン書評であることを聞いて)
一緒にあなたが怠惰になりたい場合は、オペレーティングシステム、およびコンピュータの推薦 - 「コンピュータシステムの深い理解」(元の本バージョン3)クレソンスコア9.8(アセンブリに含まOS、メーターグループ、コンパイル、など希望の学生は、OSを学び、グループをカウントするため、数回読むことができます)
1.3コンピュータネットワークおよびコミュニケーション論
TCP / IPプロトコルスタック - 狭義
原則をマスター、ARPプロトコル、IPプロトコル、ICMPプロトコル、TCP / UDPプロトコル
DNSプロトコル、HTTPおよびHTTPSプロトコル
推奨ブックス
- 英語:「TCP / IP詳細なボリューム契約」クレソンスコア9.2
- 「コンピュータネットワーク」第7版謝Xiren クレソンスコア8.9最高冊の中国語版
- 「コンピュータネットワークトップダウンアプローチ」の第6版クレソンのスコア8.9 強くお勧めします
ここでは主にコンピュータネットワークの原則を学ぶために、ネットワークプログラミングは、他の本を見て勉強したいことがあります。乗数効果を達成するために、ソケットプログラミングなどを学ぶために、ネットワークを介して、学習のネットワークでは、基本原理ので。私はプログラミングの毛皮をネットワークでしょう、私はお勧めしません。あなたは、ほぼ自己Baiduのを知ることができます。(私は後でもう一度学んだか、穴を埋めます?)
1.4デザインパターン
私のような何人がデザインパターンTATのことを聞いていないしていない、私は先輩と設計パターンに注力し始めて聞いたことがあり
、設計モデルはデザインパターンは、大規模なプロジェクトのための学習、開発に従事していない後でさえも、プログラミングパラダイムであることはまだ非常に便利です。
23のデザインパターン、熟練した共通:シングルトン、工場、プロキシ、戦略パターン、テンプレートメソッドへ
推奨図書
- 「西のデザインモード」クレソンのスコア8.3(シンプルなエントリーレベル)
- 「ヘッドファーストデザインパターン」(中国語版)クレソンスコア9.2(ただしもエントリーレベルが、より包括的)
2.アプリケーションとプログラミングの実践
2.1linux学ぶためにシステムを操作します
エンタープライズ開発、バックエンド(サーバー側の開発)の開発は、Linux上で開発されています
- 一般的なLinuxオペレーティングシステム命令
- 基本的なシェルプログラミング(シェルプログラミングは生産性向上ツール、バッチ処理、自動化スクリプト)
推奨ブックス
「鳥兄弟のlinuxプライベートキッチン」クレソンスコア9.1(非常に古典的なLinuxのプライマー)
「こうした研究の面でLinuxの」クレソンのスコア5.7(もう少し新しい本の鳥兄弟よりますが、内容はほとんどできました)
2.2コンパイラとデバッグツール
2.2.1コンパイルツールをコンパイル
勝利は、Microsoft自身のMSのコンパイラを使用して、対です
GCCであるLinuxでは、GCCは他の問題をマスターしていません
コンパイルメイクと呼ばれる実際のアクションプロジェクト、アクションのコンパイラのコースは、メイクファイルに書かれています
独自のメイクファイルを書き込むには、自分自身をコンパイルするプロセスは、書き込みに自分自身を設計すること
2.2.2デバッグ
エンタープライズクラスの開発とデバッグが特に主GDBデバッガを使用Linux上でC ++の開発の背景には、同じではありません対デバッグ
お薦め情報:
以下は、文書がオンラインであることをこの本ではないことに注意してくださいは、グーグルBaiduの自体は、私がリンクを添付していません
- 上のGNU GCCとGDB公式ドキュメントに英語の良いです
- 中国のリファレンスドキュメントは、中国語版「はgdbでのデバッグ」があります
- 陳好、「私はメイク一緒に書きました」
2.2.3linuxプログラミング環境
Linuxシステムプログラミング
- linuxを学ぶためのAPIの使用
- マルチスレッドプログラミングの実践:スレッド、リソース、信号同期mutexロック
- ネットワークプログラミング:Linuxシステムの特定のネットワークプログラミングAPI、およびコードのプログラミング機能IOの一部
推奨ブックス
- 「Unixのレベルのプログラミング環境」クレソンのスコア9.5
- 「Linuxは、高性能サーバープログラミング」クレソンのスコア7.9を
- 「POSIXは、プログラミングマルチスレッド」クレソンのスコア7.5を
追伸
この記事では、素敵な主流に優れたリソースを30冊の本と4つの調査書類の合計、すべて私の4年間の学部をお勧めします、私は実際に読んでいない多くの本があり、それの彼らのマークページと考えることができ、来ます!