程序員的3年之癢改變的不止薪水------轉載

 寫在開始,這裏借用特立獨行的貓的一句話,你能夠原地踏步,但別以爲別人都該和你同樣。
前端

<ignore_js_op>


       程序員的3年之癢,的確是時候該撓撓本身了。3年的程序員生涯,不長不短,但它的確是一個坎。3年改變了咱們的不只僅是年齡,固然還有薪水。


      工做也有幾年了,特別是今年要學的東西愈來愈多,而後感受本身愈來愈無知。有時候恨不能全部的東西都要了解都要懂甚至要精通。但時間畢竟是有限的,何況你還有項目任務在身。固然不少時候也是惰性使然,空閒時間對於技術的關注雖然有,可是不少東西都是理論的東西。


       躺在那裏的叫信息(information),只有內化爲本身的纔是知識(knowledge)。涓涓細流,飲多少全憑心意。做爲一名合格的程序員,你不能嘴上說的天花亂墜,實際讓你去作的時候你就乾瞪眼。從後臺到前臺,從彙編到java,從大數據到雲計算,吾生有崖而知無崖,欣賞,開放,包容,不少地方均可以學習。


       因此不少東西,特別是感興趣的開源框架,我通常都會作一個demo,理論性深層的東西能夠暫且放到一邊,固然你要懂得基本的概念,它是個什麼東西,用來作什麼的。而後慢慢去接觸一些框架底層的東西,實現原理和設計模式,固然你若是模仿框架寫一個本身的東西,那麼恭喜你框架模型已經吃透了。


       記得前一段時間接觸阿里巴巴的分佈式框架dubbo,網上查詢了不少資料,也加了幾個羣,關注一下架構大牛的心得歷程。其中有一個同窗,貌似依照dubbo寫了一個屬於本身的調度框架,雖然下面有些評論說基本跟dubbo一個架構,但我感受他是吃透了這個框架才能一步步模仿來的,生活中到處不都是學習借鑑嘛。有句老話怎麼說來,照着葫蘆畫瓢,雖然不甚完美,但有些人他連筆都懶得拿。


       提到dubbo我不得不說下敏捷開發,如今不少公司提倡敏捷開發,包括咱們公司,老總會議也是提倡咱們要作敏捷開發。起初我是不大關注這個詞語的還特地百度了一下,以下:敏捷開發以用戶的需求進化爲核心,採用迭代、按部就班的方法進行軟件開發。在敏捷開發中,軟件項目在構建初期被切分紅多個子項目,各個子項目的成果都通過測試,具有可視、可集成和可運行使用的特徵。換言之,就是把一個大項目分爲多個相互聯繫,但也可獨立運行的小項目,並分別完成,在此過程當中軟件一直處於可以使用狀態。


       可是就目前來講,公司的項目不少敏捷性都不夠好,的確咱們開發以用戶的需求進化爲核心,採用迭代、按部就班的方法進行軟件開發,但後面的內容咱們執行的很很差,或許咱們缺乏一個好的架構師,也許咱們缺乏一個好的前端設計師,更甚至咱們缺乏一個好的核心程序員。做爲一個一線的程序員,你要知道一個功能要改N+1個項目的時候你是奔潰的,當你將要完成這個功能,上面說需求有變更時你是淚奔的,即便你憤怒也僅僅是你本身的事。你永遠不知道這樣的需求還有多少,而大多數程序員也就是這樣過來的。


       出現問題老是要解決問題,提出統一合理的解決方案,若是這件事如今沒人作,對於你來講這未嘗不是一次挑戰或者是機會。程序員的思惟不只僅是完成本職工做,而應該是勇於突破本身,挑戰公司現有平臺的缺陷和不合理的地方。程序員的經驗不是隨着歲月的流逝而累加的,也就是說經驗的增加並不與年齡成正比的。不是說你工做3年就必定能成爲一箇中級或者高級程序員,也不是說你才工做2年就不能夠成爲一個架構師。仍是那句話,
