堅(jiān)持刷題678天的感受!
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
通過自己678天的刷題,不斷總結(jié)自己和別人的經(jīng)驗(yàn),有以下幾點(diǎn)感受與大家分享。
弄清楚為什么要刷題?
刷題的原因各種各樣,結(jié)合本人和朋友的經(jīng)歷,以及網(wǎng)上大家的分享,比較有代表性的原因有以下四種:
找工作。當(dāng)下找工作的氛圍下,不管是社招,還是校招,都不可避免的會(huì)有上機(jī)考試或者面試時(shí)手撕代碼。 自我能力提升。畢竟在學(xué)完相關(guān)的理論知識(shí)后,還是需要結(jié)合實(shí)際的編程,將理論很好的掌握,也是進(jìn)一步強(qiáng)化對(duì)編程的熟悉程度、提升自己的能力。 編程大賽/考試。現(xiàn)在LeetCode的每周競(jìng)賽、ACM大賽、藍(lán)橋杯和各種極限編程大賽,以及計(jì)算機(jī)二級(jí)考試、PAT考試、課程的上機(jī)考試、計(jì)算機(jī)方向考研或者保研復(fù)試的上機(jī)考試等,這些都對(duì)編程有著一定的要求,促使大家去刷題,提升自身能力,在競(jìng)賽或考試中取得理想的成績(jī)。 興趣愛好、放松,提升自信心。有些人喜歡編程,還有些人拿刷題作為一種放松(……),再或者是在其他方面沒有信心但是在編程上很擅長(zhǎng),進(jìn)而通過刷題來提升一下自己的信心。
不管何種理由都促使我們?nèi)ニ㈩},只有在刷題前搞清楚自己是為了什么,這樣才會(huì)有更多的動(dòng)力去刷題。
刷題前需要做哪些準(zhǔn)備?
有一門熟悉的編程語言。個(gè)人推薦C++或者Java。
了解基本數(shù)據(jù)結(jié)構(gòu)和常用算法
A. 基本的數(shù)據(jù)結(jié)構(gòu)包括:棧、隊(duì)列、鏈表、樹、堆等;
B. 常用的算法:動(dòng)態(tài)規(guī)劃、分治算法、貪婪算法等。
基本知道如何入手進(jìn)行算法設(shè)計(jì)和分析
A. 算法設(shè)計(jì):可以根據(jù)要求設(shè)計(jì)完成相應(yīng)任務(wù)的算法;
B. 算法分析:給出一個(gè)算法可以從時(shí)間復(fù)雜度和空間復(fù)雜度進(jìn)行分析。
小白如何刷題?
根據(jù)刷題的目的不同和刷題中會(huì)遇到的問題,分為三個(gè)部分,具體如下:
1. 目的:建立扎實(shí)的Coding能力
推薦刷LeetCode中的題目作為練習(xí)和提高,目前已有題目2094道。
具體執(zhí)行為:
① 掌握一門基本的編程語言,推薦Java和C++;
② 按照特定模塊進(jìn)行系統(tǒng)性刷題。(千萬不要簡(jiǎn)單地按照easy, mid, hard的順序來隨機(jī)刷題); ? 具體按照哪一種模塊的順序刷題可以參考刷題的知乎問答(鏈接:https://www.zhihu.com/question/36738189)
③ ?必須要反復(fù)刷題,做到一題多解(時(shí)間允許分析每一種解法復(fù)雜度),而且不能只盯著高頻題目;
④ ?具體刷題時(shí):一看二抄三改四寫;
⑤ ?現(xiàn)在LeetCode有上千道題,每個(gè)部分一定要找有代表性的題目去做,而且在刷題過程中會(huì)有模板去套用。
2.目的:建立求職面試的解題思維
推薦刷《劍指OfferⅡ》,其中一共75道題,但是設(shè)計(jì)各種變形。建議刷至少3遍。
具體執(zhí)行為:
第一遍,不需要死磕,但是要完全弄懂題目,必須看題目的分析。
第二遍,進(jìn)一步熟悉題目,對(duì)于一道題的各種變形也可以做出。
第三遍,對(duì)于這不到100道題和一些相應(yīng)的變形已是特別熟練的狀態(tài),上機(jī)編程沒問題,手撕代碼也是ok的。
3.目的:解決可能的問題
A. 可能會(huì)遇到的問題
①刷過的題老是忘、②刷題的速度很慢、③堅(jiān)持不下來
B. 對(duì)應(yīng)解決方案:
①及時(shí)重復(fù)、與人分享,以及做筆記;
②制定計(jì)劃、分解計(jì)劃、快速刷題(為了節(jié)約時(shí)間,五分鐘沒有思路,就別浪費(fèi)時(shí)間了。明確認(rèn)知,這個(gè)和高考刷題沒什么區(qū)別,理解不了,先背下來。);
③為自己制定獎(jiǎng)懲措施,或者組隊(duì)刷題。
刷題資料整理
根據(jù)本人的經(jīng)驗(yàn),再結(jié)合網(wǎng)上大家的分享,有一些書籍和網(wǎng)站,以及其他的網(wǎng)絡(luò)資源可以推薦給大家。
1.書籍
《大話數(shù)據(jù)結(jié)構(gòu)》、《啊哈!算法》、《圖解算法》
2.刷題網(wǎng)站
LeetCode、??汀AT
3.其他網(wǎng)絡(luò)資源
① https://github.com/liuchuo
② ?https://leetcode-cn.com/circle/discuss/nRXySQ/
③ ?https://github.com/Jack-Cherish/LeetCode
④ https://www.mdeditor.tw/pl/gmDL
⑤ https://labuladong.gitbook.io/algo/
最重要的一點(diǎn)
掌握理論固然重要,更重要的還是要?jiǎng)邮謱?shí)踐。
重要的事情說三遍:Coding、Coding、Coding
最后送給大家我很喜歡的一句話:日拱一卒 功不唐捐
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~

