跨過2019 - 如何立一個新的Flag?且看行業解讀

跨過2019 - 如何立一個新的Flag?且看行業解讀

本文關鍵字:201九、新年Flag、行業解讀、技術重心的轉移、學習路線前端

1、IT行業發展歷程

跨過2019 - 如何立一個新的Flag?且看行業解讀

1. 應用開發分支

  • 首先引用喬布斯訪談中的幾句話(訪談時間爲上個世紀末):

    軟件正在向各行各業***,成爲重要的商業競爭武器。軟件正在釋放難以想象的力量,新的軟件產品和軟件服務將改變咱們的社會。
    軟件行業正在發生兩件激動人心的事情,一個是面向對象編程,另外一個就是Web。Web將實現咱們盼望已久的夢想,計算機再也不僅僅充當計算工具,開始承擔通訊功能。
    Web將深入改變咱們的社會,網絡銷售的潛力巨大,網絡將成爲最直接的銷售渠道,並且在網絡上小公司與大公司看起來沒有區別。
    若是未來回顧計算機發展歷史,Web技術必然成爲重要的里程碑。它的潛力很大,會吸引更多年輕人進入計算機行業,Web爲IT行業開啓了新的大門。面試

以上的訪談發生在二十幾年前,那個時候怕是筆者剛出生還沒多久吧。。。可是往往回顧這篇訪談都會被震撼,同時也說明了Web所蘊含的潛力。時至今日,Web相關技術發展迅速,而且一直扮演着一個不可或缺的角色。算法

(1)Web-App

在WebApp成爲主流以前是你們最熟悉的C/S架構,也就是以軟件的形式直接來運行一個應用,須要進行配置和安裝。那麼對於開發者來講,每個系統的運行環境都是不一樣的,針對不一樣的系統要作不一樣的適配,甚至於要使用不一樣的開發語言來實現軟件的界面。
隨着互聯網的興起,用戶逐漸變多,我的計算機也徹底的走入家庭。那麼計算機也不只僅爲了娛樂和工做,不少只能在線下完成的業務能夠在經過互聯網在線上完成,如:購物,即時通信等等。
同時,爲了快速的實現一個業務流程,而且能在各系統上可用,那麼最優的選擇就是讓用戶經過Web瀏覽器來訪問。開發人員只須要維護好服務端的業務功能和數據存儲,展現的界面能夠快速的開發完成,而且兼容性良好,這就是咱們所說的B/S架構。
B/S架構可以爲PC端的用戶帶來良好的體驗,主要應用爲:公司門戶,電商銷售,管理系統,包括即時通信等。因爲用戶不須要下載軟件,因此使用起來很便捷,可是劣勢就在於沒法達到像C/S架構軟件強大的功能以及較高的執行效率。數據庫

(2)Mobile-App

移動應用的興起的一個主要時間點是安卓系統的誕生。在此以前雖然各手機廠商已經推出了各類智能機,可是當時的手機應用幾乎都是經過具備跨平臺性的Java語言來開發的。而是否支持Java也就成了是不是智能機的一個最直接評判標準。
可是對於用戶而言,各品牌的手機操做系統操做方式也有很大差異,比較有表明性的就是諾基亞的塞班系統,曾經一家獨大。在那個年代,各大手機軟件下載網站必須明確標出一個手機應用是否支持某一個機型,或某一個系統,安裝應用也基本靠數據線。
在安卓系統誕生後,能夠說有了一個參照和統一的標準。各大廠商也都是基於安卓封裝了本身的操做系統,雖也有差別,但軟件的兼容問題獲得了根本的解決。緊接着出現的就是各大應用市場,在大多數狀況下咱們只須要關注安卓系統的版本就好了,而閃退問題通常就是由於兼容性沒有作好。
固然,IOS一直是IOS,有着本身的生態,也保留了本身的一小部分市場,其餘的手機操做系統已經能夠忽略不計。因此移動App指的就是在移動端設備(主要是手機)上運行的app,使用安卓和IOS原生語言和工具來進行開發。
相較於PC端,手機端應用的最主要優點就是在於更加便捷,而且能夠及時的收到推送消息,保證了實時性,提升了效率。那麼對於應用開發,主要的發展方向就是:便捷、輕量、高效。編程

2. 數據存儲分支

