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