涓涓細流,飲多少全憑心意。你掌握多少東西在心而不是在年齡。


       安逸的公司環境會是一個不求上進的程序員,變得更加懶惰,我甚至沒法想象若是脫離公司去其餘項目公司會是怎樣一種情景。因此,我時常跟身邊的同事說,不要僅僅作好本職工做就ok了。不要空閒的時候無所事事,瀏覽新聞,逛貼吧,這個年齡段你應該成熟的去面對和規劃本身的職業生涯了。不要以爲本身多作了就是吃虧,要知道作了就是本身了,年終總結不是寫個一二三那麼簡單。不要慶幸,上級就給我分配了一點任務,又能夠無聊發呆看新聞了,卻不知,上級可能以爲你根本沒法承擔此任務(這樣你還感到慶幸嗎)。


       你得嘗試着去改變,不能由於公司怎樣你就能夠這樣一直下去。事情老是朝着好的方向去發展的,你要真正把本身當成公司的一員,而不是一個打工的。你要把公司向好的一面去推動,其實很早有就發現公司平臺有不少差強人意的地方,只是的確本身水平有限,有改造的想法,可是沒有實施的能力。


       你得嘗試着去改變,你要把平臺複雜的問題簡單化,重複的任務統一化。我以爲這纔是敏捷開發的根本,用最少得時間成本解決相對複雜繁重的問題。最近也在研究一些架構性的我東西,也是得益於李智慧老師的大型網站技術架構,很系統很全面。什麼是架構?有人講, 說架構並非一 個很 懸 乎的 東西 , 實際 上就是一個架子 , 放一些 業務 和算法,跟咱們的生活中的晾衣架很像。更抽象一點,說架構其 實 是 對 我 們 重複性業務 的抽象和我 們 將來 業務 拓展的前瞻,強調過去的經驗和你對整個行業的預見。java

<ignore_js_op>  


        一個合理的架構設計後期是能夠避免不少沒必要要的繁重的任務。從你的項目搭建,服務化組件,消息中間件,數據庫中間件,配置管理,甚至於項目安全,高可用,擴展性,伸縮性等等都是架構師所考慮的範疇。固然一個合格的架構師關注的是人而不是產品,必定要堅信:一羣優秀的人作一件他們熱愛的事情,必定能取得成功。無論過程多麼曲折,無論外人開來多麼難以想象。一個好的產品,驅動應該是人而不該該是其它。一個優秀的架構師,期望優秀的人來幫本身作事,不如作成一件事讓本身和參與的人都變得優秀。


        成長是須要過程的,更是須要用心的,因此不要在最好的年華浪費了你最充沛的精力。
       
        前幾天一個朋友碰巧問到我併發的問題,其實這方面我也接觸的比較少,至少到目前爲止公司的項目數據庫都沒有作主從、讀寫分離,又何來的高併發讓你去實踐。但這並不表明有些東西你就不能去接觸,將來和機會老是留給時刻有準備的人。高併發其實虛無縹緲東西,不多有網站真的須要這些東西,並且其中不少技術,其實你已經在用了,只有不多的網站真的能達到高併發, 因此不少人沒有接觸也是常態。

        其實對於這個問題,我是很差意思回答的。雖然系統中也用到了相似的技術,好比頁面靜態化,本地緩存服務,Nginx反向代理,靜態文件壓縮以及動靜分離。固然還有,消息隊列,文件服務器,數據庫主和集羣,應用負載均衡集羣以及分佈式服務等等。說到底,解決高併發無非是上面技術的羅列,程序員要作的就是把每一個技術具體實現。 

        對於一些創業型公司來講,免費的永遠是最好的,linux、nginx、tomcat、mysql、java,redis......各類開源免費的工具。在保障可用的狀況的,儘可能使公司的利益最大化。

       因此做爲一名合格的程序員,你不只僅要會寫幾行代碼,掌握以上開源的工具也很重要的。對於linux的關注,其實也是在去年開始。因爲win2003的再也不維護,我狠狠心把服務器系統換成了linux系統。從開始的不習慣到如今的駕輕就熟,說真的,不要畏縮不要不敢去嘗試,習慣這東西說白了就是懶惰,明知道有更好的解決方案,更好的結果和將來,你就不去作,除了懶能是什麼?

       再長的路一步一步也能走完,再短的路不邁開雙腳也沒法到達。可能這句話用在這裏不是那麼恰當,只是讓你們明白一點,勇敢的走出一步,興趣永遠是最好的老師,固然一步步收穫的喜悅也是你前進的動力。



       說了這麼多,有點亂,但都是平時的一些思考。這裏引用博客園的一段話:mysql

<ignore_js_op> 


        如何不停的學習和提高,這裏以Java語言爲例,首先, 必定要 理解 JAVA;第二步,JAVA完了之後,必定要 理 解 JVM;其次,還要 理解 操做系統;再次仍是要了解一下 Design Pattern,這將告訴你怎麼把過去的經驗抽象沉澱供未來借鑑;還要學習 TCP/IP、 分佈式系 統、數據結構和算法。


       最後就是我想說的就是今天我所說的可能一切都是錯的!你們經過不停的學習、練習和總結, 造成本身的一認知體系,謝謝你們。linux

相關文章
相關標籤/搜索