跨過2019 - 如何立一個新的Flag?且看行業解讀
對於數據的存儲也歷經了長時間的發展,而且到了今天勢頭絲絕不減。隨着數據量的不斷增大,併發量的不斷提升,如何可以保證穩定的前提下提升查詢速度,而且提供更爲科學的數據存儲和檢索策略是這一領域致力於解決的主要問題。後端

(1)Database

咱們從已經誕生了數據庫的時間點開始講起,在數據庫管理系統產生以前,數據都以文件的形式存儲在磁盤上,很是不利於查詢和使用。目前數據庫主要使用的是關係模型,也歷經了多個模型的演進。經過關係模型,咱們能夠相對容易的刻畫出一個應用系統的業務邏輯,便於數據的存儲與按條件查詢等。
也就是說數據庫管理系統其實也是一個軟件,是一個能夠幫助咱們進行數據存儲和管理的軟件。數據依然是以文件的形式存儲在磁盤上,可是這個文件是數據庫特有的文件格式,數據庫管理系統經過讀寫相應的數據庫文件來進行數據的存儲與查詢。
數據庫軟件已經可以知足絕大部分軟件的數據操做須要,可是因爲數據量級不斷增大,也慢慢衍生出了數據庫集羣,數據庫分庫分表策略等。並且另一個主要特色就是隻能處理文本類型的數據,對於圖片、音頻、視頻等類型的數據雖然也能直接存儲,可是並不提供分析功能。而且因爲關係型數據庫的特色,在進行性能提高時,會消耗較多的硬件資源。數組

(2)Files

隨着技術的發展和需求的進一步提升,咱們須要對已有的各類類型的數據可以進行分析。在這個時候,單單使用數據庫已經不可以知足咱們的須要了。使用數據庫來完成基本的統計分析或者較爲複雜的關聯查詢是沒有問題,可是並不可以實現複雜的算法來預測,爲咱們提供一些決策上的支撐。
爲了擁有更強大,更快速的數據分析功能,咱們須要藉助其餘的組件。一般這些組件各司其職,而且具備較強的擴展性,能夠方便的與其餘組件進行整合。比較有表明性的就是NoSQL(Not Only SQL),ETL工具,大數據技術生態圈組件等。
經過這些軟件自身的功能以及開發人員的工做,咱們能夠實現數據流程的自定義,生成企業領導層須要的數據報表,而且能夠進行各類類型數據文件的處理分析工做。瀏覽器

3. 雲資源

跨過2019 - 如何立一個新的Flag?且看行業解讀
雲的概念從出現至今也有差很少十個年頭了,從最開始的網盤數據存儲服務,到如今完備的雲數據庫,雲服務器,雲計算資源等。全部的雲產品都在踐行着按量付費這一準則,就像咱們去網吧上機同樣,使用多久就花多久的錢,咱們須要買下一臺電腦就爲玩那一小會兒嗎?不,咱們不須要。安全

(1)雲市場

雲市場概念相信你們也都不陌生,在雲市場中咱們挑選的都是雲產品。由各大服務商來維護物理資源,以租用的方式將這些資源提供給用戶。用戶不須要去機房精挑細選,只須要在網頁上動動手指就能夠得到本身所須要的資源。
好比,我須要將本身的網站發佈到互聯網,讓全部的人都可以訪問。那麼我只須要知道部署一個網站的步驟就能夠了,我須要什麼?一個公網IP,一臺服務器,嗯,那麼我去雲市場租用一臺雲服務器就能夠了,剩下的經過遠程操做來完成。相較於購買一臺物理機,而後再手動配置映射到公網要省錢省力的多,咱們只須要專一於咱們核心要作的事情就行了。服務器

(2)數據上雲

雲的出現對於數據分析的一些流程也產生了一些影響。雖然雲端資源具備價格低,使用方便的特色,但畢竟是第三方提供的服務。當須要進行數據分析時,安全性應該獲得首要的保證,因此上雲的數據須要脫敏處理,不能形成數據信息的泄露。
數據上雲的一大好處是按量計費,不須要購買和維護高昂的硬件資源。同時,計算結果也可以進行快速的共享與推送。

4. 智能系統

