作爲一個新手程序員該如何成長?

翻譯作者:碼農網 – 小峯



大綱Contents
  • 找一種你喜歡用到工作中的語言

  • 修復問題

  • (公開)發佈源碼

  • 寫博客

  • 保持健康心態的小技巧


引言


“哦,天吶。相比其他開發者,我又笨又沒準備。老闆會知道我是多麼無能,我要被炒魷魚了。”



在我們作爲一名軟件開發人員剛進入工作領域的時候,這種想法非常常見,我也不例外。當涉及到寫代碼的時候,總感覺自己濫竽充數,像一個貨真價實的傻瓜,這種想法會讓人覺得自己不如其他的開發者


短短的幾個月後,我第一次獲得一份真正的編程工作——改善和維護一個基於 web 的研究平臺——終於變成了絕對的恐懼,那些消極負面的想法不斷地涌入我的腦海。即使在我去了更大、節奏更快的組織機構,以及之後終於開創了我自己的企業,這些想法仍在不斷地蠶食着我。


我總是覺得自己寫的每一行代碼都那麼笨重、低效,如果展示給任何其他有才幹的開發者看絕對會被批判得體無完膚。我感覺自己很笨,他們發現這一點不過是時間問題。


聽起來很熟悉?如果你有我這種想法,有絕大多數軟件開發者都有的這種想法,很大的可能是會惶惶而不可終日。


下面我要介紹一些我發現的,可以幫助一個初出茅廬的開發人員,提升你自己和你的職業生涯前景的關鍵策略,並在推動職業發展時保持一種健康的心態。


無論你是正在尋找第一份工作,還是盯上了潛在的晉升機會,在一定程度上你都需要與其他的開發者競爭。爲了確保你能脫穎而出,這裏有一些關鍵的步驟可以幫助你邁向成功。


作爲一個新手程序員該如何成長?


1、找一種你喜歡用到工作中的語言


要成爲一個更優秀的程序員,需要定時經常性地練習編程並用不同的語言和技術擴寬你的經驗,但是語言是如此之多,很多時候你不知道從哪裏開始,也不知道該選擇什麼語言才最適合你要解決的問題。


如果你還沒有想好具體的語言,但想要先試驗下的話,我會建議你搜索求職網站,例如 Stack Overflow Careers、Indeed 和 Monster,看看是什麼語言最搶手。如果你想符合目前的職位要求的話,可以牢牢掌握一些特定的語言,然後開始研究和試驗。



The TIOBE Index 可用來查看哪些語言更受歡迎


當我開始第一份工作的時候——基於 web 研究平臺的開發,我進入了學習的陣營:雖然我有足夠的技能在面試時通過編程測試,但是這份工作要求我加強 PHP、JavaScript 和 SQL 技能。於是下班後和週末,我都會磨練自己在這三方面的技能,以便於能夠在工作中表現更好,能夠擁有更多基於 web 開發的機會,而這些對於我現在能夠擁有和打理我自己的 web 開發公司有很大的貢獻。


不管你恰巧遇到或選擇了什麼語言,關鍵是經常練習。通過一些小例子嘗試不同的語言的編碼,然後用它們構建小的項目。一旦你找到了能與你產生共鳴的一種或一系列語言以及如何處理問題的方法,堅持下去,並定期實踐練習。


2、發現問題或任何

讓你覺得生氣的事情


隨着我的職業生涯向前邁進,我進入了一家大的臨終護理組織,擔任 web 開發者。雖然我的工作主要是改善和維護在線計費和 CRM 系統,但是許多醫務人員經常抱怨:病人總是報告說系統運行得異常緩慢。這讓我很生氣,它讓員工更生氣——因爲不得不去修復。


臨終護理幾乎純粹運行在微軟技術上,數據庫也不例外—— Microsoft SQL Server (MSSQL)。雖然它不是我感覺最舒服的查詢語言,但是我依然在家裏研究、閱讀、練習構建小型的 MSSQL 項目。通過我的努力,漸漸能夠建立一些示例報告來向數據庫管理員展示報告可以如何改進。隨着時間的推移,我幫助實現的優化促使我得到了晉升,通過修復那個問題學到的技能幫助我獲得了一份數據庫管理的工作。


和一種語言一起成長和點燃學習激情的最好辦法是,使用你學到的知識來幫助解決令你感到苦惱的問題。不僅要學習語言本身,也要學習語言可以如何應用到實際問題。


3、公開發布到 Github 或

其他公共代碼平臺上


即使你不認爲有人會使用它、喜歡它,或者甚至看上一眼,還是要發佈你的代碼,一旦你覺得它達到生產標準的話。你的項目可能不會改變世界,但它可以讓你脫穎而出,讓你可以坦然對待別人查看和批評你的工作。此外,它可以讓你的簡歷增色不少。


4、寫博客,展示你正在學習的東西,怎麼學習以及爲什麼


