原文連接: https://dsx2016.com/?p=719微信公衆號: 大師兄2016前端
非器非術非道,僅聊聊一些方向.java
不少事物均可以按進度和階段來劃分,如程序員的小白,初級,中級和高級.python
可是這種層次之分也有內外之別.git
公司招聘的中高級職位取決於業務的能力需求和薪水發放的高低,是市場的宏觀定義.程序員
我的的中高級之分在於自個人能力進階,來源於技術但不只僅限於技術,有多個維度綜合衡量.github
先有分階,纔有進階.面試
學會分階,找到本身當前的定位,瞭解本身的長處和不足,纔有下一步.算法
高級,優秀之類的詞彙是一個很抽象的概念.編程
以可量化的事物來描述,一些描述高級程序員的答案:後端
5
年以上一次面試的流程不足以表現高級所在,一次協做的失誤也不能代表纔不配位.
層級之分爲縱,差別之別爲橫.
不論程序員的職位和技術棧如何,總有一些共同的地方.
就如前端開發和後端開發:
Git
和Svn
是必知必會,其餘的不在考慮範圍.debug
調試和麪向搜索引擎,定位和排除問題也是技術能力之一.這些能力是基礎.
即使是基礎,可調節的空間仍然形成十分巨大的差別.
調試能力80
分的人工做效率每每是60
分人的幾倍甚至十幾倍.
其餘的以此類推.
可是在縱向擴展上,通常到80
分就要考慮適可而止,由於日後加1
分,付出的時間精力和收穫不必定成正比.
只學習一門語言能夠勝任常規業務的需求,多學一些語言,有助於擴展思惟的邊界.
但凡你瞭解過兩門以上的語言,你就會發現,語言之間有不少共通的地方.
漢語和英語,python
或java
,不外如是.
注意,是通,不是同.
如編程語言,它們共通的地方:
甚至於一些常見的條件控制,循環語句,邏輯運算,模塊等都是大同小異.
瞭解原理和思想後,幾乎只剩下語法不一樣,或者語言獨有特性的差別.
在進行縱橫擴展分析後,進階方向仍然比較模糊.
站在高處的人一眼就能全覽低處的風景,可是低處望高處,一般是一葉障目,難易窺探全貌.
回到可量化的高級,什麼是別人具有而你沒有的.
如下是一些臨時的整理:
沒寫過框架和庫,沒了解設計模式就不是高級開發了嗎?
會數據結構和算法就必定是高級開發嗎?
高級開發工程師頻繁使用if else之類的就是纔不配位嗎?
凡是以點概面的,請慎而遠之.
生活中很難證實你的能力或者自我瞭解.
刷題不表明什麼,刷的多了同樣也全知全會.
面試不表明什麼,面向面試編程的多了去.
工做不表明什麼,完成任務又不是秀代碼.
一些臨時的整理:
github
的時間線,也是不一樣時期技能能力的佐證記錄.10萬+
,基於相似公衆號的時間也是一個篩選值,書籍是知識體系系統,博客是技術成長路徑.可以量化和分析的,必定是基於分享和麪向公衆的,還有依賴於第三方做爲篩選值.
github
和公衆號的發佈時間沒法更改,每一步記錄不一樣時間的變化,展現的是代碼層面的細粒度.外有一套,內有一道.
清楚的瞭解內外定位和進階,平衡取捨之道,纔是王道.