1. 程式人生 > >年輕程式設計師如何快速成長

年輕程式設計師如何快速成長

最近公司招聘了一批初級前端工程師,招聘之後就是開始培訓和實習指導,培訓過程中,思考了一些問題,包括如何更好的培訓 指導 以及管理新人。也思索了新人程式設計師自己應該如何快速成長。

態度是第一位的

態度用於是第一位的,不只是新員工,老員工也是如此。不過對於新員工來說,更加重要。沒有好的態度的員工,能力再強,企業也不喜歡。更何況,我很少見到態度不好的員工,有很強的能力的。

首先是要認真

在給新人做培訓的時候,就會發現一部分員工很認真的聽講,並及時做筆記,而少數員工則是插著手在哪兒一聽而過。為了解決這個問題,我在培訓中直接定了規則,每個人都必須要寄筆記,並強制寫培訓總結。 這樣也方便我從員工的培訓總結中看出那些人的理解更加到位。當然認真的態度不至於培訓階段,在實際開展工作的時候也非常重要,這其中包括遵循公司的規範。比如寫程式碼應該按照公司確定的好的規範來嚴格執行;作為的任務自己要認真檢查;完成任務之後,需要發郵件;給客戶發郵件,需要禮貌用語,並詳盡的解釋相關的事宜等等,每一個細節,都需要認真對待。

謙虛的態度

所謂謙虛的態度,首先要求大家有空杯心態,特別是一些有一定基礎的員工,需要先對自己的認知清零,然後認真的聽取培訓老師的培訓,在實際工作中,要多聽取老員工的意見,建議。因為作為新人(至少是絕大多數),你在很多問題上的認知肯定要比老員工差,這個時候,就算你有自己想法,也要認真聽取領導或者其他同事意見。就算是工作了很多年的我,現在都保持這個習慣,對於一個問題,我有了自己的想法,或者解決方案,我也會諮詢其他人,或許其他人還有更好的解決方案呢。當然你有自己的想法,大膽的發表出來,也是很受歡迎的。謙虛並不代表一味的唯唯諾諾的態度,唯唯諾諾的態度,也不是謙虛,而且也是不受歡迎,對自己發展也不利的。大部分時候,我們希望員工有自己積極思考的態度。

積極的態度

包括幾個方面。

  • 第一個,積極做事,工作中積極爭取做更多的事情,如此自己能夠有更多學習的機會,二來也能夠給公司一個更好的印象,公司也便願意提供更多機會給你;
  • 第二個,積極溝通,溝通能力是一個很重要的能力,對於人的成長技巧重要。後面會專門說道溝通。
  • 第三個,積極思考,遇到問題能夠積極主動的思考解決方案,而不是消極等待或者排斥。

勤奮努力的態度

要想獲得更快更長足的進步,勤奮努力是必須的,及時對於極有天賦的人。所以一般而言,我都會對新來的員工說:公司雖然不會強制大家加班,但是作為新人,你肯定要做到比別人更加努力,自覺投入更多的時間在學習上面。

變換你的心態

你不是一個學習者,而是一個執行者

對於一些剛畢業的新人來說(或者剛轉行到軟體行業的人),要意識到,公司招聘員工,是要求員工給公司創造效益的。 所以雖然前面提到新人需要努力的學習來提供自己的能力,但是新人需要意識到,學習不是最終目的,最終目的是為了解決問題,做出成果。 所以,新人要意識到:雖然學習是必要的,但是快速進入工作狀態,而非一直處於學習狀態,才是一個員工應該有的狀態。因為進入公司,你就不在是一個學生。

培養溝通能力

很多程式設計師忽略溝通能力。認為做程式設計師,只要能夠把程式碼寫好就行。事實遠非如此。作為程式設計師,需要和至少如下人員經常溝通:

  • 設計師 (溝通設計方面)
  • 產品經理或者客戶 (溝通需求)
  • 其他程式設計師(溝通需求、技術、對接等等問題)

