新人程序員如何脫穎而出

  • 2017-4-18 09:24
  • PHP二次開發
  • 閱讀(1733)
  • 評論(4
  • 來源:互聯網
  • 摘要: 最近組內先后招了兩名開發,作為他們的mentor,一方面我在觀察他們的工作方式和編碼習慣,另一方面也在對比思考自己的經歷。自己有些感悟,覺得一名新人程序員,應該做好以下三點:1. 遇事追蹤溯源,不要怕改已有的 ...
    最近組內先后招了兩名開發,作為他們的mentor,一方面我在觀察他們的工作方式和編碼習慣,另一方面也在對比思考自己的經歷。自己有些感悟,覺得一名新人程序員,應該做好以下三點:
    1. 遇事追蹤溯源,不要怕改已有的代碼
    2. 編碼在保證正確的前提下,要足夠快
    3. 主動承接團隊里他人不愿意做的或者沒做的事

    下面我將逐一分析說明這三點。

    遇事追蹤溯源,不要怕改已有的代碼
    新人通常會從新加一個相似的功能或者修bug開始逐步熟悉原有的系統,這時無論原有的代碼寫的怎么樣,都應仔細的思考每段相關代碼的作用和對應的需求,努力做到追蹤溯源,掌握它們的來龍去脈,這時再做task就會游刃有余,在做相似功能時,你知道哪些地方已經實現可以復用,哪些地方因為新加的代碼應該做些重構;修bug時,你可以從根本原因出發,解決問題,而不是在出現問題的地方修修補補;更重要的是你不會打怵修改原有的代碼而躡手躡腳。當然一旦發現要修改大段的原有代碼或者設計,還是要主動和老員工先確認下思路是否可行,是否有遺漏的地方再開始。但不出意外,你會一下子就給別人留下一個好的第一印象,因為你沒有在機械的完成任務,而是先做了深入思考。

    寫到這里不禁想起,自己剛工作時改了一個bug,當時的做法是在創建一個文件的代碼之后3行再把這個文件刪了,只加了一行代碼就修好了,發給老員工review時還在竊喜自己只改一行代碼就解決問題了,結果老員工一句話就把我問傻了,前面的那個文件為什么要創建呀?我當然不知道了,因為當時我想原有的代碼我不熟悉就最好不動。于是,那一刻我得到了工作生涯第一個重要的建議,應該找到根本原因(root cause)后再修改代碼。這時你不僅可以做好手中的任務,還能進一步思考問題是不是代碼設計不合理造成的,同時不會怕改已有的代碼。

    編碼在保證正確的前提下,要足夠快
    新人在做第一個任務時都想留下好印象的,首先要做的就是一定要保證修改是正確的,這里不僅局限于正常情況下功能正確,還應考慮邊界條件,錯誤處理情況等等,最后再提交代碼時要最終確認一下單元測試過不過,提交代碼后再注意下Jenkins bulid過不過。這一切都是為了防止出現以下情況:
    * 一提交代碼就break build或unit test
    * 測試隨便一點就有各種問題
    * 匆匆忙忙修了一個問題,一提交又有其他問題

    別以為這些都些小事,它直接關乎別人對你的評價。不犯低級錯誤,建立起嚴謹的印象,是非常有助于你在新環境下脫穎而出的。

    但僅僅這樣是不夠的,如何在保證正確的前提下,提高速度或者效率則是另外一個要點。試想一下,你持續超出別人的預期,并保質保量的完成了task,哪個領導和同事會不喜歡你呢?千萬不要狹隘的覺得自己做的快了要多做事,何苦呀。也許短期內你多做了一些原本沒分配給你的任務,但你在別人心中逐步建立起嚴謹高效的印象,從長期來看將給你帶來更多的機遇(本人就是因此受益)。

    主動承接團隊里他人不愿意做或者沒做的事
    逆向思考下,人家為什么招你進來?相信絕大多數情況是事情多做不過來,缺人了。事情多了一定有老員工不愿意做,或者因為各種原因沒做的事。作為新人,做了別人不愿意做的事可以緩和他人的壓力;做了別人沒做的事,將為團隊增加產出,如果這件事還是一個技術難題,那不是正好可以讓別人眼前一亮,證明自己的實力嗎?

    其實關于這一點,在做的時候要進一步深入思考。別人為什么不愿意做或者沒做某些事?是因為缺乏相關知識而沒有做?還是因為沒有自動化每次手動操作既耗時又容易出錯?是因為優先級不高?還是因為投入產出比不高?是因為代碼結構不合理導致無法快速加上?還是因為需求不明確?是不是團隊里的人因為思維定式錯誤估計了問題?是不是可以從其他的角度解決這個問題?要深入思考后,才能從根源入手,從而正確的解決問題。切記不要機械的完成任務,要努力讓你的加入使團隊變的更好。

    自己在第二份工作的開始階段,就發現團隊還沒有使用持續集成的工具在統一的環境下交付測試,測試還在通過訪問開發機器上的網站驗證功能,結果開發之間互相break情況經常發生,項目質量也無法保證。詢問后才知道,大家也很希望改進現狀,只是因為一些原因沒法得到系統組的支持,組內也沒人來搭建持續集成的環境。于是我利用一開始相對輕松的時間,使用teamcity搭建出持續集成的環境,一時間大家都紛紛叫好,加上自己又接連解決了項目中一些棘手同時沒人做的問題,一下子就樹立了可靠的形象和在團隊里技術主力的地位,慢慢的即使是公司中其他組沒合作的過的人也對我評價很高。我自己琢磨出的原因是團隊里缺能干活的人,但更缺能讓團隊變好的人。

    其實巧的是,如何使用teamcity搭建持續集成環境是我在第一份工作離職交接時主動做的最后一個task,因為當時有個小項目是我獨立負責的,我想在交接時讓項目更正規些,就主動提出這個想法,雖然在離職的前天晚上還在加班調試,當天上午還在和同事討論一些細節,但就是這主動多做學會的技能成了我在第二份工作里出色開端的重要一環。

    總結
    寫文章時,自己也在進一步思考,我認為上面的提到3點在很多工作場景中都是適用的,更通用的總結是:
    1. 做事要知其然并知其所以然
    2. 努力建立起嚴謹高效的形象
    3. 成為讓團隊變的更好的人


    PHP技術交流QQ群:422137578

    除非注明,文章均為 PHP二次開發 原創,轉載請注明本文地址:http://www.fujvln.live/article-2603-1.html

    相關閱讀

    發表評論

    最新評論

    引用 冰鑒外遇鑒定卡   2017-9-13 16:33
    這個要有能力必須有能力
    引用 周元俊博客   2017-8-4 09:28
    以后程序員應該還會更多
    引用 教你吃水果   2017-5-2 14:31
    做網站算程序員么
    引用 小程序商店   2017-4-29 00:27
    現在的程序員也是難啊,越來越多了!

    查看全部評論(4)

    用戶名:  *

    郵 箱:  *

    網 址: 注意加上“http://”哦!