我在《暗時間》這本書獲益匪淺,固然這本書有一些侷限性,因爲做者本人是一位軟件領域的大師,因此書中全部的道理和方法不必定適用於全部的領域,可是大方向都差很少,書中提到演繹和推理須要足夠的已知因素,這些因素能夠是現成的,也能夠合理的聯想獲取,讓我想到和時下最熱的大數據有殊途同歸之妙,大數據也是必須有足夠的可用數據,進行分析,訓練模型,而後得出一些有價值的數據。這裏也順帶一提:貝葉斯,貪心算法,線性代數,運籌學,圖,分類、聚類、神經網絡相關等算法等相關知識。有空的話仍是充實本身,這些仍是很枯燥但有用的東西,絕大多數的算法和數據結構都是從操做系統底層得來的經驗,這是計算機的根本,萬劍歸宗的最高境界,雖然我也根本不看這些,又難又煩還看不懂。java
後端東西因爲涉及到服務器,服務器又是一個很複雜的東西,操做系統,數據結構和算法,集羣的通訊,網絡,因此它的格局必然廣闊。先列舉一些細節的知識點: 以JAVA爲例,涉及到多線程,單例,多例,阻塞IO,非阻塞IO,同步,異步等等,每一塊都得花心思琢磨,多例裏面可能有多線程的存在嗎,仍是多線程就是爲單例而生的,那一個進程擁有多少資源,spring啓動一個服務的話算什麼,一個進程嗎,一次請求算什麼,啓動一個線程嗎,spring容器如何操做,tomcat底層如何運做;阻塞IO,非阻塞IO,同步,異步之間究竟是什麼關係,網上說得準確嗎,本身又碰不到這樣的場景,怎麼辦。多線程下面發生的各類光怪陸離的問題,狀態沒加鎖被修改了,加了鎖程序跑慢了,明明用了concurrent類庫,爲何仍是出問題?這些只是本地,到了服務器,分佈式多節點,問題更大,tomcat的配置都得注意,雖然有運維,可是仍是要出錯,sessioncookieName莫名的返回了。這些固然只是基礎,往深了,有負載均衡,緩存,IO瓶頸,這些不少網上宏觀理論都看的很爽,其實並不能解決實際問題,只是提供一個思路,有一句我是認同的:一切不以解決實際問題的理論都是扯淡。web
以上我也並無全搞清楚,可是我相信只要深入的理解過,研究過,那麼會有不同的飛躍。不少工具,框架的核心設計理念,運做原理都很雷同。關於設計模式我想說的是新人每每接觸不到設計模式這些東西,因此常常故意亂套,顯得很高大尚,從而遭到前輩們的批評。我想說的是:對於新人的作法,我表示徹底支持,前輩們有前輩們的見解,可是咱們要有咱們的主見,咱們本就是爲了學而用。 咱們就是要用,起碼用會了一些,用熟了了一些,而且知道它們大體的套路,不少前輩們他們已經熟練的掌握了設計模式,因此他們看到咱們亂用就會說咱們強行使用。對,像咱們這種小白能用仍是儘可能用的好,試想一下,若是你都歷來沒用過,而後項目中基本不用,本身又不刻意用,如何進步,遇到適合設計模式的場景,又怎能將複雜的問題便簡單呢?算法
說到大數據,就簡單的和你們聊一下這個東西, 我在上一家單位實習的時候,所在部門就是大數據部-數據挖掘組,大體說一下我認爲的一些觀點:spring
1> 網絡爬蟲,是大數據獲取的途徑,各類爬,輿情垂直元搜索,涉及不少工具,自動登陸,經過cookie欺騙網站去爬,爬下來的話進行簡單的數據清洗,爲nlp、datamining作準備。後端
2>nlp,主要是lucene,開源最熱是es和solr,難點是對中文語義的處理,固然中間還有不少,銜接網絡spider的數據和datamining的中間件。設計模式
3>datamining,難點對於數據的訓練模型,須要紮實的算法,是終極目標,也是得以變現的核心所在。緩存
4> java_web對於這個部門而言並不複雜,開發方面能夠說是一個門戶,可讓用戶更好、更直接的瞭解後臺的東西。 這四者是一個順序承接的關係。這既是整個團隊的整個流程,產經過這種流程誕生。tomcat
大數據這一塊,還推薦Logstash+Redis+Elasticsearch+Kibana+Nginx搭建日誌分析系統這個很火,有興趣的話能夠了解一下,裏面涉及的知識點巨海量。服務器