如果一個程式設計師不能很好的和以上人員溝通,很難想象他能夠合格的完成任務,跟別說出色了。
那麼作為新人應該如何培養自己的溝通能力呢。

好的溝通條件

在我看來,好的溝通一定有如下兩個重要的條件:

  • 能夠很好的理解別人的意圖
  • 很好的表達自己的意圖,以便別人能夠理解。

積極溝通需求

一般在上司給安排了工作之後。
有的人就開始做了起來,但是實際上,可能需求不是很明確,而不明確的,也不會主動提問溝通。 而有的人會思考需求,然後把自己不明確和上司或者其他同事積極溝通清楚。
積極溝通需求

及時呈現工作成果

在完成一個任務之後,可以通過發郵件,圖片,視訊或者demo的方式多呈現自己的工作成果。

  • 能夠肯定自己的勞動成果
  • 讓人瞭解相關工作進度
  • 另外可以及時的讓人看到所做工作的不足。

不要害怕呈現自己的缺陷

有的時候,新人不願意溝通,是害怕呈現自己的不足。實際上恰恰相反,作為新人,不能害怕呈現自己的不足之處。只有你讓別人看到了你不足的地方,才能夠很好的幫助你改進,提高。而如果你一味的隱藏自己不懂的業務,技術。很可能,在很長一段時間之後你還是不懂。 一般而言,你的上司可以容忍一個新人剛開始不懂,但是不能容忍在一段時間之後,還有很多東西不懂,比如我就是這樣的,最初你不懂,我可以理解,並給予你支援幫助,但是較長時間之後,一些基本的東西你還不懂,我可能就會有看法了。

合理的提問

當然,雖然我鼓勵新人多提問,但是還是希望新人提的問題是搞水平的。而不是低質量的問題。一個問題,你需要自己先思考,先查你已知的資料,在此基礎上,你在來提問。而不是一開始上來就提問。 另外提問之前要梳理清楚一個任務中的業務 技術點,在此基礎上,提出你不懂的部分。 最好不要提出類似 “這個任務我不會,你能教教我嗎”。 而最好是這個任務是幹什麼的,1,2,3 列清楚,然後當前技術 我自己知道了哪些,有幾個技術點或者業務點不清楚,需要指導。 要知道,你的上司或者其他同事,可能很忙,不可能什麼問題都來和你從新梳理一遍。
另外,你如果希望別人幫你除錯解決某個問題,最好是把問題寫出一個最小化的demo,讓人來幫忙看。

儘快熟悉相關業務

溝通能力並不是單一的“溝通能力”。如果你能夠儘快的熟悉公司的業務,那麼溝通能力本身也會上升。

錘鍊思維能力

除錯能力

不會除錯的程式設計師,不能稱之為程式設計師。通過除錯,發現數據,程式執行的規律,找到問題所在,並修復問題。可以說,一個程式設計師的大部分時間都是在除錯,如果能很好的掌握除錯技巧,將會是你的程式設計師生涯的巨大障礙。
除錯本身也可以調高你思考問題的能力。
所以,學習各種除錯技巧和除錯思路,勢在必行。

善於思考,反思,總結

在遇到問題的時候,需要自己做中總結和反思。 思考自己的解決方式,思維方式。如果遇到一些問題,自己沒能解決,而在別人的幫助下解決了,不解要總結改問題的解決方案,還需要總結別人的思維方式。我從小上學數學不錯,就是因為自己花了大量時間在這種思考、反思、總結上。遇到自己不會,老師指導了才會的問題,也一定要不斷梳理思路,看自己應該如何“順利”的就能想到這種解決方案。

記錄,寫文件

當然,如果你能夠學習寫作,把平時思考、反思、總結下來的東西記錄下來,一定更好。寫作其實也是一種重要的能力,對於每個人來說都比較重要。 把問題解決方案或者其他思路等記錄下來,整理成文件,可以加深自己的記憶,也方便以後遇到類似的問題的查閱,同時還可以分享給他人,幫助別人解決類似問題。
所以寫文件是一件當下利益不明顯,但是長遠利益巨大的事情。