用戶在使用一個應用後,會留下各類行爲信息,如操做記錄,日誌信息。若是對這些信息加以利用,咱們就可以輔助決策一個產品的功能走向,而且瞭解到用戶喜愛,根據人羣來進行劃分,進行合適的推薦,就能夠達到增長用戶粘性的效果,並能進一步促進用戶消費,以提高效益。
跨過2019 - 如何立一個新的Flag?且看行業解讀
雖然數據分析相關領域存在較大的人才缺口,各大高校也在陸續開設大數據、人工智能相關專業。可是你們仍是須要根據自身的狀況量力而行,畢竟這一領域的門檻仍是比較高的。正確的作法是,在瞭解了整個行業的狀況以及自身的喜愛後做出一個較爲詳細的規劃,不要過多的受其餘人的見解的影響。當一個新的技術產生時,你們勢必抱有過多的指望,進入過熱期,這一階段也容易得到資本的青睞。當實際操做後,發現有不少問題並不能獲得有效解決時,就會進入低谷期,會引起人們的又一輪思考。當進一步肯定技術的定位以及主流框架後,就會進入復甦期和成熟期。
別因時髦而加入,別因過期而錯過

2、技術重心的轉移

在對本身的學習路線作出規劃以前,必定要先了解一下整個行業的發展趨勢和重心。能夠很明確的說,IT行業的初級人員已經接近飽和,想找到一份工做不難,可是想要找到一份好工做,你須要有一份披荊斬棘的勇氣!

1. 從實現到優化

跨過2019 - 如何立一個新的Flag?且看行業解讀
在前幾年,咱們只須要熟練的掌握開發語言的基礎語法,框架的使用流程,基本上就能夠輕鬆的經過面試,至少實習崗是這樣。由於若是想要實現一個業務邏輯,主要就是靠增刪改查,並不存在很大的難度,主要框架使用的熟練,就能夠勝任這份工做。可是目前,重心已經逐漸向優化轉移,以前不少架構師的工做也慢慢的要求中級開發人員,甚至於初級開發人員來掌握,由於這已經成爲開發應用的一部分。
在實現功能的基礎上,要進一步考慮用戶體驗,提高整個應用系統的響應速度。這就要求咱們要掌握不少其餘的組件,來達到優化的目的。

2. 從業務到數據

跨過2019 - 如何立一個新的Flag?且看行業解讀
目前的人才缺口在於「優秀的開發工程師」,不管是前端仍是服務端,你們必定不能鬆懈,要不斷的提高本身。若是你不想走技術路線,那麼多積累業務經驗,轉向管理崗位也是一個不錯的選擇,提高文檔寫做的能力也能爲你帶來加分。
在實現業務功能代碼的基礎上,咱們要立身於產品來進行思考,數據的流向是怎樣的?產品的模式是怎樣的?主要面向的用戶人羣是什麼?不要把咱們能夠積累的業務經驗忽視掉。畢竟追逐技術是沒有盡頭的,技術的發展突飛猛進,惟有數據和產品是不變的話題。

3、我的經歷分享

跨過2019 - 如何立一個新的Flag?且看行業解讀
筆者自己也經歷了不少技術的變遷,只能說很是幸運,經手了幾個不錯的項目,也是逼本身了一把,學到了很多的東西。

1. Java全棧

全棧這個詞,現在的我斷然已沒法承其重,畢竟我已經脫離了一線開發有些年頭了,現在所使用的前沿技術我已經不可以駕馭。
全棧,指的就是掌握前端和後端的技術嗎?遠遠不是。獨立完成產品,這是一個什麼概念?從需求分析開始,到概要設計,詳細設計,產品原型,頁面切圖,界面實現,服務端開發,數據庫存取,應用發佈及服務器管理。是否是一我的完成的並不重要,可是缺你不可,你必須擁有全局性思惟。
幾年前的我,曾經作到過。還記得在夏天三十多度的北京,騎行來回20多千米只爲復現一個bug,也就在那一次我知道了汗水真的可讓一我的渾身溼透。不得不感謝那個時候的本身,讓本身成長了不少,一我的完成應用的開發直至上線部署和版本迭代升級。
也許你們都作着相同的工做,可是你必定要多問幾個爲何,能夠是技術上的,也能夠是業務上的,這樣你才能快速的成長。既然遲早要經歷這些學習的過程,爲什不壓縮一下,讓他早點過去呢?當你有了必定的積累,你就會發現原來學習並非那麼痛苦的,反而可讓你本身愈來愈有價值,愈來愈不可替代。

2. 大數據開發

