畢業就能拿到上萬薪資的程式設計師他們都做了啥?

智雲程式設計發表於2019-03-13

每個程式設計師都是從學校裡走出來的,那麼現實工作中和在學校裡會有什麼不同呢?讓我們來看看三位程式設計師說的:

程式設計師A:在學校程式設計的時候,有著一頭烏黑的秀髮,現在髮際線慘不忍睹;

程式設計師B:在學校的時候沒錢覺得配不上女神,現在有錢了覺得好像並不是錢的問題?

程式設計師C:在學校起碼能靠幫女同學修電腦和炫技裝X,現在在公司連個可以裝X的物件都沒有;

畢業就能拿到上萬薪資的程式設計師他們都做了啥?

在學校裡程式設計,不外乎三種情況:

一是課堂或課後作業;

二是期末考試或畢業設計;

三是課餘時間參與維護的開源小專案。

開發團隊要麼是學校社團成員,要麼是同宿舍的幾位室友,大多數情況下都是一個人同時身兼數職,承包了產品經理、開發工程師、測試工程師甚至還包括美工的所有工作。

在學校裡程式設計,只要根據老師佈置下來的課題,實現主要功能,經簡單測試可以執行就算及格。你可以各種花式炫技,也可以隨便應付了事,因為在學校裡程式設計最主要的目的是:能夠將課堂上或者自學到的理論知識付諸實踐,檢驗自身對於知識的掌握和運用程度。

畢業就能拿到上萬薪資的程式設計師他們都做了啥?

在工作中的程式設計除了文首說的直觀的不同當然還存在著許多深層次的不同,這些不同只有經歷過的人才能明白。如果你正打算去做一名碼農,以下我的總結會對你有一些作用的,具體有以下幾點:

1. 工作中工具的使用呈現多樣化

在工作中,需要使用公司專門要求的工具來完成程式設計,同時還有可能需要用到多種工具,這就需要程式設計師對於工具的熟練運用呈現多樣性;而在學校程式設計因為實現的業務功能單一,所以使用的工具也較為單一,基本都是主流的IDE,相對要容易得多。生動一點地說就是在學校裡,你可能只用一個電飯鍋就能解決一頓飽飯,而在工作中,你可能還需要烤箱、打火灶、湯鍋、燉鍋等等更多的工具來完成。

2. 工作中,程式命名規範很重要

在工作中,程式碼需要遵循一套嚴格的編寫規範,因為在工作中的程式碼不是屬於某一個人的,它是需要大家共同維護的。阿里巴巴的開發團隊就有專門的開發手冊,每行程式碼都需要經過至少一次其他人的Code Review,因此,遵守命名規範利人利己。

在學校裡寫的程式碼可能沒幾個人會看,命名可以隨意起int a、int b等等,最後只要實現功能就好,並且過後很少會被再拿出來看。而在工作中,從來不寫註釋或者簡單註釋幾句的程式碼,一段時間之後可能自己都看不懂了,這種情況是不被允許的,因為這些程式碼可能會被持續使用很長的時間,需要不斷地維護和更新。從某種程度上說,你寫出的程式碼就代表著你擁有的專業態度。

畢業就能拿到上萬薪資的程式設計師他們都做了啥?

3. 工作中,測試的重視度高於開發

在工作中,相比開發的時間,寫單元測試和介面測試的時間只多不少。一行程式碼可能需要好幾行程式碼、好幾個用例來測試,通常需要使用工具,按照規範的流程來進行除錯。並且,在工作中,測試是重於開發的。就像生產一個玩具小汽車,設計出來,還要測試它能不能跑,跑得快不快,遇到撞擊會怎樣等等,在工作中的程式在投入使用前同樣也是經歷了無數次的測試,才最終與使用者見面的。而在學校,大多數情況是這樣的:程式碼寫完執行一下、肉眼看一下,偶爾會使用工具,碰到bug可能會蛋疼一下午。

4. 工作中程式碼量貴精不貴多

在工作中,解決同一個問題,能夠用更少的程式碼的人水平更高,你寫的每一行程式碼都必須保證是精華。因為在工作中程式碼寫完並不代表結束,後期可能還要持續維護,就算你離開了,也要保證接手的人能讀懂,所以寫的程式碼貴在精而不在多。

在學校裡程式設計,可能寫的程式碼越多,會感覺自己越牛逼。有時候一天能擼上千行程式碼,感覺自己太牛X了,然而這在工作中並沒有什麼用。

5. 工作中,團隊合作是常態

在工作中,你負責的往往會是一個大工程中的一個模組。完成一個大工程的開發工作是一個團隊的事情,因此你必須學會團隊合作,也就是說你的程式碼要讓更多的人看懂,也能讓更多的人拿來即用。