猜測的能力

記得我當年高中的物理課,老師說:物理問題要大膽猜測,小心論證。對於一些問題,我們可能暫時文件 資料欠缺,在這種情況下,我們可能需要能夠猜測。根據我們已經有的知識,猜測某個可能性,然後通過某個方式來論證猜測。
比如,以JS為例,我們遇到某個物件的API介面不明朗的時候,我們可以在控制檯 遍歷出相關的介面函式,然後更加函式名稱,猜測某個函式是做什麼的,選中我們需要的介面函式。
當然上面的舉例只是一種簡單的猜測 論證。還有更多複雜的情況。總之,在未知的情況下,不要害怕停止不前,而是多去猜測,嘗試。說不定 就能夠找到解決方案。
除此之外,在除錯問題的時候,猜測問題的可能性也是一種很重要的能力。

提高學習能力

快速學習的能力

對於新人來說,感覺自己要學習的東西很多。這個時候我們在學習的時候要掌握技巧。要有“粗學”和“細學”的能力。對於很多文件或者知識點,先從整體理解,然後大致瀏覽一遍相關文件。,然後在實際中運用中,遇到相關的的知識點,再去細緻的瞭解。而不是一個知識點一個知識點的細緻學習,可能等你學完後面的,前面的已經忘記了。所以在“粗學”的過程中,以下兩點比較重要:

  • 對於整體框架一定要有個很好的認識,理解框架的作用,架構思路,程式設計思想,程式碼風格。
  • 在“粗學”知識點的時候,以瞭解該知識點的作用和運用範圍為主。

以解決問題為導向

前面提高了快速學習,實際上快速學習要能夠真正落實,產生效用。 需要我們以解決問題為導向。遇到一些新手,喜歡看很多書,學習很多知識點,技術點,但是實際動手能力很差。 為什麼我遇到一些參加培訓的同學,培訓出來之後的效果並不會很明顯。因為,在培訓過程中,你還是著重在學習,而這種學習,可能存在缺陷:

  • 學習的東西可能很快忘記了
  • 並沒有提高你解決問題的能力
    我就遇到很多新人特別好學,不管什麼技術,都希望自己能夠掌握,要去學一學。 以為掌握了很多知識點、技術點就能成長的更加厲害。但是往往事與願違。學了那麼多知識,還是過不好這一生,哦,錯了,還是解決不了稍微有點難度的問題。 所以建議新人的學習,應該多以解決問題為導向來學習:
  • 學習你近期工作最需要的相關知識和技術。
  • 培養相關的思考問題的方式,思維、架構能力,而不只是學習知識點。
  • 把工作內容涉及到的相關技術做到極致,而不是淺嘗輒止,懂一點點就停止不前。

其他工作外的技術點要不要學,當然要學,多學習可以開闊自己的視野,從而潛移默化的提高你的認知能力和處理問題的思路和能力;但是時間上改如何分配和平衡,需要把握好。

解決問題的技巧

難的問題,80%也是簡單的

如果看不清前方的路,那就一步一步走。

在遇到比較難的問題時候,我們往往會束手無策。我遇到一些員工,在遇到稍微難的問題的時候,就不知道如何下手。但是事實上,一個難的問題,可能難的部分只有20%,或者更少的比例。但是我們往往被難的部分給嚇住了,然後不敢動手,或者不知道如何下手。其實,我們只要稍微把任務分解下,就會發現,還有很多部分是我們可以下手開始做的,這個時候,應該先忘掉難點的部分,開始著手我們會的部分。在做你會的事情的過程中,可能也發現了難點的解決方案。而即使沒有發現難點的解決方案,這個時候也可以拿著你已經做出來的部分,去求助他人的幫助,這樣別人在幫助你解決問題的時候也方便。

更多精彩內容,請關注公眾號。

ITman彪叔公眾號

ITman彪叔公眾號