我在從事大數據開發時接觸的項目是大數據建模平臺,包含了數據分析的完整流程,而且整合了機器學習庫。核心功能點包括:建模系統的基本使用(用戶登陸註冊,部門及權限管理,通用的後臺管理功能等),數據採集(數據庫導入,文本類型上傳,其餘網絡傳輸協議及文件類型),數據源管理(結構化及半結構化數據管理,數據預覽等),數據清洗(數據去重,缺失值處理,分層抽樣,數據過濾,數據合併等),統計分析(自定義數據流),數據挖掘(機器學習庫經常使用算法),可視化展現(用戶自定義圖表)。

3. 培訓講師

因爲是師範出身,一直熱愛學習的分享,從事培訓也有近三年了,一直在不斷打磨自身的知識儲備。在這裏想給你們的建議就是學習是一個沒有盡頭的事情,你對本身的投資也不終止於某一個時間節點。大學畢業,培訓結束,投資就終止了嗎?學習就終止了嗎?固然不,因此即便如今以爲本身不夠好,也不須要有過大的壓力,過去的本身不管什麼樣,就讓他過去吧。咱們的每一份努力都是爲了碰見更好的本身,必定不要輸給本身。
在我剛剛從事培訓領域時,也同樣充滿了不安,也對曾經的本身不夠滿意,可是這一切都應該經過努力去填補,只有這樣纔會愈來愈踏實,愈來愈有幹勁。

4、學習路線規劃

以上說了這麼多,相信你們對整個行業已經有所瞭解,而且順帶着給你們打了一針雞血,應該足夠讓你們把剩下的內容看完了。

1. Java開發工程師

對於開發工程師,能夠將學習分爲如下三個階段,若是想要從事相關的工做,基礎和框架部分固然是必不可少的。對於優化部分,你們能夠在工做後慢慢的學習。

(1)基礎部分

這一部分主要打牢基礎,你們能夠參照個人知識簡譜,會不斷進行更新和完善,須要原文件的同窗能夠評論留言。核心內容以下:

  • Java概述:起源、語言特色、代碼風格等
  • Java基礎:基本數據類型、類型轉換、運算符
  • 程序設計的基本結構:順序結構、選擇結構、循環結構
  • 面向對象:類、封裝、繼承、多態、各修飾符、接口
  • 數組:基本使用、元素排序、元素查找
  • 字符串:字符串比較、經常使用方法、格式化輸出、StringBuilder與StringBuffer
  • 經常使用核心類:Object、Math、基本數據類型包裝類、日期、隨機數
  • 內部類:成員內部類、局部內部類、匿名內部類、靜態內部類
  • 泛型與集合:經常使用集合、泛型的用法
  • 異常處理:異常的類型、異常的捕獲與處理
  • 輸出輸出流:字節流、字符流、緩衝流、序列化、NIO
  • JDBC:JDBC操做流程、注意事項、工具類封裝

(2)框架部分

目前之前後端分離模式開發的項目較多,主要技術架構爲SpringBoot + MyBatis + Vue。對於服務端咱們確定要學習主流框架,可是不少框架工做原理的部分但願你們經過Servlet和SSM框架的學習來掌握,儘可能不要跳過。

(3)優化部分

優化部分推薦你們養成看源碼的好習慣,大部分狀況下,不少數據結構都已經提供了相關的參數來進行優化。另一方面就是關注線程與線程池,框架級別的優化方案。由於對於框架來講,咱們只是一個使用者,只能經過項目開發來積累相關的經驗,大多數狀況下不會直接修改內部的源碼(源碼修改大神應該不會來看個人文章吧)。

2. 大數據開發及分析

大數據開發及分析領域的門檻相對較高,你們能夠作一個長期的規劃,用一到兩年的時間完成轉型。若是你仍是一個在讀大學生,是相關專業,那麼你可能很幸運,由於專業名稱對口。可是問題在於目前的教學體系並無十分完善,和企業的真實需求相差較多,你須要合理利用時間,自我提高才好。

(1)大數據開發

大數據開發的主要工做是使用相關的軟件API來開發出一個產品,用程序的方式去控制大數據集羣的各組件。用戶經過界面來進行數據流的定義,以及查看結果。
因此若是從事大數據開發,你的編碼能力是第一位的,可是對於數據分析的流程也要有所瞭解,換句話說就是要對數據敏感。
至於學習路線有不少資料,從Linux開始,以Hadoop體系爲基礎,不斷的向外擴展,你們也能夠關注個人博客,我會用一到兩年的時間完整寫出整個學習體系的具體教程。