向世界(以及將來的僱主)展示你正在學習,以及你有主動的學習意願,就可以讓你領先於 95% 以上的同行業開發人員。你也可以練習你的寫作技巧,這個過程也能讓你學到很多關於自我方面的東西——你如何處理問題、如何分解和解決。你還需要整理一下你常用的思考方式,如何學習和成長,以及如何取得進步。


5、在軟件開發社區中表現活躍


解決問題,看別人怎麼解決問題,說出自己的聲音和意見。我通過 Stack Overflow 和編程社區做到這些。這還不是最寬容的文化,因爲你將會遇到一些非常眼尖的開發者咆哮你怎麼在僞代碼中忘記了後面那個括號,但這能讓你與其他的開發者交流,使你具備接受誠實(有時是殘酷)批評的經驗,並知道其他人可能會如何處理問題,從而打開思考問題的新思路。


6、學會如何簡明扼要地解釋給

術和非技術人員聽


我總是聽到大家說溝通是實現職業成功時要掌握的最難和最重要的事情之一。早期我認爲這是無稽之談:只是跟人講電話、會議期間交談、發送電子郵件能有多難?任何有着專業溝通經驗的人都會對這種看法嗤之以鼻,我現在也會。你會驚訝地發現誤解突然就出現了,工作流程如此之複雜,以及項目進程的拖延。


真正高效溝通的前提是對實際工作中你需要做什麼有基本的瞭解並彼此交互(我強烈推薦 Charles Petzold 的《Code》)。寫博客,並與編程社區互動有助於有效地提高溝通能力。


如果你能掌握簡練、實事求是、通俗易懂的溝通方式,並將複雜的問題和解決方案分解爲可理解和很小的塊,那麼你就能在軟件開發領域立於不敗之地。你會發現項目經理,其他的程序員,以及執行主管等都會爭奪你去他們的團隊。


保持健康的心態


專業軟件開發人員的成長之路沒有一條不充滿着荊棘和困難,所以你很容易掉入不健康的自我思考和職業選擇的陷阱。通過了解每個人都會有的專業的不安全感,可以在你對自己失去信心的時候更好地激勵自己。


1、要知道,

每個人都感覺自己像騙子


你在職業和生活中遇到的每個人都在與騙子綜合症做鬥爭。我們每個人都覺得自己正處在被發現是騙子,然後被公開批評無能的邊緣。了解這一點能在精神領域幫助你覺得坦然,而且還能幫助你認識到,每一個做過值得誇耀的人,曾幾何時的想法就和你現在一樣。


這種心態可以幫助你堅持下來!如果再加上具有建設性的渠道方法——學習新的語言、開發方法,以及解決問題的方法。你的整個職業生涯都將有極大的提高,並且能夠快速讓你成爲大師。


2、知道自己會陷入困境


毫無疑問,就是在編程中我終於接受了我是人這個事實——我也有犯迷糊、笨手笨腳、錯誤頻出的時候。沒錯,你也是如此。你會錯過最後期限,太多次點擊“全部回覆”,滑動捕捉一些嚴重的錯誤,或者在應用程序架構中輕易放過一個令人難以置信的 BUG。


要想保持快樂和健康,那就得讓自己去分析錯誤,從中學習,還要應用所學的東西以便於下次完成得更好。


3、設身處地地思考


我第一次被老闆罵的時候,你知道我是怎麼做的嗎?快速回到自己的辦公室,鎖上門,然後嚎啕大哭。我覺得自己是有史以來最糟糕的程序員,並開始擔心自己會不會被炒魷魚。但之後,項目經理走進我的辦公室,向我解釋說我的進程和項目迄今都很好。老闆只是剛剛發現她的女兒病的厲害,上司又剛剛指責了她的過失,然後又雪上加霜地被起訴離婚了才這樣。。。


當我知道了我的老闆這些經歷時,我的自我懷疑和擔心立即一去無蹤。如果換作我在那樣的情況下,很有可能也會做出相同的反應。


感同身受是一個程序員和一個人成功的根本。瞭解客戶和用戶的真正需求,或者知道上司所處的壓力,可以讓你明白他們的行爲原因。還可以讓你知道你該如何提供有價值和可解決問題的方法,展示你的能力。


作爲一個剛剛起步的軟件開發者,循着我的建議,你的面前已經有了一條康莊大道。編寫偉大的代碼以及遵守行業內的相關規定,需要你幾乎每天來直面自己的弱點,並要求你不斷提高自己。


你可能會和其他人一樣不時地動搖,儘管我們已經討論了一些步驟和策略,你還是會陷入消極思想的泥潭——這是完全正常的現象。


只要你能全身心投入,持續改善提高,認識到自己不過是個人,能夠設身處地地思考,你將會步入行業最值得尊敬和最有成就的開發者行列。


譯文鏈接:http://www.codeceo.com/article/how-new-programmer-grow.html
英文原文:How to Grow as a New Software Developer


(更多華爲資訊請關注華爲開發者社區,華爲自己的對外開放門戶:http://developer.huawei.com/ict/cn/ ,不要問我叫啥,別人都叫我雷鋒


發佈了171 篇原創文章 · 獲贊 109 · 訪問量 107萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章