計算機編程年度學習計劃 - 2018

本文章對年度學習目標進行規劃,當前為初步計劃,細節需要根據工作時間和實際情況有所區別,去年閱讀了 TCP/IP 詳解等16本經典書籍,以下為今年的研究計劃。

1. 語言

今年計劃學習一些新語言,特別是腳本和動態語言,然後深入了解一下 C++ STL 及其 Template。

初步計劃如下:

Python

Python 的發展非常之快,其在運維、大數據及服務端編程方向使用量逐年增大,其優秀的語言也為大多數程序員熱愛,因此需要學習一下 Python 語言。

本語言的學習過程有如下目標:

  1. 了解 Python 的基礎及高級用法;
  2. 完成 Python 的分散式爬蟲;
  3. 使用 Python 製作一個查字典工具;
  4. 學習 Python 的後端框架。

Javascript

Js 的發展十分迅猛,社區也及其活躍,Js 的使用場景不斷擴大,因此需要學習 Js 的使用。

本語言的學習目標如下:

  1. 了解 Js 的基礎知識及高級用法;
  2. 使用 Js 完成一個小型的網頁遊戲;
  3. 學習 NodeJs 框架。

C/C++

由於本身對於 C/C++ 比較熟悉,此部分需要更深入地探索。

本語言的學習目標如下:

  1. 深入了解 C++ 的 Template 及 STL 的實現;
  2. 學習 Boost 庫;
  3. 深入學習 Nginx、ASIO 及 Boost.Asio 網路編程庫

Lisp / Scheme

函數式編程聞名遐邇,必須要學。

本語言的目標如下:

  1. 閱讀並學習《計算機構造與解釋》的相關內容,學習 scheme 語言;
  2. 設計一個 DSL 或者 新語言,並使用 scheme 實現起解釋器。

2. 計算及基礎

由於出身非計算機專業出身,計算機基礎架構方向比較薄弱,今年希望能夠重點完善自己的編譯原理、類型系統、垃圾回收、並行演算法、分散式系統方向的內容

編譯原理

包含程序的解析、語法樹、代碼生成、代碼優化等方向,包含如下目標:

  1. 完成《編譯原理》(龍書)的學習;
  2. 學習解析器前端技術,閱讀《Parsing Techniques: A Practical Guide》;
  3. 閱讀 《Engineering A Complier》,了解解析器的工程實現;
  4. 了解基於 llvm 前端如何設計編譯器;
  5. 了解語言類型系統相關的知識。

垃圾回收

具有垃圾回收的語言其垃圾回收機制是怎麼設計的,我對此略有興趣,包含如下目標:

  1. 學習垃圾回收的演算法;
  2. 對演算法使用 C/C++ 進行實現。

分散式系統與並行演算法

分散式系統是大勢所趨,如何設計分散式系統架構很關鍵,需要了解此部分的內容。

此部分包含如下目標:

  1. 分散式系統的基本概念與基本設計方案;
  2. 了解分散式系統主流的架構;
  3. 了解並行演算法的原理與實踐。

本年度學習計劃包含如下圖書:

Python

  • [x] Python 學習手冊
  • [] Python Cookbook
  • [] Python 網路數據採集
  • [] Flask Web開發:基於Python的Web應用開發實戰
  • [x] HTTP 權威指南

Javascript

  • [x] JavaScript 高級程序設計
  • [] 深入淺出 Node.js

C/C++

  • [x] STL 源碼剖析
  • [] C++ 標準庫
  • [x] C++ Templates
  • [] Boost程序庫完全開發指南:深入C++"准"標準庫
  • [] Boost程序庫探秘——深度解析C++准標準庫
  • [x] Boost.Asio C++ Network Programming Cookbook

Lisp/Scheme

  • [x] 計算機構造與解釋
  • [x] The Scheme Programming Language
  • [] 函數式編程思維

編譯原理

  • [x] 編譯原理(龍書)
  • [] Parsing Techniques: A Practical Guide
  • [] Engineering A Complier
  • [x] 編譯器構造(Java語言版)
  • [] llvm Cookbook
  • [] Types and Programming Languages
  • [] The Optimal Implementation of Functional Programming Languages

垃圾回收

  • [x] 垃圾回收演算法手冊:自動內存管理的藝術

分散式系統與並行演算法

  • [] 分散式系統:概念與設計
  • [x] 分散式系統原理與范型
  • [x] 深入理解並行編程
  • [] 並行程序設計導論

[x] 標誌為必讀數目

推薦閱讀:

追問——與余秋雨先生的「邂逅」
319.讀書1~哈利波特與被詛咒的孩子1
《愚公移山》工程預算
如何調皮地表達我想你?
知乎書店半歲啦!我們給你準備了一份超級閱讀禮包

TAG:計算機 | 書籍推薦 | 閱讀 |