最近看了一篇微信文章《程序員的恐懼》,感受在中國若是要作一生的程序開發,可不是一件容易的事情,須要放下不少東西,須要頂得住來自各方面的壓力。程序員
生活如此維艱,老是須要不少的經歷纔會完善人生,而若是隻是一直作開發,程序員的世界相對單一,在中國這我的情的社會裏,這樣的存在會隨着年齡的增加與這個社會格格不入的!編程
如下是轉載原文《程序員的恐懼》安全
國內的架構師到了三十歲之後不少就往理論上跑,而國外的架構師在往上發展的同時保持下面的編程體驗,因此國內多水王,而國外則多大師。---江南白衣微信
軟件開發一般被認爲是一個至關體面的工做,有很好的工資待遇,工做具備挑戰性,市場對程序員的需求量在增長,並且工做環境很安全。但這些都是表面的,真實的狀況是,幹了多年開發後,會不天然的進入思惟誤區,覺得本身在作正確的事,其實所謂的正確早已變成了對立面。架構
在中國是很難快樂的作一生的程序員的,若是您立志於此,那麼,很抱歉,恐怕沒有太多公司會認同您的意志。首先要肯定的一點是:代碼是廉價的。在國內程序屆不多有德藝雙馨的老程序員的(那些名氣很大的確實是不少都不寫代碼了,因此不能再稱爲程序員了)。編程語言
程序員不是藝術家,更不是醫生,您寫的代碼或許很快就被淘汰。前面是斷崖,後面是前仆後繼,說不定會在睡夢中忽然驚醒,而後發現本身冒了一身冷汗。工具
那麼,程序員會恐懼什麼呢?大概有如下幾點:佈局
但,咱們的目的不是對職業的恐懼,而是創建在恐懼之上的邏輯。性能
代碼是廉價的學習
在從事這個行業時,首先須要肯定的一點是:代碼是廉價的。在工做中,您所珍視的每一行代碼,在別人看來可能都是「垃圾」。或許在幾年後,從新審視當年的代碼,也會有不少不盡如人意。刪起代碼來,要像剪雜草同樣簡單。同時,從側面也說明了,您的工做也無非如此而已。因此,您所珍視的能力,也無非如此。
代碼就是這樣,一遍遍重構,一次次刪除,隨之而來的是一批批新人代替了舊人。沒有永恆的程序,也沒有永恆的程序員。全部的都不過是一個過客。有時,您會很自豪的說,某某軟件是本身的傑做,可是,過了一些年後,您還能說那些軟件是您寫的嗎?您所寫的部分早已經煙消雲散了。
代碼是廉價的,程序員也是廉價的。程序員無非是實現了他人的意志,扎克伯格的偉大是在他再也不是程序員以後,全部想成爲扎克伯格的程序員,他們的機率比中彩票還難。
軟件行業快速的更新率
軟件行業的更新率是在全部的行業中最快的,天天都有新技術出現,而後是新的概念,新的思惟,新的方式。想一想那些堅守在微軟陣營的老程序吧,他們可能感受本身過的很好,但也未必。互聯網就是這樣,新老技術互相更替。永遠不可能期望一種語言永遠興盛。如今想一想塞班系統,可能不少年輕人都沒聽過,可是它離開咱們也才幾年而已,但咱們感受就像是過了幾個世紀。
在技術的更新換代中,程序員不得不逼不得已學習或使用一個特殊的技術。任何一個開發人員都有他偏心的編程語言、工具和技術,一樣,他們也有不肯意去觸碰的東西。每一個人都知道這是一個誤區,但又有多少人勇敢的跨了過去?
軟件行業的另外一個更新換代是人員的更新換代。如今因爲互聯網的興盛,程序員基本上能夠批量生產了。如今無數的職業培訓機構和線上教育,幾乎是任何人均可以在很短的時間內勝任開發工做。從業者在膨脹,行業呢?今年的形勢不容樂觀。
逆水上揚
不是全部的老程序員都比新程序員更好,就如一個寫了三年VB的人不必定在開始一項新技術的時候比一個在這項新技術上寫了一年的程序員更加優秀。工齡並不能表明一切,也就是所謂的「逆水上揚」理論。
一個寫了多年VB(只是作個示例,並非說VB不行了)的程序員,在某一天突然發現再也沒法找到行業裏的工做了,而後轉到了例如VR這樣技術,兩個徹底不相干的技術,以前的工齡能說明什麼呢?我想你們都很清楚。可是,一個在新技術剛興起時就參與其中的新人,在隨着技術的成長中逐漸把握了核心的技術能力,他能不能替代那些以前有不相干程序經驗的老程序員呢?答案顯而易見。
因此,老程序員不要在爲本身的經驗沾沾自喜了。後生可畏啊!仍是那句話,互聯網行業,變化太快。
生活的壓力
純粹的程序員的工資是有上限的,由於中國不少公司是業務型的公司。實現功能,您會,他也會,可是您比他貴。並且,隨着年齡愈來愈大,會有不少事情分心,老程序員不再能像毛頭小夥子同樣沒日沒夜的加班了,一是沒那麼大的精力了,二是家庭也不容許。由此說來,公司更喜歡哪些程序員呢?老的,仍是年輕的?
沒必要驚訝,雖然市場對於開發人員的需求量很大,但仍有不少人仍會擔憂丟掉飯碗。隨着年齡增大,承受的壓力也愈來愈大,不再是一我的吃飽全家不餓的時候了。一個大齡程序員的失業是很可怕的一件事情。
不能作一生的程序員
廚師能夠作一生的廚師,年紀越大的醫生越值錢。對於那些經驗型的行業,他們纔是一技傍身。可是,程序員呢。我想沒有人會認爲程序員是一生的吧,尤爲是在中國。結合開頭的那句話,中國多水王,就是如此。
若是您在一個公司,您會發現您的領導或領導的領導,年齡並非很大,但也只能稱爲曾經的程序員了,他們再也不編寫代碼,慢慢的他們就不會寫代碼了。他們的今天就是新人的明天。現實就是這樣。
程序員的最高境界是不寫代碼,那麼程序員的核心競爭力是什麼呢?
堅持學習
技術人生如逆水行舟,不進則退。在必定深度以內成爲一個「雜家」並無什麼很差。其關鍵在於所學的跨領域知識,可否成功的運用到工做中去。這裏的跨領域,並非要求你們都成爲每一個領域的專家。最重要的是有一門敲門磚,學習的引子。要保持一種好奇心,舉一反三就是這個道理。
但這隻能支撐您工做的前十年,可能十年也顯得太長。一個老程序員是要承擔起更多程序以外的東西的。
不僅是在寫程序
程序員在職業發展中有兩個路子,一個是轉管理,一個是成爲技術專家。但中國不少公司把二者混爲一談了。也就是作技術的不僅是單純的研究技術,還要作些技術以外的工做,好比人員培養,需求分析,架構設計,部門交流等等。
在一件事上作久了就很容易進入思惟誤區,寫程序本質上是解決問題,很容易陷入到具體之中而忽略了全局。在技術精進的同時,關注些需求和管理上的學問,不失是個很好的補益。
中國是一我的情社會,有人的地方就有江湖,江湖就是人情世故。
視野和全局觀
高手在編程效率方面可能並不比普通程序員快多少,由於他們會吝嗇本身敲下的每一行代碼。這種「吝嗇」有兩方面的含義,一是項目的架構性和總體性考量,二是從性能和優化的角度進行Coding。其實,這裏所映射的是一個開發者的技術視野。
在肯定了總體以後,落實到具體的模塊實現,每一行代碼不但有上下文的考量與規劃,還要具有模塊間的總體佈局。這是模塊內的技術視野,好比接口的定義、註釋的可讀性、代碼的執行效率等。當你寫下一行代碼前,要考慮它是否會對整個系統形成影響,是否方便其餘接口進行調用,這些都是一個開發高手的「技術潛意識」。
不要拘泥於您如今的工做,每一個人都是須要成長的。一我的能成爲何樣,其實不少時候都在於他能看到多遠。
影響力
影響力與人際理解力、服務經神等素質的核心區別在於,影響力是爲推進他人達成我的所指望的目標而服務;而人際理解力與服務精神更可能是爲幫助達成他人的目標而採起行動。在程序員的成長中須要創建本身的影響力和他人的承認度。咱們所看重的成功人士不就是基於他的影響力而來的嗎?能量越大勢能越大。
最後,我想說的是,上面說的極可能都是錯的,事物總在發展的,沒有包治百病的良藥,世上也不會只有幾種疾病。我只能說,我所知的不多,最可能是個借鑑,供你們一笑罷了。世上的路不少,方法也不少。歸於人生,有太多的未知和不肯定。優秀的程序員都是聰明人,聰明人有不少捷徑。