對程序員、開發(fā)人員和數(shù)據(jù)科學(xué)家的高需求吸引了許多人加入IT領(lǐng)域。但是,大多數(shù)情況下,新人試圖通過學(xué)習(xí)過程走快車道,以更快地找到工作。在本文中,我將引導(dǎo)您完成——我相信——學(xué)習(xí)編程的正確方法。在我們開始之前,我想澄清一下,我不會談?wù)撊绾问褂锰囟ㄕZ言進(jìn)行編程。相反,我將討論培養(yǎng)解決編程問題的直覺和思維過程。
先學(xué)會邏輯地解決問題
第一步是——我知道這是“老式的”——用筆和紙從邏輯上解決問題。每當(dāng)我教一個完整的初學(xué)者編程時,我都會首先解釋解決編程問題背后的邏輯,然后在我們真正開始編碼之前會用筆和紙解決許多問題。
為了培養(yǎng)你的編程直覺,你需要練習(xí):
- 學(xué)會仔細(xì)閱讀問題。閱讀問題以找到您需要做什么、您的輸入是什么以及您的預(yù)期輸出應(yīng)該是什么的詳細(xì)信息。
- 先不考慮代碼,解決問題。我把這一步放在第一位,因為如果你已經(jīng)知道如何編碼,你會傾向于直接跳進(jìn)去。停止!先用常用詞解決問題。
- 在不同的輸入示例上測試您的解決方案。一旦你想出一個解決方案,嘗試不同的案例場景,看看你的解決方案是否適合所有這些場景。
- 每天練習(xí)解決問題。每天解決新問題將幫助您培養(yǎng)編程直覺并練習(xí)解決問題的技巧。在日常的編碼問題是一個很好的資源。
研究算法和數(shù)據(jù)結(jié)構(gòu)
許多初學(xué)者和一些有經(jīng)驗的程序員避免學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法,因為他們認(rèn)為它很復(fù)雜并且在現(xiàn)實生活中沒有用。
雖然你可以——可以說——在沒有扎實的算法和數(shù)據(jù)結(jié)構(gòu)知識的情況下在你的職業(yè)生涯中走得更遠(yuǎn),但掌握這些概念將加強(qiáng)你的知識基礎(chǔ),讓你成為一名更好的程序員。
算法不僅僅是計算機(jī)的概念。算法是一組步驟,當(dāng)遵循這些步驟時,可以解決特定問題。如果您真的考慮過,我們每天都在開發(fā)和使用算法!當(dāng)我早上醒來時,我總是煮一些咖啡。我拿到咖啡豆,研磨它們,用淡水裝滿我的咖啡機(jī),然后沖泡我的咖啡。
我只是按照一組特定的步驟來解決一個特定的問題:我的咖啡因成癮!。當(dāng)您學(xué)習(xí)如何從邏輯上解決問題并培養(yǎng)直覺時,您基本上就是在學(xué)習(xí)如何開發(fā)和應(yīng)用算法。
另一方面,數(shù)據(jù)結(jié)構(gòu)是您的輸入和輸出將如何呈現(xiàn)?;氐轿业目Х人惴?,咖啡的初始狀態(tài)會影響我準(zhǔn)備它的方式。例如,如果我有完整的咖啡豆,我需要先將它們烘焙并研磨,然后才能沖泡咖啡。但是,如果豆子已經(jīng)磨碎,我可以直接跳到釀造它們。想想整個咖啡豆和磨碎的咖啡豆是我的咖啡可能的數(shù)據(jù)結(jié)構(gòu)。因此,不同形式的數(shù)據(jù)——或咖啡——需要不同類型的處理。
無論您的目標(biāo)職業(yè)道路如何,如果您想建立IT職業(yè)生涯,您都需要學(xué)習(xí)并擅長編程。盡管您可以通過多種途徑來學(xué)習(xí)如何編程,但在我看來,正確的途徑是:
- 培養(yǎng)良好的編程直覺(培養(yǎng)解決問題的能力)。
- 學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)。
- 至少學(xué)習(xí)復(fù)雜性理論的基礎(chǔ)知識。
- 首先使用偽代碼實現(xiàn)您的解決方案。
- 學(xué)習(xí)任何編程語言的語法。
如果您按照前4個步驟進(jìn)行操作,則您在第5個步驟中選擇的語言將無關(guān)緊要。將前4個步驟視為您知識的支柱;支柱越強(qiáng),你的學(xué)習(xí)就越高。
以上就是長沙牛耳教育小編介紹的"想做程序員先學(xué)什么,正確的學(xué)習(xí)編程方法",希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務(wù)。