新手程序員的困惑

  這個寒假,過得感受很是漫長。寒假裏制定了一些學習計劃,看一些書,都在有條不紊的進行着。在這期間,幫助一些剛入門的小夥伴如何踏入程序員職業生涯,也和一些老程序員聊聊程序員的職業規劃。內心有一些體會,仍是蠻有感觸的。因此,費老大的勁把塵封多年的博客帳號找出來,準備寫一些東西,和你們分享一下。
  開始吧!有一個小夥伴小Z問我,不知道本身適不適合作程序員,工做了半年,發現本身獨立解決問題的能力很弱。經過和他溝通,發現小Z半年在單位一直處於代碼搬運工的角色。因爲所在單位的代碼質量比較好,小Z能夠直接將vue桌面端的代碼拷貝過來到手機端,而後也完成了手機端的開發。當時,我以爲還不錯,因此問了問他vue一些知識。關於vue的v-if,v-show都不清楚,vuex也不懂,甚至連簡單的js代碼都不知道什麼意思。說實話,當時我就很是震驚了。因此,我就問他還學習了哪些知識。他學了java,springboot,echarts,mysql等等。對於一個程序員剛入職半年來講,其實學習得還不錯。可是這一次的遠程在家的辦公,沒有使用公司的代碼,也沒有公司的知識庫做爲參考,在家獨立推動小例子的原型和小demo。他幾乎一點代碼都寫不出來。這正是他如今苦惱的地方,信心逐漸喪失,工做效率和效果很低,壓力很大。後來,咱們聊了好久,總算大概知道出現這個狀況的緣由所在。
  一、程序員不是代碼的搬運工
  程序員的工做不是代碼的搬運工,而是一個有着創造力的工做。小Z在半年的工做,基本只是成天在公司裏面拷貝這代碼,而不去了解代碼爲何這麼寫,不去研究這麼寫的好處,對於代碼中涉及到不懂的技術,也不去仔細學習。也許你一開始還能勉強應付工做的事情,可是後期沒有造成本身的知識體系,這樣的你很難成爲真正的程序員。
  二、須要持續努力,韌性很重要
  小Z,在剛入職第一個月裏面,很認真。在第一階段的公司內部考驗中順利經過(當時另外和小Z一塊兒入職的還有另一個小夥伴,而這個小夥伴沒有經過考覈,所以這一點的自滿的感受,讓他低估了程序員這個工種)。可是後來的五六個月的工做中,就開始放鬆本身,再也不認真了,之後的惰性又出來,真是以爲有一點惋惜。另外碰到代碼的難問題,不去仔細解決,總以爲公司有高手幫他搞定,因此在後來的提升不多。從而在這一次遠程獨立辦公的時候,發現知識和技術問題愈來愈多。在此,從我的經從來講,我的以爲當你選擇程序員這個職業方向時,但願你能作好一個持續性長期學習的內心準備。
  三、困難多,bug多,心好累
  想必,這個是新手程序員,常常有疑惑和有挫敗感的地方。可是,我想說的,對於老程序員,這種感受也是一直存在的,並且甚至於苦惱的感受比起新手們,更有過之而無不及。因此,心態平和點,由於這個狀況會伴隨你的整個職業生涯。不少時候職業信心,不是別人對你讚譽而帶來的,而是你在克服一個又一個困難的成就感給與的。而職業信心這一點很是重要。
  四、如何解決碰到的代碼問題
  談到這個問題,第一點,網上資源很是豐富,對於碰到的常規問題,網上通常都有解決辦法。這時候你們確定首先想到的是百度。可是我的觀點,以爲google更好一些。另一些技術網站和有價值的技術文檔要記得收藏,一些大牛的博客積累關注,一些技術社區,你也能夠提出你的問題。這裏的一些知識每每更全面更有價值。第二點,另外能夠尋求身邊的小夥伴幫忙,可是記住,先去嘗試本身解決,拿出你的分析狀況和思考點,再向別人請教(不要一碰到問題就問別人,這樣一直打擾別人,也會影響別人的效率),這樣你在思考分析過程的技術點可以和別人講的知識造成很好的聯繫。第三點,多學習多看書,尤爲基礎性的知識點,書上都會有解決辦法。第四點,涉及到使用一些技術組件和開源的框架,認證閱讀別人的源碼和文檔,每每對解決問題幫助很大,另外優秀源碼的閱讀,對於提升你自己的知識體系幫助很是大。
  五、代碼的實現思路每每來源於生活
  另外對於一些功能的代碼實現手段,不妨在一開始沒有思路的時候,能夠先採用僞代碼方式,和身邊的生活聯繫起來去思考。我曾經碰到一個狀況,團隊在作一個可視化佈局的功能(要求畫布上的節點,動態排列,動態佈局,實現這個佈局算法),一開始因爲接受任務的小夥伴對於可視化組件纔剛剛熟悉,讓他實現佈局,他一臉蒙圈,不知道如何下手。後來,我就舉了一個生活的例子,若是,大家全家準備坐在一個方桌周圍吃飯,你先坐下來,這時候你爸爸來,他該怎麼坐?你爸爸坐下來後,發現位置太擠,你媽媽等會也要過來坐,怎麼辦?這時候他彷佛有點明白了,後來我追問,若是全家換成坐在圓桌周圍吃飯呢?這時候他豁然開朗了。代碼在解決問題的時候,其實也是解決生活的問題,兩者聯繫起來每每也會帶來思路。
  六、編碼效率低怎麼辦
  很好的IDE的選擇,熟悉你的IDE的快捷鍵,可以大大提升你的代碼速度。另外對於從新的代碼工做,選擇一些小工具的使用,或着編寫一些小腳本幫本身實現,每每事半功倍。另外多學習多練習,熟能生巧。
  七、如何提升本身的技術
  實戰!實戰!實戰!我曾經碰到一個新手java程序員,涉及到java知識都知道一些,一些新技術的乾貨不少都有知曉。可是後來在一塊兒工做以後,才發現實戰能力很是弱。爲何呢?後來才知道,他有一個很是「好」的習慣,記技術筆記,可是徹底是文科生摘錄筆記法,甚至於書上的練習代碼,他居然沒有在IDE敲過,而是在筆記裏摘錄。並且記錄的筆記,東一塊西一塊,沒有技術路線。
  因此如何提升技術,選擇幾本很好的書整理好,向有經驗小夥伴請教,找到一個符合本身目前認識水平的技術路線,這一點很是重要。這個技術路線每每一步一步夯實,這樣會快速重塑你的知識體系。最後不要忘記仍是實戰。
  最後想說的,程序員的工做不是的你生活的所有。閒下來,看看技術之外的書每每也很重要。若是一直陷於技術中,有的時候每每會限制你的思惟,讓你對周圍造成陌生感,這樣的生活一點都不美好。
相關文章
相關標籤/搜索