筆者剛剛開始編程生涯時(shí),常常在思考什么是編程的正確方式,但我無法確定正確答案。不過,我很快就明白了方法不止一種,但其中有些方法并不是很好。這就是筆者想要闡述的。你可能已經(jīng)發(fā)現(xiàn)了方法的重要性,并且想知道如何優(yōu)化自己的學(xué)習(xí)過程。那么,以下這些誤區(qū),你一定要及時(shí)避開。
不要執(zhí)著于學(xué)習(xí)盡可能多的語言/技術(shù)
初學(xué)者常常誤以為掌握很多語言和技術(shù)會(huì)給人留下深刻的印象。雖然的確是這樣,但更重要的是證明你可以應(yīng)用它們。
通過項(xiàng)目展示不同的編程語言/技術(shù)技能是個(gè)不錯(cuò)的主意。它既顯示了你的適應(yīng)性,也考慮到了編程技術(shù)不斷變化的本質(zhì)。但是,如果只專注于學(xué)習(xí)現(xiàn)有的一切編程語言的語法和操作方法,那就錯(cuò)了。每當(dāng)你學(xué)習(xí)一門新語言或新技術(shù)時(shí),一定要加以應(yīng)用,不要一味地急著去學(xué)下一個(gè)。
編程很像數(shù)學(xué),你需要不斷地練習(xí)。每當(dāng)學(xué)習(xí)一種新工具/技術(shù)時(shí),確保你在應(yīng)用它,并在此過程中建立自己的作品集。在這個(gè)過程中,你的編程能力將會(huì)得到提升,從而提高自己的競(jìng)爭(zhēng)力,這是雙贏。
投入使用前先確定新技術(shù)是否符合需求
花時(shí)間做些調(diào)查,可能有更好的框架或語言適用于你要做的事情。筆者喜歡閱讀文獻(xiàn),查找使用上述技術(shù)構(gòu)建的項(xiàng)目,然后再做出選擇。例如,一些庫/框架可能具備滿足需求的函數(shù),而另一些庫/框架可能需要你編寫復(fù)雜的代碼。即使某些技術(shù)不夠普及,它們也可以節(jié)省大量時(shí)間,并可能創(chuàng)建更強(qiáng)大的功能。
總之,在決定使用哪種工具之前先做一些研究。筆者曾見過程序員不眠不休地試圖找到一個(gè)解決方案,但有時(shí)退一步著眼于全局更有效。如果你的項(xiàng)目比較大,那么使用你能想到的技術(shù)構(gòu)建較小的模型是一種很好的方法,可以以此評(píng)估你的作品是如何結(jié)合在一起的,來查看它們是否符合需要,以及是否在正確的道路上。
不要掩飾工作
確保你在展示自己的作品,并且不僅僅要展示你最好的作品,還要展示你是否能改進(jìn)不那么自豪的工作,筆者已經(jīng)能夠推動(dòng)多個(gè)老項(xiàng)目從平庸到令人印象深刻。有時(shí),我卻會(huì)完全忘記它們的存在。因此,建立作品集,首先要瀏覽你過去的項(xiàng)目,看看是否可以整理利用之前的東西,這可以節(jié)省很多時(shí)間。
其次,學(xué)會(huì)推銷你的作品。充滿激情地講述你的創(chuàng)作過程,比如你為什么選擇這個(gè)特定的項(xiàng)目,你為什么以這種方式做,等等。個(gè)人風(fēng)格會(huì)讓你的作品更令人難忘。當(dāng)然,別忘了把作品放在GitHub上。
不要忽視任何設(shè)計(jì)
好的設(shè)計(jì)等于好的工程。簡明、高效的編寫不僅使代碼可重復(fù)使用和更易讀,而且會(huì)使你創(chuàng)建的任何東西都變得更好。在構(gòu)建時(shí)不應(yīng)用合適的設(shè)計(jì)原則最終會(huì)導(dǎo)致性能和/或擴(kuò)展性方面的問題。此外,代碼的設(shè)計(jì)和優(yōu)化經(jīng)常在面試中考到,所以最好盡早養(yǎng)成良好的編碼習(xí)慣。
前端/用戶界面/用戶體驗(yàn)的設(shè)計(jì)也很重要,這往往決定了你的用戶是否會(huì)堅(jiān)持使用。精心打磨過的前端設(shè)計(jì)的項(xiàng)目更令人印象深刻,這會(huì)使你的工作看起來更完善、更專業(yè)。挑選一本關(guān)于代碼設(shè)計(jì)的好書,學(xué)習(xí)用戶體驗(yàn)設(shè)計(jì)的基本概念,你能開發(fā)出更好的產(chǎn)品。
隨時(shí)記錄
在構(gòu)建作品集時(shí),請(qǐng)記得不要省略對(duì)代碼進(jìn)行注解和對(duì)項(xiàng)目適當(dāng)?shù)嘏ⅰR驗(yàn)檫@表明你熟悉行業(yè)標(biāo)準(zhǔn),并且能使你的代碼流更容易被用戶理解。
高質(zhì)量的文件記載還可以突出你的技術(shù)寫作能力,讓你脫穎而出。在專業(yè)環(huán)境中,做記錄通常是工作的一個(gè)基本方面,因此從長遠(yuǎn)來看,培養(yǎng)這項(xiàng)技能也是有益的。許多工程師經(jīng)常使用相同的代碼庫,適當(dāng)?shù)挠涗浛梢詭椭嚓P(guān)人員及時(shí)了解項(xiàng)目的最新進(jìn)展。
記得測(cè)試
筆者不僅僅關(guān)注項(xiàng)目是否可以執(zhí)行預(yù)期的功能,對(duì)于更重要的項(xiàng)目,應(yīng)該要求更高。如果可能的話,要在多種設(shè)備、操作系統(tǒng)、瀏覽器和每種極端情況下進(jìn)行測(cè)試。一定要做好準(zhǔn)備,因?yàn)槟阌肋h(yuǎn)不知道別人會(huì)在什么情況下評(píng)估你的工作。
最好養(yǎng)成單元測(cè)試的習(xí)慣,并在GitHub上為項(xiàng)目編寫全面的測(cè)試套件。這表明你對(duì)工作質(zhì)量非常重視,并且重視零漏洞、穩(wěn)定的軟件開發(fā)。通過這種方式,你還會(huì)學(xué)到很多模塊化的重要性,反過來又有助于提高自己的專業(yè)水平。
不要只關(guān)注編碼
編程技術(shù)在不斷變化,但它們蘊(yùn)含的計(jì)算機(jī)科學(xué)概念卻沒有變。學(xué)習(xí)算法、數(shù)學(xué)和計(jì)算機(jī)科學(xué)的概念并不是毫無用處的,即使它們看起來并不能立即見效。這些核心概念會(huì)在你的思維過程中發(fā)揮作用,通過加強(qiáng)你的計(jì)算機(jī)科學(xué)基礎(chǔ)知識(shí),幫助你成為一名更好的工程師。
事實(shí)上,算法和數(shù)據(jù)結(jié)構(gòu)的知識(shí)經(jīng)常在面試中被考到。理想情況下,你的目標(biāo)是在編碼和理論之間取得良好的平衡,進(jìn)而成為一名全面發(fā)展的程序員。
不要孤軍奮戰(zhàn)
找一個(gè)同樣在自學(xué)編程的人作為學(xué)習(xí)伙伴,這對(duì)于初學(xué)者來說會(huì)有很大的不同。你們可以分享進(jìn)步,也可以從彼此的錯(cuò)誤中學(xué)習(xí)。你們還可以在項(xiàng)目上合作,如果分工合作的話,完成工作的時(shí)間會(huì)縮短。結(jié)伴學(xué)習(xí)的另一個(gè)主要優(yōu)勢(shì)是能夠練習(xí)結(jié)對(duì)編程和模擬面試,這樣可以幫助彼此認(rèn)清并改進(jìn)自己的弱點(diǎn)。
平心而論,這適用于每個(gè)領(lǐng)域,但是由于編程的內(nèi)向性,人們很容易忽視合作的價(jià)值。即便你覺得自己不需要學(xué)習(xí)伙伴,請(qǐng)記住,將來在大多數(shù)的職業(yè)場(chǎng)合會(huì)與其他開發(fā)人員合作。因此,在團(tuán)隊(duì)環(huán)境中正常工作的技能是必不可少的。
雖然軟技能可能對(duì)于一名程序員來說不是第一位的,但從長遠(yuǎn)來看,它們肯定會(huì)對(duì)你的職業(yè)軌跡有所幫助。
不要只為了錢
要因?yàn)闊釔鄱プ觥B犉饋砗軞埧幔幊痰拇_不適合所有人。編程需要相當(dāng)多的投入,但它確實(shí)有潛力成為前途光明的職業(yè)道路。筆者見過很多人在學(xué)習(xí)的過程中放棄了,那是因?yàn)樗麄円婚_始就沒有足夠堅(jiān)定。沒有人希望在自己根本不喜歡的職業(yè)中度過一生,它最終會(huì)讓人感到不滿足。
最后,不要妄想你能攻克所有的人和事。要有切實(shí)的期望,樂觀的態(tài)度,并保持謙遜。最重要的是,永遠(yuǎn)不要停止構(gòu)建和學(xué)習(xí)。
責(zé)編AJX
-
編程
+關(guān)注
關(guān)注
88文章
3673瀏覽量
94694 -
前端
+關(guān)注
關(guān)注
1文章
212瀏覽量
18102 -
匯編語言
+關(guān)注
關(guān)注
14文章
410瀏覽量
36376
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
記憶示波器校準(zhǔn)過程中需要特別注意什么?
半導(dǎo)體制造過程中的三個(gè)主要階段

濾波器接地設(shè)計(jì)有哪些常見誤區(qū)?

評(píng)論