野生猿類生存指南
序言
我,一隻常年混跡n線小廠的野生猿類,沒有名牌大學教育背景,沒有一線大廠工作經營。在浩瀚的原始森林流浪了十多年,經歷了北上廣的技術理想,享受過二線城市的悠閒安逸。戰戰兢兢的在35歲以上的高壓線年齡向前挪著步子。總結一句話,還行,活著。
近來看到許多人都在談論三十歲的坎,程式設計師的青春飯問題,忍不住也想冒個泡。大多都是小廠野生猿類的江湖史,角度不同,沒有任何高大上,希望對大家有用吧。
對國內軟體行業的理解
不論是北上廣還是二三線城市,國內的軟體開發,大多還是以資訊化系統的建設為主吧,專業類軟體比較少,如果你是專業類軟體的開發人員,如音視訊編輯器,推薦演算法,遊戲引擎等,恭喜你,大約你走了一條專精的道路,基本上是要向專業和學術方向發展了,這種職業發展和技術深度有關,基本也都在大廠研究院裡面混,我也不是很懂,就不瞎聊了。
我所經歷的公司,幾乎都是做資訊化建設的公司,以業務系統為主,說白了,就是做基於Web的業務網站[這樣說是不是太直白了,好像很low的樣子:( ]。軟體系統畢竟是為了傳統行業提供服務的,屬於輔助類的,所以對於不同行業的資訊化建設,有不同的套路,但是歸根結底,就是表單、流程那一套,畢竟再複雜的業務,都得經歷資訊採集、資訊處理、資訊儲存以及展示的過程,不是麼?
近年來,隨著移動和大資料等技術的發展(其實主要是受一線網際網路大廠的影響 ),業務類系統開始出現了服務化、支援移動等要求,一個業務系統,從一個獨立的網站逐步延伸到全端(支援PC Web頁面,支援移動端APP、PAD等 )。業務系統的部署方式,也從獨立的單一網站,發展到公有云部署(大多都是放在阿里或騰訊的虛擬機器上,部署本質沒有變 ),高階一些的,採用混合雲,微服務化,技術的實現方式進步了,部署的方式更加簡便了,運維起來更輕鬆了,當然,門檻也越來越低了,野生猿類自然也越來越多了。
另外,從技術實現上來講,軟體行業一直夢寐以求的軟體複用,在這個時代,得到了充分的體現,被推向了一個新的高度,主要包含兩個方面,一方面 開源的社群涵蓋的技術越來越廣,甚至可以說,你想要的,都能找到開源實現,通用技術,基本沒有不開源的,開源的甚至比個別公司開發的商業產品或框架更穩定。另一方面 雲服務的發展,很多事情都可以通過呼叫服務完成各種高大上的功能,比如直播,即時聊天,人臉識別、語音識別。這種功能層面的複用,使得開發效率越來越高,開發成本逐步降低,對一個系統的開發來講,門檻越來越低,直接導致的結果就是,技術不值錢了 。這大概也是很多職業程式設計師心理恐慌的原因吧 。
接下來,用軟體和資訊科技賺錢創業的人越來越多,創業公司遍地都是(屍體也遍地都是 ),老牌企業網際網路化、數字化轉型,各種技術人員為了生存,不斷玩新花樣,看上去新技術層出不窮,程式設計師們怨聲載道。慢慢的,你會發現,軟體服務向著幾個主要的方向在分化:
- 網際網路ToC的消費服務 ,這種服務一般都掌握在大廠手裡,為什麼呢,人家有平臺啊,小廠最多是在平臺上搞搞特色功能,靠平臺引流發展自我,這個時候,小廠的系統,變成了玩創意,而不是玩技術,產品經理最重要,比如在玩公眾號,小程式的,比如做淘寶外掛的
- 網際網路化ToB的服務 ,這種大多是面向傳統資訊化比較落後的中小企業,或者是不想負擔沉重資訊化建設費用的中小企業,這種SAAS化的服務,沒有什麼太多的個性化,基本都是平臺定義規則,入駐企業適應規則。
-
大企業或政務類業務系統的開發
,對於很多大型企業和政府來講,例如銀行、石油、醫院、政府、公安等,出於安全方面的要求,是不可能把核心業務系統公開到網際網路上的,而且隨著業務的發展,業務規則在不斷的改變,資訊化是這類企業運營的重要支撐,系統種類繁多,需求也層出不窮,很多軟體企業都是這些單位的系統供應商,也包含很多人力資源外包企業。
所以說,國內大多的程式設計師,應該都是在做業務類的系統,基本就是理解業務,程式碼實現,測試上線這個路子上不斷重複,收入的高低,與所服務的行業,所在企業息息相關
對職業發展的看法
分析完行業,再來說說程式設計師的職業發展,很多人都覺得三十歲是程式設計師的生死紅線,很多人也都在找三十歲以後的程式設計師來講故事,當然,有很多的牛人,站出來現身說法,告訴大家,三十歲不是問題,要持續學習,學好xx技術,你就是公司核心,不受年齡限制,其實我想說,您是技術佈道者,是大師,咱不這麼明顯的做廣告好嘛,我們智商還沒有低於零嘛。
我個人認為,程式設計師是個技術職業,和機械工程師、建築師其實沒有什麼區別。只不過呢,程式設計師這個職業上網比較多,歷史比較短,網上各種吸引眼球的思想太多,搞得大家對這個職業的看法兩極分化比較嚴重而已。平心而論,不就是個技術職業麼,幹嘛要神話他或者貶低他呢?每種職業,都有其發展的思路或者說是套路。對於小廠的野生程式猿來講,很多人不是很清楚,或者沒有仔細想過而已。所以說,程式猿的職業發展,還是要注重以下幾個方面:
知識體系和學習創新能力其實不論任何行業,任何崗位,都需要建立自己的知識體系,進而發展自己的學習和創新能力,現在很多野生程式猿,專案做了好幾個,會寫前端,會寫後臺,結果搞不清楚http是怎麼回事,連GET和POST都分不清,這就麻煩了。軟體,從需求分析到架構設計,再到開發,上線執行。至少要了解業務和技術兩個方面。軟體系統是用技術來表達業務思路的。沒有一個完善的知識體系,你怎麼知道如何用技術來表達你需要實現的業務呢?知識體系的建立,是個比較大的課題,這裡只說說知識體系的概念和重要性。就像做飯,先不論你做得好不好吃,你都不知道廚具怎麼用,火候怎麼掌握,別說做大餐,做熟都困難。所謂知識體系,就是字面的意思,系統化的掌握某個領域的知識。以軟體來講,伺服器、作業系統、瀏覽器、網路、通訊、編譯、資料結構等等就是構成知識體系的部分。全面系統的建立個人知識體系,是職業發展的基石。上面說過,現在很多底層的東西都是開源的,現成的,為什麼有人用的好,有人用不好呢,不是努力的問題,是基礎好不好的問題,具備知識體系的人,因為能夠理解技術的本質,所以學習一項新技術就會快,解決問題就會快,同樣,面對問題,會有創新的想法,慢慢的,也就走的越來越遠了。很多野生程式猿,都不是科班出身,沒有受過系統的教育(當然,受過的也許是沒學好哈 ),工作後也沒有這方面的意識,當然職業發展的路就越來越窄了,因為沒法跟上知識和技術更新被淘汰。因此,在工作中,逐步建立、完善不斷更新自己的知識體系,是非常重要的,需要在職業生涯中不斷堅持下去。
再野生也是要接受文明馴化的人類走向文明,是因為人類會發明和使用工具,更重要的是在這個基礎上的協作。現在的社會,分工非常細,很多行業都因為技術進步而發生了顛覆,很多職業也從神壇走下,為什麼,因為社會發展過程中,工具更新了,協作方式也變了。對於軟體來講,軟體工程就是軟體行業協作的方式。很多野生程式猿入行,被很多文章和培訓機構吹捧的個人英雄主義所洗腦,崇拜行業大神,覺得自己就是技術牛x就可以了,其他都與我無關,整天活在自己構建的軟體技術世界裡面。殊不知,這樣和社會越來越脫節,職業發展不下去,甚至生活中也碰壁無數。協作,才是王道 。
其實,現在的軟體開發,技術框架大都是用開源的,最多就是再重複造個輪子(模仿秀技成分居多 ),純粹技術上講,真沒什麼可以引以為傲的。會用菜刀就是好廚子麼?顯然不是。有個很常見的笑話,公司做什麼業務呢,是給xx行業做xx業務系統,通過業務系統規範xx業務的過程,提高業務處理能力和效率,結果,公司自己的開發過程都一塌糊塗,連程式碼版本都管不好。所謂的文明馴化,就是不要在野路子上越走越遠,而是要根據實際情況,結合軟體工程的思想,逐步摸索出適合公司和團隊的協作方式,適應不斷變化的需求。這裡的協作,包括建立規範可重複的過程規範、技術規範,推廣應用相關的支撐工具或系統,擁抱變化,關注業務,關注過程優化,建立持續可交付的機制。這些協作過程,隨著業務的發展,不斷更新,完善。
三十歲是分水嶺,所有行業都一樣都說程式設計師是吃青春飯的,當年齡大了,無法適應無休止的加班熬夜,就像轉管理,可是管理崗位又少,很多人又不得不轉行,由此理論來證明,程式設計師是吃青春飯的。這樣說對嗎?對,也不對!技術類的崗位,其實最怕的,就是幹了十年,重複著第一年的工作,而你自己卻沒有任何想法和提高,這樣的結局,就是當年不能持續的通過體力勞動進行產出時,只能轉崗或轉行。都說醫生越老越香,可是反過來想,如果這個醫生在年輕的時候就沒有一個持續的積累和發展,哪個病人會給他機會,讓他在這個崗位上堅持到老呢?
三十歲,是而立之年,對於很多人來說,三十歲意味著結婚生子,有了家庭的羈絆,體力和精力逐步的有衰弱的趨勢,這都是正常的,不僅僅是IT行業的人是這樣的。在一個行業幹一輩子,就要有幹一輩子的能力和價值,這裡要包括不斷更新自己的技能,積累自己的經驗,創造更大的價值。對於一個程式設計師來講,三十歲,近8年的工作經驗,如果在一個行業中,應該是個不錯的專案經理或者架構師。然而,這僅僅是開始,這個年紀,如果自身努力,應該是剛剛對自己服務的行業有自己的深入思考,又有一定的經驗,逐步開始實踐自己的想法,為企業創造更大價值的時候。對一個企業而言,這個格局的人,好不容易培養出來了,誰會放棄呢?另一方面,對於一個創業公司來講,這樣的人是一大助力,誰會不要呢?試問,三十歲了,是過不去公司的坎還是過不去自己的坎?
能貢獻利益和價值衡量標準對於一個企業來講,最重要的是什麼?是產生價值,通過產生價值獲取利潤。程式設計師,作為一個創造和生產單元,最大的作用就是生產出客戶所需要的系統,為客戶帶來價值,這叫共贏。而在這個網際網路化的社會,老闆和員工之間,不再是單純的僱傭關係,而是合作共贏關係。大多數野生程式猿,因為所在公司和環境問題,沒有人會來講這些HR灌輸的東西,都以為自己有技術,所以老闆應該為此買單,應該給與更好的待遇。反過來想想,我們產生的價值在哪裡?是每天寫的程式碼麼?所以說,每個程式猿,都應該不斷的反思與總結,自己在企業中產生的價值是什麼,如何產生更大的價值,當價值變現,就是自己獲得回報的時候。這個時候,不論是在企業中的地位和收益,都會是你想要的。技術的輸出和變現,是每個技術人員都應該思考的問題。也只有這樣,自己才會有一條可持續發展的路。
結束語
每個人的機遇不同,環境背景不同,所以每個人的職業道路都是不同的,不斷思考和總結,正確的價值觀取向,才是不斷把路走寬的源動力。生存是艱辛的,也是充滿未知和樂趣的,作為一枚野生猿類,可能無法得到更多的指導,沒有固定的套路,但是隻要不斷的發掘自己的價值,創造價值,不論如何,都不會混的太差。希望大家都好!