2017 已經悄悄的走了,2018 也已經匆匆的來了,咱們在總結過去的同時,也要展望一下將來。俗話說一年之計在於春,雖然說距立春還有一個多月,我以爲咱們若是想從小白升級到大牛,應該早作計劃,規劃一下今年要學哪些新的技能呢?咱們來一一探討一下。
java
SpringBoot程序員
Spring Boot:是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員再也不須要定義樣板化的配置。經過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成爲領導者。算法
Spring Boot 特色:數據庫
建立獨立的 Spring 應用程序;編程
嵌入的 Tomcat,無需部署 WAR 文件;api
簡化 Maven 配置;數組
自動配置 Spring;安全
提供生產就緒型功能,如指標,健康檢查和外部配置;服務器
絕對沒有代碼生成和對 XML 沒有要求配置。網絡
在此以前,咱們用 SSM 進行整合的時候,大量的 XML 配置,一個配置不對,或者版本對應不上,就會有各類坑,噁心到想吐。而後當咱們使用 SpringBoot 後,咱們只須要簡單的 Properies 或 YML 配置便可搞定。並且咱們不再用手動下載 Tomcat 了,SpringBoot 幫咱們把它嵌入到了程序裏,把程序打成 jar 包,只需簡單用命令行運行 java -jar xxx.jar 便可完成一個 Web 項目的啓動,so esay。
Spring Cloud
Spring Cloud:簡單來講就是一個微服務框架,是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,均可以用 Spring Boot 的開發風格作到一鍵啓動和部署。
Spring Cloud 並無重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,經過 Spring Boot 風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包。
Docker
Docker 可讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。
容器是徹底使用沙箱機制,相互之間不會有任何接口(相似 iPhone 的 app),更重要的是容器性能開銷極低。
Docker 的特性:
速度飛快以及優雅的隔離框架;
物美價廉;
CPU/內存的低消耗;
快速開/關機;
跨雲計算基礎構架。
有了 Docker,媽媽不再用擔憂服務遷移作大量的配置工做了。
關於深度學習
PaddlePaddle
PaddlePaddle:並行分佈式深度學習開源平臺,它的前身是百度於 2013 年自主研發的深度學習平臺,且一直爲百度內部工程師研發使用。
全球各大科技巨頭開源的深度學習平臺都極具各自技術特色,對於百度,因爲其自身在搜索、圖像識別、語音語義識別理解、情感分析、機器翻譯、用戶畫像推薦等多領域的業務和技術方向,PaddlePaddle 則表現更加全面,是一個相對全功能的深度學習框架。
PaddlePaddle 爲深度學習研究人員提供了豐富的 API,能夠輕鬆地完成神經網絡配置,模型訓練等任務。
百度成爲繼 Google、Facebook、IBM 後另外一個將人工智能技術開源的科技巨頭,同時也是國內首個開源深度學習平臺的科技公司。
「中國人要有本身的深度學習框架」,這句話好像是在參加百度 AI 大會的時候聽到的,仍是很給力的。
TensorFlow
TensorFlow 是谷歌發佈的第二代機器學習系統。是一個利用數據流圖(Data Flow Graphs)進行數值計算的開源軟件庫:圖中的節點(Nodes)表明數學運算操做,同時圖中的邊(Edges)表示節點之間相互流通的多維數組,即張量(Tensors)。
這種靈活的架構可讓使用者在多樣化的將計算部署在臺式機、服務器或者移動設備的一個或多個 CPU 上,並且無需重寫代碼;同時任一基於梯度的機器學習算法都可夠借鑑 TensorFlow 的自動分化(Auto-differentiation);此外經過靈活的 Python 接口,要在 TensorFlow 中表達想法也變得更爲簡單。
Scikit-Learn
Scikit-Learn 是用於機器學習的 Python 模塊,它創建在 SciPy 之上。該項目由 David Cournapeau 於 2007 年創立,當時項目名爲 Google Summer of Code,自此以後,衆多志願者都爲此作出了貢獻。
Scikit-Learn 主要特色:
操做簡單、高效的數據挖掘和數據分析;
無訪問限制,在任何狀況下可從新使用;
創建在 NumPy、SciPy 和 matplotlib 基礎上。
Caffe
Caffe 是由神經網絡中的表達式、速度、及模塊化產生的深度學習框架。後來它經過伯克利視覺與學習中心(BVLC)和社區參與者的貢獻,得以發展造成了以一個伯克利主導,而後加之 Github 和 Caffe-users 郵件所組成的一個比較鬆散和自由的社區。
Caffe 的特色:
易用性:Caffe 的模型與相應優化都是以文本形式而非代碼形式給出,Caffe 給出了模型的定義、最優化設置以及預訓練的權重,方便快速使用;
速度快:可以運行最棒的模型與海量的數據;
Caffe 可與 cuDNN 結合使用,可用於測試 AlexNet 模型,在 K40 上處理一張圖片只須要 1.17ms;
模塊化:便於擴展到新的任務和設置上;
使用者可經過 Caffe 提供的各層類型來定義本身的模型。
關於深度學習的開源框架還有不少,不在此一一介紹,可以學會並熟練運用其中一個或兩個,那你就是大牛了。
區塊鏈
比特幣想必你們已是如雷貫耳了,09 年剛誕生的時候單價也就幾美分而已,17 年 12 月交易價格達已經到了 1 萬七千美圓還多。約合人民幣 11.3 萬/枚。
區塊鏈正是比特幣的底層技術和基礎架構,它是分佈式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不一樣節點之間創建信任、獲取權益的數學算法。
區塊鏈本質上是一個去中心化的數據庫,同時做爲比特幣的底層技術,區塊鏈是一串使用密碼學方法相關聯產生的數據塊,每個數據塊中包含了一次比特幣網絡交易的信息,用於驗證其信息的有效性(防僞)和生成下一個區塊。
狹義來說,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一 種鏈式數據結構, 並以密碼學方式保證的不可篡改和不可僞造的分佈式帳本。
廣義來說,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分佈式節點共識算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操做數據的一種全新的分佈式基礎架構與計算範式。
聽說研究這項技術的人的年薪 100w - 300w 不等,也許更多。
關於語言
Java
Java 已然得到了編程語言界的霸主地位,這是沒有哪一個程序員會否定的,在當下的程序員總數量中,Java 程序員數量在 900 萬左右,爲世界編程語言程序員數量上第一,而且 JavaEE 程序員仍是全世界需求量最大的程序員。
Scala
在資深程序猿眼中,能替代 Java、而且能作得比它更好的只有 Scala。不能否認的是 Scala 在業內的口碑不錯,做爲一個後起之秀,它解決了 Java 廣泛存在的許多問題,Scala 的性能比 Java 更增強大。
Go
Go 語言是谷歌推出的一種全新的編程語言,能夠在不損失應用程序性能的狀況降低低代碼的複雜性。
Go 語言被設計成一門應用於搭載 Web 服務器,存儲集羣或相似用途的巨型中央服務器的系統編程語言。
對於高性能分佈式系統領域而言,Go 語言無疑比大多數其它語言有着更高的開發效率。它提供了海量並行的支持,這對於遊戲服務端的開發而言是再好不過了。
前面提到的 Docker 就是 GO 語言開發的。
Python
Python 是一種解釋型、面向對象、動態數據類型的高級程序設計語言。像 Perl 語言同樣,Python 源代碼一樣遵循 GPL(GNU General Public License)協議。
Python 已然成爲機器學習領域的標配,聽說即將歸入高考,雖未獲得官方證明,但也是大勢所趨。
Julia
Julia 語言(https://julialang.org/) 專門針對科學計算、機器學習、數據挖掘、大規模線性代數、分佈式和並行計算,在 Julia 的使用者眼裏,Python 不夠快也不夠方便。此消彼長,當它擅長某一項工做時,確定會忽略其餘部分。
結束語
若是上述的技術,你正在學習或者已經在運用當中,若是你還不是大牛,那你必定是在成爲大牛的路上。
其實能夠成爲大牛的姿式還有不少種,這裏就不在一一列舉了,只要你一如既往的堅持你認爲是對的路,終有一天你將不會在意你是否是大牛。
最後祝你們 2018 年,新年快樂,心想事成。工資高高、Bug 少少、KPI 多多。歡迎在下方留言說說本身的 2018 年計劃學習的新技術,給你們進行分享!