如何成為一名優秀的軟件開發工程師

2020-09-15

來源:武漢必騰

瀏覽次數:405

      在互聯網軟件開發行業,一周不學習,就會讓你失去競爭力,長此以往,不但技術和思想沒有進步,還會和社會脫節,從而被社會淘汰。
      作為一名軟件開發工程師,踏上了編程之路,也就意味著你選擇了一種終身學習的生活方式。工作中,公司會規范你的職業習慣,會要求你嚴格按照代碼規范作業,也會不停催促你學習行業新的技術,很多人對此會煩惱,甚至厭惡,但這不僅是對你自己技能的提升,更是讓你離優秀的開發工程師又進了一步。
      很多人以為,在軟件外包公司,項目多,學習得就快,但是實際情況卻不盡如此。對開發而言,如果不對自己嚴格要求,詳細規劃,就沒時間去研究代碼架構、編碼規范,這對開發人員的職業生涯是致命的起點缺陷。起點不嚴格要求和約束自己的代碼習慣和能力,將是后患無窮。如果不合理規劃,嚴格要求自己,項目開發期間需要做一些功能時,那可能基本全是搜索、粘貼、復制,要么到網上復制,要么就是之前公司早已寫好千百遍的代碼塊,想自己發揮的機會都沒有,因為項目交付的時間控制在那里。然而,時間一長,普通開發人員和優秀的開發人員(高級程員)的區別就不言而喻了。
      下面舉例說一下普通程序員與高級程序員的區別:
1、知識體系
普通程序員:知識體系零散。
高級程序員:知識體系完整。

2、解決問題能力
普通程序員:用復雜的代碼解決簡單的問題。無系統性思維,寫代碼、改Bug,毫無工程素養,拆了東墻補西墻。無嚴謹性。
高級程序員:把復雜的問題簡單化,并用簡潔的代碼去實現。有系統性思維。就算沒有到架構師的級別,寫代碼和改Bug,都能從整體上去思考和把握。有嚴謹性。

?

3、文檔寫作能力
普通程序員:覺得文檔作用不大,習慣寫代碼;
高級程序員:不僅能寫好代碼,寫出的文檔淺顯易懂。

?

4、bug修復效率
普通程序員:利用搜索引擎(百度)尋找答案,經常找不到好的解決辦法,然后不斷更換技術方案。
高級程序員:利用搜索引擎(Google)尋找答案,一般bug都順利解決(與前期框架選擇的關系大)。

5、溝通表達能力
普通程序員:沉浸在自己的世界無法自拔。
高級程序員:良好的溝通能力,可以快速理解產品設計思路,更能展現個人所長。

6、優雅和美觀的抽象能力
普通程序員:好用,從實現的角度進行堆砌。
高級程序員:好用+好看。經常思考用戶操作這個功能時,還會做什么事情。

7、對開源社區的關注度
普通程序員:極少混跡開源社區,導致對新技術發展關注度偏低。
高級程序員:擁抱開源社區,認識技術牛人,分享、學習新技術。

8、面對功能點
普通程序員:立馬開始構思自己如何實現腦海里出來一個方案。
高級程序員:發現功能點很普通,git有非常多的解決方案,根據業務選擇一個最適合最優的方案。

9、各種編程規范
普通程序員:隨性,不考慮后續工作開展順暢與否。
高級程序員:有規律可循,要求嚴謹,運行流暢,后續有問題處理也更容易。


      普通程序員與高級程序員的區別就是怕抓住問題本質,化繁為簡的能力。普通程序員多半是直線性思維,見招拆招,多干少想。高手善于抓住問題的本質,將看似繁雜的問題化簡為一系列簡單邏輯的堆疊。
分享這樣一個故事:
      之前有一個把fortran改寫為C的項目,團隊十幾個人吭哧吭哧干了兩周,看著進度不樂觀,力越來越大,開始加班。
      而這期間總有一個老頭每天來幾個小時,坐在電腦面前敲一敲代碼,然后下午六點,準時提包走人。而我們還在那里加班,休息之余,也議論過這個老頭,據說是一個高人,但是沒人看出高在哪里,代碼路過的時候瞟了一眼,完全看不懂。
于是接著加班。
結果有一天,本來風雨無阻的老頭沒再來。當初年少無知的我們私下里嘀咕,不是掛了吧?結果 Leader 果然把我們叫到一起,說要宣布一個重要消息:這個老頭寫了一個轉換器,可以自動把 fortran 的代碼給轉成 C 了,轉換后的代碼稍微調整后就可以過編譯。
大家全部都轉測試吧……
家全部都轉測試吧……
全部都轉測試吧……
部都轉測試吧……
都轉測試吧……
轉測試吧……
測試吧……
試吧……
吧……
……
      所以,一般程序員拿到任務時就是想著抓緊敲代碼,敲個幾千行,哪怕是加班到凌晨,想著自己多努力多敬業,想著趕緊實現功能完成任務。而高級程序員雖然也是想趕緊完成任務,但他們是想著怎樣讓自己的代碼更加優化,怎樣更有效率的完成任務,而不是浪費大把的時間僅僅去造輪子。
你一定知道一些優秀的高級程序員,他們甚至就在身邊,可以把他們作為榜樣,虛心向他們請教,學習他們的長處,不斷提高自己作為工程師的素質和能力。
      愿大家都能在編程這條路,越走越遠!

(Top) 返回頁面頂端