(2)大數據分析

大數據分析算是要求比較高的一個崗位了,由於他須要的不只僅是紮實的數學功底,還須要多年的業務經驗,纔可以達到精準的數學建模。通常來講須要研究生以上學歷,相關專業才能夠找到一個本身較爲滿意的工做。

(3)雲計算/ETL

雲計算側重的是服務器資源管理與維護,是從Linux運維衍生過來的一個職位,因此Linux運維相關技能是必須的,同時要對數據處理流程以及服務器上各大數據組件十分熟悉,出現問題可以及時解決。而且可以根據服務器資源狀況配置相應的負載,提出優化策略等。
ETL是一個較爲傳統的崗位,主要指的是對數據抽取、轉換、載入的相關工做,通常會使用商業或開源的軟件來實現 ,如:Kettle、SmartBI等。開發人員須要作的主要工做是根據業務要求,選定相應的數據維度(數據表的字段),撰寫SQL或編輯數據處理流程,最終生成可視化報表,有事也須要進行少部分代碼編寫工做。

5、如何快速適應工做

當咱們進入到一個新的環境中,如何快速上手項目呢?如下經驗供參考。

1. 瞭解技術架構

瞭解技術架構的目的是爲了明確本身在閒暇時的學習方向,這很重要。畢竟當遇到一個不會的問題再去查仍是有些被動了,雖然大多數狀況下都是這麼過來的。。。可是咱們仍是要化被動爲主動,多去了解相關知識,便於快速的定位問題,找出相應的解決方案。

2. 解讀業務場景

當咱們拿到項目代碼時,及時包的命名再具體,管理再規範,在新人眼中也是一坨。。。這是沒辦法的事情。在着手看代碼以前,咱們應該先了解相應的業務邏輯是什麼,哪些部分是比較關鍵和複雜的,在進行功能優化和添加時須要特別留意的。

3. 使用流程測試快速上手

當你把項目成功運行起來以後,若是是你以前很熟悉的框架,那天然沒的說,你已經能夠開始投入工做了。可是若是使用的框架咱們並不熟悉,那麼咱們就從最簡單的功能開始,打斷點,看代碼之間的調用關係,是否有過濾器,攔截器,各類驗證,具體查看包與包,模塊與模塊之間的關係,經過幾個邏輯簡單的功能先來梳理清楚,而後再開始寫代碼,這樣至少不會一上來就頭大。

6、如何突破技術瓶頸

對於如何突破自身的瓶頸,筆者有如下三點建議。

1. 積極擁抱變化

積極擁抱變化,這一點不用多說。可是如何擁抱?擁抱什麼樣的變化?是一個技術產生了就去學嗎?當時不是,講真你學不過來。
因此要作的第一個步驟就是肯定目標,能夠定時的去查看本身相關崗位的崗位職責,用人需求,當一個新的不認識的詞出如今視野中後,就去調查它,記住先調查一下就能夠。
第二步須要作的就是評估,新技術對自身的相關性有多高,是否與自身的發展路線吻合,畢竟崗位職責都寫的寬而全的,想要找到工做未必要全cover住。
因此接下來就是看百度指數的變化,相關社區的活躍度,半個月或者一個月關注一次就好,每次也就花幾分鐘的時間,若是趨勢不錯,能夠着手開始收集相關的學習資源了。
剩下的就看本身的時間安排了,以爲頗有用,很好玩,天然擠時間也會去學的,筆者就很少嘮叨了。

2. 縱向深刻與橫向擴展

縱向深刻指的是在技術上的積累和深刻,橫向擴展指的是業務與管理上的經驗。無論你們喜歡哪一條路,總之,早作準備就好。
技能點就那麼多,縱向點滿,化身架構,今後佇立巔峯;橫向點滿,化身經理,今後馳騁江湖。

3. 技術交流與人脈積累

筆者認爲對於任何一個行業,與人交流,積累人脈都是放在首位的,其次纔是我的的能力。雖然做爲開發者可能大部分時間都在電腦前,可是這並不衝突。在自身的社羣中多交流,學會如何提問和如何解答也是一個重要的過程,也是一個鍛鍊情商,提高本身的重要步驟。在交流中能夠有不少意外的收穫也能夠發現自身知識的盲點,固然一個好的交流平臺很重要,聊天划水就沒有意義了,不要作無用功。

相關文章
相關標籤/搜索