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