最近看了 左耳朵耗子
寫的一段話:
所以,我和一些人開玩笑說,我們可能都是在寫一樣的 for(int i=0; i<n; i++) 語句,但是,你寫在那個地方一文不值,而我寫在這個地方,這行程式碼就值 2000 元。不要誤會,我只是想用這種“鮮明的方式”來加強我的觀點。
讀到時,腦袋一陣暈眩。為了讓你往後的日子不被嫌棄,現在自己必須抓緊時間沉下來。
程式設計時間越久,越覺得需要回頭看,啃基礎。寫業務的時間再久,天花板的高度也不會被你撐高。
業務的編碼,為我帶來的一些成長是:如何更好的程式碼複用;如何將具體的業務進行拆分成程式碼模組;如何組織專案的結構,方便快速開發與維護;如何進行日常的運維;如何配置相關的系統、環境等等。
那麼這些技巧學會之後,該如何往深入走?特別是當前雲技術的發展,讓很多基礎的運維工作變得相當簡單。如果僅僅是掌握了基礎的編碼工作,隨著時間的增長,5年、10年程式設計師的競爭力如何體現?每當想起這些,不能不讓人焦慮。
但是過份的焦慮,會讓人喪失學習能力。我們需要在認識到自己侷限的同時,腳踏實地的耕耘自己這一方水土。不要想著速成,現在知識付費很流行,但是你花錢買別人嚼過的東西,提高不了自己。問渠那得清如許?為有源頭活水來。特別是做為程式設計師我覺得更應該自己去研究、去嘗試、去思考。
社會並不會嫌棄變老變慢的程式設計師,而是會嫌棄哪些年齡變老了,技能卻依然沒有變化的人。
程式設計師
當別人問我的職業時,我會驕傲的說:程式設計師。可是仔細想想感覺自己不是程式設計師。為什麼?並不是僅僅因為月薪沒上5萬,而是:
程式 = 資料結構 + 演算法
我在想我寫的程式碼中,哪些包含了資料結構,哪些又包含了演算法呢?都不好意思繼續往下想了,我一定是個假的程式設計師。
為了讓自己成為一個真正的程式設計師,不是薪水上而是能力上的。需要改變自己的學習、工作策略。多去學習需要不斷練習與思考的技能,特別是需要思考的東西。因為大部分人不願意思考,多思考一份就比別人多一份優勢。將重複性的工作最大程度自動化,不要浪費自己寶貴的時間。
學習,需要先找到目標
學習需要具有目標性,要不然就是芝麻西瓜都在撿。當前很多公司都在強調全棧工程師,但是根據個人發現,真正的全棧一定是某個方面很牛,其它方面則比較平均。而很多公司要全棧的原因(特別是小公司),僅僅是為了要一個什麼都能夠做點的工程師,讓你今天做做h5,明天搞搞小程式,後天再寫個api。
上面的情況不會讓你發展成為全棧,會讓你發展成為三不像,沒有自己的核心能力區。現在的技術不管是前端還是後端,都變得越來越細緻,都需要投入大量的時間才可能成為專家。
你是想在某個領域成為專家,還是成為愛好者,會讓結果千差萬別。在開始前,先定位自己當前所處位置以及目標。找出二者之間的差距進行彌補。
我一邊覺得慶幸自己在現在意識到了這一切,另一方面又對自己以前的種種無知表示後悔。知識應該由點極面的逐步展開。用php來講,我肯定第一步是寫好php程式碼,學好物件導向與設計模式,這一部分工作在業務階段可以很好掌握,那麼之後php相關的效能問題、擴充套件開發問題就需要逐步去深入瞭解,這就需要去學資料結構、演算法、c語言等等知識。這是由php帶來的深入方向,對於橫向的,就需要去了解linux、mysql、nginx相關的知識點。這樣一步步下來完成自己的深度與廣度。
好的知識與技能都不可能短時間學成。讓自己變得具有專業性、稀缺性很重要。