近年IT行業(yè)火得不要不要的,媒體瘋狂報道,各種方式鼓吹年輕人、畢業(yè)大學(xué)生、轉(zhuǎn)行的人一定要學(xué)編程。時不時就會看到「程序員是最有錢途的工作之一!」或者「連奧巴馬都開始寫代碼,你能不開始嗎?」這類的文章,不管金錢誘惑、名人帶頭,仿佛全世界都在瘋狂做程序。就算到了現(xiàn)在,這樣的文章還是層出不窮。相比之下,許多人多自己的工作處境非常不滿:工作內(nèi)容乏味、薪水僅能糊口等等,看到文章里頭那些「高薪」、「出國工作」、「熱門職缺」的字眼,是不是都想轉(zhuǎn)行呢?今天就整理一些建議給大家。
第一件事,程序員都在做什么?
首先,程序員的領(lǐng)域有許多種,我以前被電影騙了,以為程序員就是電影里頭的黑客,只要幾秒就可以把非常大的系統(tǒng)架構(gòu)給完成,凡提到入侵、破解、滲透等字眼,黑客都可以輕松處理。但說實在,「黑客」只不過是程序領(lǐng)域其中的一個范疇,舉凡手機(jī)軟件、網(wǎng)站、數(shù)據(jù)庫維護(hù)、服務(wù)器、大數(shù)據(jù)等等,每一個領(lǐng)域都是一門專業(yè),不光只是我們平??吹健窯oogle 工程師」、「Apple 工程師」那樣簡單的分類法。
所以,當(dāng)各大媒體都在鼓吹轉(zhuǎn)職成程序員的時候,大部分談的都是軟件工程師(software engineer),最主要還是因為軟件是我們?nèi)粘I钭畛=佑|到的,包括桌機(jī)軟件、手機(jī)軟件、網(wǎng)站,都是這幾年如火如荼在發(fā)展的項目。
以下說到的程序員,指的都是軟件工程師。所以工程師到底都在做什么?就工作來說,不超脫以下五件事情:
1、跟其他工程師討論
2、編寫代碼
3、解決 bug
4、和用戶溝通
5、和產(chǎn)品撕逼以及被老板罵
對于水平比較初級的程序員,改 BUG 這個步驟會占掉絕大部分的時間,而且過程是非常無聊且漫長的。找一位工程師問他處理過最愚蠢的錯誤,一定回答是「為了找一個錯字耗了一整天」,聽起來有沒有很浪費時間?沒錯,就是這么浪費時間!甚至,各種錯誤都是「屋漏偏逢連夜雨」,每當(dāng)你最需要專心做其他事的時候,錯誤就出現(xiàn)了,然后手邊原本規(guī)劃要做的事情就這樣擱置了,進(jìn)度來不及,最后就被老板罵。這絕對是剛學(xué)程序開發(fā)的常態(tài)。當(dāng)然,在這些錯誤當(dāng)中,我們?nèi)W(xué)著如何寫出更好的程序,避開那些給自己埋下的地雷,減少錯誤發(fā)生的機(jī)率。隨著時間推進(jìn),我們就很少再犯這樣愚蠢的錯誤。
但難道高手程序員就不用改 BUG 嗎?很遺憾,資深的工程師不只要處理自己的錯誤,還要處理別人的錯誤,越資深遇到的問題越棘手。相信大家都知道不少企業(yè)會捧著大筆鈔票去找資深工程師,而這之中除了要寫新軟件以外,許多軟件開發(fā)都是要請人來擦屁股的。就像創(chuàng)業(yè)家面對各種經(jīng)濟(jì)、心理、社會的壓力一樣,工程師就是在面對各種程序上的問題,有可能是針對復(fù)雜程序當(dāng)中產(chǎn)生的一個 bug,也可能是公司服務(wù)采用的技術(shù)發(fā)生了問題。
例如很有名的 GitHub 攻擊事件,當(dāng)大家都認(rèn)為 Ruby on Rails 技術(shù)很安全時,突然被人抓出嚴(yán)重的安全漏洞,這時如果我們在公司中恰巧使用了相同版本的 Ruby on Rails,是否也因此要為公司解決這個問題?
因此,在工程師生活中,其中一大要務(wù)就是要解決問題。如果每天都在面對這些情況,自己是否還能樂在其中?
第二件事,不要被媒體的宣傳蒙蔽了雙眼
程序員薪水超高?
行行出狀元,所有領(lǐng)域都有辦法賺取高薪,但對程序員來說,情況比較符合「80/20 法則」,就像許多人說的:工程師餓不死,但也存不了什么錢。
不管是能力普通、只會聽命行事的程序員,或是遇人不淑、老板吝嗇的程序員,大概都無法取得高薪。若是半路出家的程序員,剛開始必然無法期待有超高的薪水,也很難找到商機(jī)立即創(chuàng)業(yè),尤其轉(zhuǎn)職的籌碼較少,不像其他工種的學(xué)生許多有底子、有作品,找工作較為容易。
要談高薪,還是得拿實力來談,若是無法針對中型的軟件項目設(shè)計出良好的構(gòu)架、或是對自己擅長的技術(shù)還不完全了解,那對于薪水還是不要有太高的期待,而這些都是需要經(jīng)驗累積的。剛起步的程序員,對媒體報道分分鐘年薪百萬這類天花亂墜的形容詞別想太多。
根據(jù)程序員的經(jīng)歷,剛起步的程序員只要有耐心,絕對能找到一份工作薪資可供生活,外加存點小錢。身為程序員,希望大家對普遍薪資較低的情況能有所抵制,對于過低的薪資要勇敢拒絕,接受的話只會放任無良企業(yè)繼續(xù)用相同薪資雇用其他程序員,加上自己生活質(zhì)量和士氣也會跟薪資一樣低落。
轉(zhuǎn)行成為程序員后是否美好?
真正轉(zhuǎn)行成為程序員了以后,問題才是接踵而來,很多事情等著探索。例如學(xué)歷就是一大難關(guān),程序員這個行業(yè)是看重學(xué)歷的,當(dāng)然這邊講的不是說一定要名校畢業(yè),而是「本科系」這件事情是相對重要。我相信很多人都吃過這個虧,轉(zhuǎn)行前一度以為可以靠一股熱情打天下,殊不知在面試許多公司時,老板聽到并非本科系都會眉頭一皺。有一位好心的老板在通知面試未錄取的時候,也同時說:“工資是和學(xué)歷掛鉤的,這是全世界通用的法則,未來你想成為資深開發(fā)者,這更是每位老板都會看的。如果沒辦法再修一個學(xué)位,至少要能提出證明你對這些機(jī)器、算法等硬底子的學(xué)問都有點基本認(rèn)識?!?/p>
雖然感到震撼,但這確實點醒了我,程序員并不是單單會一項技能而已,而是要對整個領(lǐng)域略知一二。
另一個難關(guān)就是要保持熱忱,程序開發(fā)技術(shù)推陳出新的速度超越其他領(lǐng)域許多,在工作壓力下,許多人會選擇不去學(xué)習(xí),導(dǎo)致進(jìn)步的速度跟不上整個世界翻新的速度,每一年都有爆炸性的改變。
假如我今天是專精 Web 前端的工程師,在這些技術(shù)出現(xiàn)時,勢必要了解他們要解決的問題、優(yōu)點、缺點等等,并決定有沒有需要使用這些技術(shù)來改變現(xiàn)有的構(gòu)架。例如公司現(xiàn)有構(gòu)架是直接用純 Java 實作變數(shù)即時更新,如果改用 Angular.js,可以大幅減少代碼的數(shù)量,直接交給該函式庫來處理。今天假如我們沒有特別探究這些技術(shù),未來在尋找其他工作時,技術(shù)主管也會期望你稍微了解這些技術(shù)。簡單來說,你不前進(jìn),別人也會推著你前進(jìn)。
這只是其中一個例子,程序開發(fā)領(lǐng)域在小地方都有無限多的變化,必須不斷學(xué)習(xí)、接受改變。轉(zhuǎn)職前,很多事情我們想的很美好,但在轉(zhuǎn)職后,才知道這個領(lǐng)域有他自己的法則,在這邊無法一一列舉,但不管怎樣,如果有決心、有熱情,這些難關(guān)對你來說只會是長遠(yuǎn)路上的一塊小石頭。
第三件事,你對寫代碼真的那么熱愛嗎?
對于熱情這件事,不得不再次提到二八法則,因為有 80% 的熱門技術(shù)是由 20% 的人所構(gòu)架出來。不管你未來所鉆研的是哪種技術(shù),總會在領(lǐng)域中有一些神人,他們可以 1 個人就超越 10 個的產(chǎn)值,對該技術(shù)有非常完整且深奧的了解,并且針對難懂的問題有非常優(yōu)雅的解法。這些人決定了未來技術(shù)的走向,例如目前市面上的大型商業(yè)軟件,許多都是由少數(shù)人將構(gòu)架完成,后續(xù)才是由許多工程師進(jìn)行維護(hù)、更新。
你想成為那些「大神」嗎?雖然許多程序員做了一輩子也沒辦法,但仍然要保有那「想要成為大神」的熱情,才能得到擔(dān)任程序員的快樂。在生活中程序員不只會遇到系統(tǒng)錯誤,更常會遇到使用者給予的意見,包括常在 Google Play 或 App Store 上看到的評論:「這軟件超爛」、「一分都嫌太高」等等,沒有重點卻嚴(yán)重打擊士氣,也是生活中的一部分。反之,尤其在大型項目上線,陸續(xù)收到使用者說回饋說:「使用上變得更方便了,謝謝你們!」這類溫馨的評論讓人非常有成就感。抑或是在鉆研特別技術(shù),而成功讓項目有大幅成長的時候,例如用 Go 語言將部分 Ruby on Rails 的 API 服務(wù)重寫,讓整體速度提升 20 倍以上,這些數(shù)據(jù)都會讓程序員非常有成就感,也是工作上很大的滿足。
反之,當(dāng)我們只想著要每天安安穩(wěn)穩(wěn)的寫代碼、維護(hù)項目,以上那些情況就絕對不會發(fā)生,我們整天只會自怨自艾,對現(xiàn)況感到不滿卻不改善,把所有的錯都推給使用者、推給主管、推給別人。那不如不要轉(zhuǎn)行了,不妨待在自己目前的位子上,好好過生活即可。一定要充滿熱情,想要成為「二八法則」中的領(lǐng)導(dǎo)者,跳進(jìn)程序員這個圈子才有意義。
小結(jié)
當(dāng)你決定成為一名程序員的的時候,你要對自己做的事情有熱情、想要不斷學(xué)習(xí)、發(fā)掘新知、研究新技術(shù),否則轉(zhuǎn)行一點意義都沒有,如果想安穩(wěn)過生活,不如就找一個無聊的工作,專心研究股市吧,這樣的生活質(zhì)量會比程序員好多了!
責(zé)任編輯:wv
-
程序員
+關(guān)注
關(guān)注
4文章
949瀏覽量
29746
發(fā)布評論請先 登錄
相關(guān)推薦
評論