有關程式設計師的十個預言

技匠發表於2017-03-05

  作為程式設計師,我們總是身處於如萬花筒般變化無常的技術世界裡。我們可能也是那群能夠最早感知到科技變化所帶來巨大影響的人。然而,面對這一波又一波向我們襲來的技術變革,我們是否也能從中窺見一絲規律,從而使自己更好地應對未來呢?讓我們開啟腦洞,預測一下未來10年,程式設計師這個職業可能發生的變化。

 程式設計師將變得更加全能

  許多文章或藝術作品中將程式設計師的未來描繪得過於科幻或戲劇化,而基於我們看到以及正在發生著的現實,有一點卻是不爭的事實——程式設計師將變得更加全能。如果你是一名iOS程式設計師,你一定能感受到最近幾年市場的變化,從對iOS程式設計師趨之若鶩,到今天所謂網際網路寒冬之下的少人問津,其背後的原因之一竟是市場上數不清的培訓機構,像流水線般生產出過盛的iOS開發人員所致。同樣,對於設計師群體而言,越來越多的公司對他們的要求已從單一的UI設計,轉向能夠同時具備前端開發能力。

  變化來得如此之快,很多程式設計師或設計師都對此抱怨連連,但這些變化卻恰恰反映了所有與技術相關的行業門檻都在不斷降低,以及專業領域間正在不斷地產生融合。藉助那些唾手可得的學習資源,以及易發強大易用的工具軟體,未來的程式設計師將會具備更多專業技能,他們在深入掌握一門程式語言的同時,還可以熟練運用2-3門不同的程式語言以解決不同領域的問題,他們也會努力將自己的技能棧擴充套件到產品、設計、市場、運維等各個領域,複合型的程式設計師將會受到更多企業的歡迎。而擁有至少一名複合型的程式設計師更將成為那些初創企業的標準人員配置。

 程式設計師將更具多樣性

  未來的世界將會變得非常有趣,越來越多新興的領域將會出現,而那些傳統行業和專業領域也將被不斷細分,以滿足人們的差異化需求,世界將因此變得更加豐富多彩。而在此過程中,程式設計師無疑將成為這一變化的主要推動者,而他們的職業也將隨之呈現出多樣化的發展趨勢。今天我們能聽到的很多技術領域的新鮮詞彙,如:大資料,機器學習,雲端計算,人工智慧,VR/AR,區塊鏈,無人駕駛、物聯網等等,未來都將成為可以深入研究的領域和發展方向,它們的深度的和複雜程度也絕非掌握一門程式語言所可以比擬的。過去精通一門程式語言便能通吃各個行業和領域的時代將一去不返,取而代之,程式設計師將變得更加“專一”,他們會盡可能早地確定自己的專業方向,並花費大量時間,努力去成為某一方面的專家,他們甚至可能不再被稱為程式設計師,取而代之的,一些新的稱呼將會出現,比如在大資料領域,我們會把那些從事資料分析的程式設計師稱作資料分析師或資料科學家,同樣的,在其他領域也會有更多新鮮詞彙被用來代表程式設計師吧。

 工具大爆發讓程式設計師們效率倍增

  我們正處在一個工具大爆發的時代,大量開發、設計、協作工具不斷湧現,但我想說這還只是一個開始,越來越多針對細分領域的優秀工具會被開發出來,經過一番廝殺,一批偉大的工具將會出現。這些工具通過充分利用強大的硬體能力而變得更加智慧,它們甚至可以替代很多原來必須由程式設計師完成的工作。未來所有優秀的工具都應該是外掛化的,程式設計師們不會再使用那些大而全的笨重軟體,而是根據自己的需求,通過安裝外掛來組合出最適合的開發環境,這也使得程式設計師們的創造過程變得有趣而高效。

 雲服務加速創新

  另一個巨大的變化則來自雲服務,我們已經將雲服務比作日常生活中的水和電,但真正能夠通過使用它們創造出優秀產品和服務的,仍然是程式設計師自身。雲服務將能為開發者提供大量即插即用的基礎構件,這使得程式設計師們不再需要重複發明輪子,再去創造諸如資料儲存、影象處理、資料加密等基礎服務,一且都將以API的形式在雲端開放,基於這些基礎服務,產品的研發與迭代速度都將明顯加快,而成本卻因雲服務的按需收費而得到降低,這無疑將加快創新的步伐,相信越來越多優秀的產品和服務會不斷被開發出來改善人們生活的各個方面。

 程式設計師的職能進一步擴充套件

  今天,網際網路行業無疑是程式設計師最集中的地方,幾乎所有的一切都由程式設計師創造和驅動。而在這杆網際網路大旗下,諸如雲端計算、大資料等網際網路技術與思維也正在快速滲透幾乎每一個行業,越來越多有遠見的企業提出了由IT驅動業務發展的公司戰略,IT部門在那些傳統行業中正變得越來越重要,他們不再只是負責資訊系統維護的輔助部門,而需要真正理解業務,並推動業務在網際網路背景下的革新。程式設計師作為IT部門組成的基石,他們的職能在此期間也將得到進一步擴充套件,他們需要能夠將行業思維與程式思維緊密結合在一起,通過技術手段創造性地去解決企業或行業的痛點。他們可能會在整個產品或系統的生命週期內同時扮演專案經理、需求分析師、設計師、開發人員、測試人員以及運營人員中的多個角色(角色的劃分不再像過去那樣明顯),程式設計師們也需要能夠掌控全域性,而不僅僅侷限於程式碼的編寫之上。

 程式設計師成為更多人的終身職業

  程式設計師曾一度被認為是一份吃青春飯的工作,很多人甚至感慨,到了30歲自己還在程式設計會是一件很失敗的事情。但隨著程式設計師與越來越多行業的深度結合,他們的價值被更多企業認可,甚至變得不可替代,無論在物質上還是職業發展的空間方面,他們都將獲得更穩定的發展,這也使更多的人願意將程式設計師作為終身行業。只是隨著年齡的增長,他們可能不再被稱為程式設計師,取而代之的可能是XX專家,XX科學家,技術總監等等,但他們並沒有脫離程式設計師的本質,恰恰相反,他們不會像以前那些走管理路線的IT人那樣,輕易地丟棄技術,相反的,他們會更關注並擅長通過程式設計去解決關鍵問題。他們既是程式設計師,卻又是超越程式設計師的行業專家或管理者。

 自由程式設計師將大量出現

  近年來,由於一線城市IT用人成本的顯著提高,越來越多的大型企業正在或計劃將他們的IT部門進行拆分,成立專門的軟體服務公司,並將主要開發團隊由一線城市向二線甚至三線城市遷移,這本質上也是IT外包的一種形式。而更多中小企業在沒有自己的研發部門,以及IT經費受限的情況下,也逐漸接受了採用眾包解決企業內部IT問題的方式。隨著猿團、碼市、豬八戒等IT眾包平臺的不斷成熟,以及遠端辦公條件的成熟,軟體開發服務將越來越多地由自由程式設計師或他們組成的開發團隊去完成,程式設計師的用人市場也將逐漸流向薪資水平總體偏低的二三線城市,自由程式設計師將會在那裡大量出現,他們不再受到地域的限制,大部分人將在家辦公。

  而者帶來的另一個變化則是:女性程式設計師的比例將大大提升。我認識不少優秀的女性程式設計師,她們完全不比團隊中任何男性程式設計師差,而且還總是能夠給團隊帶來一些驚喜,比如出於女性視角的優秀建議,以及更富情感的功能設計等等。自由程式設計師對於女性來說會是一個不錯的職業選擇,由於可以在家工作,她們能夠更好地兼顧家庭,也能根據情況,自由地選擇適合自己的工作時間和工作量。

 程式設計師更加國際化

  今年,我參加了一些技術大會,比如雲端計算大會、架構師峰會等等,在會上我經常可以看到用英文來進行演說的國外技術專家,但他們卻就職於像百度、阿里或華為這樣的國內公司。而我也曾和來自美國、德國、印度、新加坡、馬來西亞等不同國家的程式設計師一起合作過,大家可以打破地域或語言的限制,為了相同的目標或興趣進行很好的協作。

  同時,我們也看到越來越多的主流網際網路企業樂於將他們的核心技術開源,並藉助開源社群的力量推動一項技術的發展。今天,幾乎在每個技術領域,我們都能看到2-3個主流開源技術,越來越多的國內程式設計師也開始參與到這些社群,併成為這項技術的貢獻者。程式設計師正變得更加國際化,通過與國外優秀程式設計師的合作,他們可能成長為某一技術領域的專家,而且通過這種國際化的協作,能夠幫助他們建立影響力,從而獲得更多優秀的機會。

 出現許多偉大的程式設計師

  在你的心目中,一定會有幾位偉大的程式設計師,比如Linux之父Linus,Java之父James Gosling等等,他們對軟體領域的貢獻不言而喻,但說到對人類的貢獻,卻可能並不那麼顯著。而這一情況很可能在未來發生變化。

  遠古時代的人們只能創造出用於獵捕的長矛,而今天藉助來自各行各業人們的智慧,我們卻可以創造出高鐵、大型飛機、並探索宇宙。但要更進一步解決人類所面臨的那些難題,光憑某一群聰明人的智慧可能已經很難實現。未來那些偉大的程式設計師,他們的貢獻可能並不在於創造了一門新的程式語言或是一款優秀軟體產品,而是利用他們開創性的思想,藉助諸如大資料、人工智慧等技術,幫助人類戰勝疾病、能源、飢餓等世界難題。想象一下,未來的一天,某一領域的諾貝爾獎可能同時授予一名生物學家和一名電腦科學家,因為他們一起攻克了今天我們無法戰勝的疾病。

 程式設計全面普及教育

  國外越來越多的學校已經將程式設計作為一門必修課,納入中學甚至小學的教育體系之中。國內也有越來越多的家長開始讓孩子從小學習程式設計。程式設計並不是教會一門開發語言那麼簡單,它讓人們得到 一種新的思維方式,而這種思維方式如果能在更小的年齡階段掌握,會讓孩子們長大後更適應未來的工作和生活。

  同樣的在專業教學領域,我們也會看到大學內的相關科目設定將呈現多學科交叉的形式,這將更加貼近於實際工作的需要。新一代大學生可以同時選擇學習UI設計、程式設計、大資料、機器學習、人工智慧等學科中的兩個或者任意多個的組合。更多企業也會向大學生們提供諸如訓練營這樣貼近實戰的培訓。而更多希望自學程式設計的人,則可以藉助線上視訊、互動教學平臺、培訓班等方式來學習程式設計。總之,你將看到越來越多通過不同途徑掌握程式設計的人出現在我們身邊。

  程式設計師的未來會怎樣,短期內,它仍會是一個各行各業都會需要的熱門職業,但長期來看,隨著程式設計師這個職業本身的自我進化以及被納入基礎教育所產生的放大效應,未來,我們可能再也看不到傳統意義上只會寫程式碼的程式設計師,取而代之的,每個人都會是一名程式設計師,他們在各自專注的領域內,利用程式設計解決問題,實現目標,進行創造。

相關文章