在學校,教的都是一些經典演算法,解決些通用的問題,但是當面臨實際的問題時,這些往往沒有卵用。舉個例子,比如排序演算法,課本上有很多,有些同學甚至能將各種排序演算法都默寫出來。可他們永遠不明白關係型資料庫是如何實現排序的,因此當你問他們如果記憶體裝不下所有資料該怎麼排序時,他們只能一臉懵逼地望著你。

畢業就能拿到上萬薪資的程式設計師他們都做了啥?

6. 工作中,效能要求更高

在工作中,可能一行程式碼面對的使用者會達到上千萬甚至上億,所以就要求開發者在開發的時候要把很多可能會出現的問題考慮進去。也就是說如果你編寫的是一個把豬肉放進去可以做成火腿的程式,你還要考慮到如果有人放進去的是一袋麵粉,程式是否能夠完成對它的加工。

以12306為例,在使用阿里的雲端計算平臺之前,每年到春運的時候網站幾乎都會因為訪問量過大而癱瘓,鐵道部受到鋪天蓋地的吐槽,這可能就是當時開發者沒有考慮到或者是沒有解決的問題。後來,隨著阿里的雲端計算平臺的支援,很好的解決了訪問量過大的問題,還提升了網站的效能,極大的提高了網站的承載量及使用者體驗,口誅筆伐明顯平息了很多。

而在學校裡,我們寫的程式碼充其量只是個小玩具,使用者量一隻手數得清,甚至在變成玩具之前就已經夭折了。在學校裡如果你想實現蘋果去皮的功能,只考慮這一個功能就好,很少需要再去考慮如果是一個橙子,該怎麼辦。

7. 工作中,時間分配多元化

在工作中,你的時間會被分配到多個環節,包括瞭解精準的業務目標,預研需要用到的技術手段、如何選型、詳細設計、編碼實現、配合測試、上線及上線後的維護等等。

每一步都都要評審,降低返工風險,具體到每一個專案時遇到的問題可能會更多,比如怎麼測試,怎麼部署,怎麼更新,怎麼監控和保證健壯性、效率以及規模。使用者量多了怎麼辦,被攻擊了怎麼辦,你依賴的東西掛了怎麼辦,你部署的環境變了怎麼辦。更深層的考慮是不是要開源?這個東西能維持幾年?有啥競爭性的產品?他們都怎麼樣?下一步該做啥?等等等等……會多出來好多事情。所以工作中,coding所分配到的時間可能只是你的工作時間很少的一部分。

在學校裡,所謂的程式設計更多的時間就真的只是coding,或者是通過演算法解題,一個小的演算法解決一個問題等等。這跟實際工作中的強度和時間分配相比,有很大差別。

8. 工作中,對程式碼質量要求更高

在工作中,程式碼要考慮可用性、易用性、安全性、健壯性等因素。假如你身處金融機構,哪怕一行程式碼出錯,都有可能導致上百萬、上千萬甚至更多的資金損失。所以,對於你所擼的程式碼一定要常懷一顆敬畏之心,要經得起考量,質量比數量更為重要。

“莫愁前路無知己,總有bug跟著你”,說起來也是蠻心塞的!

而在學校裡,只需要考慮指定的功能是否得以實現即可,即使存在問題也只是重新修改,或者請老師給予指正,不會帶來實質性的影響,因此在Coding的時候也不需要非常的謹小慎微。

畢業就能拿到上萬薪資的程式設計師他們都做了啥?

9. 工作中,程式碼會帶來直接收益

在工作中,作為程式設計師的你,程式設計是你安身立命、養家餬口的基礎,也是在職場彰顯個人才華的根本,對於整個職業生涯的發展發揮著至關重要的作用。如果在IT公司或者網際網路公司任職,技術太水的話是過不下去的,輕則拿不到理想的收入,重則與心儀的公司無緣。很多人都知道程式設計師的收入比其他工種普遍偏高,其實他們的投入成本也極大,可能每週工作996或者997。好在收入與所付出的努力能夠成正比。

在學校裡,完成作品帶來的可能僅僅是精神上的愉悅,或者是得到老師的褒獎及獎勵,與工作中的直接收益結構是完全不同的。也就是說:在工作中,你在程式設計上的造詣越高,一般都會獲得相應越多的收入。

自己是從事了五年的前端工程師,不少人私下問我,2019年前端該怎麼學,方法有沒有?

沒錯,年初我花了一個多月的時間整理出來的學習資料,希望能幫助那些想學習前端,卻又不知道怎麼開始學習的朋友。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901074/viewspace-2638292/,如需轉載,請註明出處,否則將追究法律責任。

相關文章