如何学习编程?顺便介绍些好的网站
?
學習編程的過程,大致如下:
而以下就是我個人總結出的六項重要訣竅。
1.讓編程成為一個習慣
想要培養(yǎng)一項技能的最好的辦法,就是將他融入到我們的生活并成為我們的愛好。其實說白了,就是讓這個愛好成為一個習慣,一天不去做這件事情,都會覺得少了什么。在不知不覺中,這個習慣會像滾雪球一樣積累起來。
對我來說,養(yǎng)成這種習慣首先就是要對“拖延癥”說不。比如,你想鍛煉下自己的寫作能力時,但是沒有好看的本子,沒有好的靈感,沒有安靜的環(huán)境....總之就是找各種理由一拖再拖,最后就不了了之了。
但仔細想想等你有了好看的本子,舒適的環(huán)境....就能寫出好的文章嗎?不!我很明確的告訴各位,文章的功底是隨著你不斷的積累而成的。所以,當我們決定去做某件事情,請立刻!馬上!現在就要開始行動!
接著從小事入手,如果我決定開始跑步,那么最初只會要求自己每周跑兩、三天。雖然看起來要求低,但這樣的作法更容易長期堅持,且不會被其它因素所輕易干擾。
同樣的思路也適用于學習編程。每周拿出幾天,每天拿出幾個小時,編程學習就這樣慢慢步入正軌。如果大家覺得沒心情閱讀編程教材,沒關系,視頻網站上的技術講座能夠起到同樣的作用。
2.把工作拆分成小塊
對待編程工作,我們沒必要像健身狂人那樣一口氣做到筋疲力盡。與其直接編程2小時,我們完全可以先做25分鐘、而后休息5分鐘,整個過程重復4次。很明顯,25分鐘這樣的短周期更容易堅持也不會帶來多少壓力。
不過這樣的方式應該配合更為靈活的執(zhí)行思路。如果您感覺狀態(tài)很好,而25分鐘才剛剛完成熱身,那就繼續(xù)做下去并努力讓自己抓住這種狀態(tài)。向大家推薦蕃茄工作法,這是種學習新型技能的良好機制,推薦各位認真了解。
3.閱讀別人的代碼
經過這幾年的編程學習,我認為想要提升編碼水平的最佳途徑就是多看、多寫,然而閱讀別人的代碼也確實是快速提升代碼水平的一個技巧。至于如何高效地閱讀代碼,請參考我的這篇回答:
程序員如何高效讀代碼??www.zhihu.com
4.尋找良師益友
學習編程的一個很好的方法就是和其他的程序員交談。這不僅能夠幫助我們多獲得一種思維方式,同時也能夠以更為愉悅的感受完成學習任務。至于內容沒有特定的要求,可以是你正在學習的東西,也可以是你認為很酷的東西,更可以是你正在工作的東西。這樣做可能會讓你學到很多關于庫,服務,編程語言和模式方面的知識。但是,最重要的是,你能了解到其他人是如何看待編程的。
?
5.寫技術文章
如果大家學習了一種新的編程概念,但不能確定自己是否已經真正掌握,可以寫技術博文加以檢驗。或者是在技術博客網站上搜索,找找是否有人提出了類似的問題,然后給出您自己的答案。如果答案不對,那么討論的過程能夠有效加深理解。這樣的過程,能給我們帶來寶貴的經驗,同時也能幫助他人。
值得提醒的一點,別因為自己剛剛涉及編程而有所顧慮。羅馬不是一天建成的,出色的程序員也是一樣。只要您對問題有所了解,就不妨給出自己的答案——無論對錯,這都將成為一次寶貴的經歷。
6.保持耐心
對于人生來說,其中任何目標的實現都離不開耐心。編程學習就如其它任何學習任務一樣,都需要反復努力并投入大量時間。
在這個過程中,您一定會經歷高潮與低谷——別被這些曲線影響了心情。接受已經發(fā)生的一切,并盡可能避免其中不好的部分。就像打高爾夫球一樣,我們的手感總在不斷浮動,但只要堅持到底,您最終總能成為一個大神呢~
?
同志們,加油!
很多人覺得學編程難,大都是掌握方法,而不是能力、性別或其他原因。除了想達到行業(yè)頂級開發(fā)者的水平,如果你是想學編程,掌握了對的方法,就能學好。
個人通過題目描述分析,應該是學習方法不對,沒有培養(yǎng)出編程的思維和能力,這是一個因果關系。
?
感覺編程難,我在初學編程的時候也遇到過。剛剛學習編程會走很多彎路,想找一個合適的方法學習。有這樣想法是值得鼓勵的,至少是知道怎么學習更好。我本人有些參考經驗,可以吸取適用自己的地方。
計算機重點在于用已有的知識搭構建功能,而構建功能的步驟是固定的,只是需要掌握牢基礎知識,并且提升自己的思考能力。思考能力也算是程序員的核心了(不是看,不是寫,而是思考,如果照著別人代碼寫同時帶上了思考,那么也是有效果的)。我建議的學習方式如下:
學習基礎知識:
1. 數據結構,經典算法。可以根據學到的算法和數據結構解決書本習題后面的算法問題(注意不是看了解答過程再重復寫一遍,而是在自己不知道情況下寫一遍,代碼量可能是只有十幾行,寫花不了多少時間,只是思考得花些時間——一定要堅持,我曾經思考了幾天就為了解一道算法題,當然根據自己的情況,不用一下選這么難的。這里培養(yǎng)的是解決問題的思考能力)。
2. 學會寫遞歸,同時把遞歸變?yōu)檠h(huán)實現相同的功能。(此處是完善思考能力,再提升一步)
當你學會前面2條的時候,即使你是第一次接觸計算機,經過努力和學習掌握后水平已經超過了入門的同學,達到了中級的概念。這是內功,不是說你對某個語言運用自如了。武林高手比武比拼的是內功,外面掌握語言學習用法只是熟悉程度是外在的招式(這個非常容易掌握,多寫幾次就會)。
為什么開始就進入內功的修煉,因為萬法歸一,萬變不離其宗,無論你以后學習什么語言,學了多少語言,剛進入的水平就是中級,一勞永逸。
后面只需要花點時間掌握語言的用法,方法調用,框架的使用,那么恭喜你,你的能力已經可以勝任大部分互聯(lián)網公司的職位了。(這里得注意順序,是先掌握了核心的算法和思想后才是熟悉語言本身)
下面是通往高手的進階篇,只有在你掌握上面的東西后,才能開啟下面的技能:
開發(fā)過程中多思考,多嘗試新東西,思考是通往編程高手應該具備的基本素質。
這里還是思考,和上面還有不同。思考不是瞎思考,而是有深度思考,出色的程序員寫代碼的時間非常少,大部分都是在思考。給你一個功能,需要根據自己有的基礎知識在腦海中想怎么實現合理,高效,想清楚后再寫,而不是邊寫邊改邊想,那么水平永遠都是止步不前的抑或進步和蝸牛一樣。
當思考同一類問題,用的時間越來越少,那么側面反映出水平提高了,可以試著思考更復雜的問題。思考需要循序漸進,不能一開始拿一個非常復雜的問題思考,而是在自己跳一下就能夠到的高度。
對于在公司上班,你會發(fā)現思考時間越來越少,完全是需求到了就馬上知道怎么寫了。然后就是無聊聽著公司領導介紹,開會討論。但是不要忘了,自己得給自己找事做,停止思考或者習慣了某種思考模式后進步就會減慢,要進步就要不斷嘗試新東西,多思考。
以上就是我建議的學習方法,希望能對你有所幫助。當然,每個人都有自己的學習方式和習慣,適合自己的,才是最好的。
參考內容: 自學成才的程序員,給新手學習編程的六個建議
推薦一些程序員學習網站:
0. GitHub — 開發(fā)者最最最重要的網站:https://github.com
這個不用多說了吧,代碼托管網站,上面有很多資源,想要什么輪子,上去搜就好了。并且呢,上面有很多優(yōu)秀的程序員,你可以在這里交到很多好朋友喔。
1. Stack Overflow — 解決 bug 的社區(qū):https://stackoverflow.com/
開發(fā)過程中遇到什么 bug,上去搜一下,只要搜索的方式對,百分之 99 的問題都能搜到答案。在這里能夠與很多有經驗的開發(fā)者交流,如果你是有經驗的開發(fā)者,還可以來這兒幫助別人解決問題,提升個人影響力。
2. 程序員客棧:https://www.proginn.com/
程序員客棧是領先的程序員自由工作平臺,如果你是有經驗有資質的開發(fā)者,都可以來上面注冊成為開發(fā)者,業(yè)余的時候做點項目,賺點零花錢。當然,如果你想成為一名自由工作者,程序員客棧也是可以滿足的。只要你有技術,不怕賺不到錢。很多程序員日常在這里逛一下,接一點項目做。很多公司也在這發(fā)布項目需求。
3. 掘金 — 幫助開發(fā)者成長的技術社區(qū):https://juejin.im
現在國內優(yōu)質的開發(fā)者交流學習社區(qū),可以去看大佬們寫的文章,也可以自己分享學習心的,與更多開發(fā)者交流。認識更多的小伙伴兒,提升個人影響力。
4. v2ex:https://www.v2ex.com/
V2EX 是一個關于分享和探索的地方,上面有很多各大公司的員工,程序員。你想要的應有盡有。
5. 博客園:https://www.cnblogs.com/
博客園創(chuàng)立于2004年1月,是一個面向開發(fā)者的知識分享社區(qū)。自創(chuàng)建以來,博客園一直致力并專注于為開發(fā)者打造一個純凈的技術交流社區(qū),推動并幫助開發(fā)者通過互聯(lián)網分享知識,從而讓更多開發(fā)者從中受益。博客園的使命是幫助開發(fā)者用代碼改變世界。很多早期的高質量內容都在博客園。
6. Medium:https://medium.com/
國外優(yōu)質文章網站,Medium 的整體結構非常簡單,容易讓用戶沉下心來專注于閱讀。上面有很多高質量的技術文章,有很多厲害的人在上面發(fā)布內容。
7. Hacker News:https://news.ycombinator.com/news
國外優(yōu)質文章網站,上面有很多高質量的技術文章,有很多厲害的人在上面分享內容。
8. GeeksforGeeks:https://www.geeksforgeeks.org/
GeeksforGeeks is a computer science portal for geeks。(感謝@三三白白的補充)
除了這些論壇,程序員還有一些必備網站:
0. Google:https://google.com
這個不用多說了吧,查資料,有問題,Google 一下。當然,能訪問的人自然會用,訪問不了的人,可以用必應或者百度吧。
1. 算法學習 LintCode:https://www.lintcode.com/
算法學習網站,上去每天刷兩道算法題,走遍天下都不怕。
2. 算法學習 LeetCode:https://leetcode.com/
也是算法題網站,同上。
3. 算法學習 LeetCode 中文站:https://leetcode-cn.com/
這個是上面算法題網站的中文站點,英文不好的可以刷這個,英文好的推薦去刷英文網站的題目,還能提升英語能力。
4. 牛客網 — 面經和刷面試題:https://www.nowcoder.com
各個公司的面試題和面經分享,找工作前認真刷一刷,一定會有很大收獲!拿到心儀的 offer!
5. Web 開發(fā)練習題:https://www.freecodecamp.org/
這是國外發(fā)起的一個 Web 開發(fā)學習的網站,從簡單到深入,一步一步帶你學習 Web 開發(fā)。就像一本練習冊,并且當你完成相應的內容后,會得到相應的資格認證。
6. 百度前端技術學院 — 前端開發(fā)項目庫:http://ife.baidu.com
學前端的看這里,百度官方推出的前端開發(fā)學習技術學院,題目從簡單到困難,如果你把里面的題都做會了,找個 BAT 的前端工作不成問題的。
其他學習網站:
0. 各種編程語言,編程工具,各種輪子的官方網站
要記得,學習一門語言或者一個工具,最優(yōu)質的學習網站就是他的官方網站,官方文檔。
1. 菜鳥教程:http://www.runoob.com/
菜鳥教程的 Slogan 為:學的不僅是技術,更是夢想! 記住:再牛逼的夢想也抵不住傻逼似的堅持!網站包括了HTML、CSS、Javascript、PHP、C、Python等各種基礎編程教程。
2. 中國大學MOOC網:https://www.icourse163.org/
中國大學MOOC是由網易與高教社攜手推出的在線教育平臺,承接教育部國家精品開放課程任務,向大眾提供中國知名高校的MOOC課程。在這里,每一個有意愿提升自己的人都可以免費獲得更優(yōu)質的高等教育。
如果大家對C/C++感興趣的話,可以加一下我們的學習交流Q群:637 ?935 ?295,免費領取一套學習資料和視頻課程喲~
推薦給前端程序員的技術、論壇、資訊網站:
推薦給前后端程序員的技術、論壇、資訊網站:
推薦給前安卓程序員的技術、論壇、資訊網站:
推薦給前 iOS 程序員的技術、論壇、資訊網站:
知友推薦:
1. 在線學習網站:https://www.tutorialspoint.com/
2. 算法學習和競賽網站:http://codeforces.com/
3. 程序員問答網站:https://segmentfault.com/
4. Linux Kernel:https://www.kernel.org/
5. FCC 中文網:https://www.freecodecamp.one/
6. B 站:https://www.bilibili.com/
7. 阿里巴巴開源鏡像:https://opsx.alibaba.com/mirror
8. USTC 開源鏡像:http://mirrors.ustc.edu.cn/
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的如何学习编程?顺便介绍些好的网站的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重磅 | 吴恩达新书《Machine L
- 下一篇: 撒花!吴恩达《Machine Learn