我想說白粉,LeetCode不只是刷題那么簡單讯壶,也不只是應(yīng)付面試那么點用處。
我在多年的軟件開發(fā)中状婶,一直以來都不太去關(guān)注實驗法和數(shù)據(jù)結(jié)構(gòu)方面的東西意敛,總是秉持淺度應(yīng)用的理念,只要不是荒唐的暴力算法也就放過了自己在這個領(lǐng)域的掙扎膛虫。
最近無意間訂閱了極客時間的課程草姻,并參加了《左耳聽風(fēng)》發(fā)起的ARTS挑戰(zhàn),參加挑戰(zhàn)的時候?qū)崯o十足的把握能堅持下去稍刀,抱著試一試的心態(tài)撩独,畢竟除了跑步、讀書外就沒有堅持過什么很有意義的事情。
首先ARTS第一項就是“Algorithm”:每周至少做一個 leetcode 的算法題跌榔,看到它的第一眼內(nèi)心就有點慌張异雁,雖然算法這一塊我一旦鉆研起來也不是最弱的那一個檔次,但很多年沒有去深入的對算法進行有意識的訓(xùn)練僧须,也一直認為這是自身在技術(shù)領(lǐng)域的弱項纲刀。前兩天第一次開始全神貫注的選了一個簡單級別的算法題來熱身,算法倒是實現(xiàn)了担平,但是執(zhí)行時間是打敗了30%左右的同類算法示绊,內(nèi)存消耗則是打敗了10%左右的同類算法,莫名感到巨大的差距出現(xiàn)在面前暂论。然后根據(jù)自己本身的理解去對算法調(diào)優(yōu)面褐,哪怕一個變量也不放過,最后結(jié)果還算滿意取胎,但也從另外一面暴露了對計算機基礎(chǔ)理論知識運用的不熟練和深度思考的能力不足展哭。
關(guān)于深度思考:
在工作中,很多時候我們都是在工作中不斷的去學(xué)習(xí)新知識闻蛀、鞏固舊知識匪傍,付出比別人多得多的努力,總是認為努力就是值得的觉痛,努力就應(yīng)該有收獲役衡,但大部分人的努力和收獲都是不成正比的,一直在沮喪中尋求突破薪棒,就這樣周而復(fù)始手蝎。另外,可能自己也會意識到努力帶來的不是收獲俐芯,而是因為對未來的迷茫和恐懼棵介,不得已而為之。
我們IT行業(yè)的很多從業(yè)人員吧史,當(dāng)然也包括我自己鞍时,有過這樣的感慨:大數(shù)據(jù)來了、人工智能來了扣蜻、區(qū)塊鏈誕生了...逆巍,計算機行業(yè)更新?lián)Q代太快了,青春逐漸遠去莽使,35歲眼看越來越近锐极。自己給自己帶來恐懼,自己給自己設(shè)限芳肌,心亂則人浮灵再,縱使努力加倍但還能有多大的提高呢肋层。
IT行業(yè)無窮無盡的變革、無邊無際的變化翎迁,心念之而無力栋猖。然而我想,如果自己在進行相應(yīng)領(lǐng)域的工作時汪榔,能夠更多的去思考這些技術(shù)背后的本質(zhì)蒲拉,深度的去挖掘它們在行業(yè)中的意義,慢慢的就會發(fā)現(xiàn)痴腌,很多東西是相通的雌团,學(xué)一知十而不是學(xué)十知一,從厚積薄發(fā)轉(zhuǎn)變到薄積厚發(fā)士聪。但前提是學(xué)會深度思考锦援,深度應(yīng)用,即使面對全新的技術(shù)也能快速抓住核心剥悟,找到重點灵寺。最終形成自己的知識體系、獨立的深度思考方式区岗,當(dāng)然替久,在一定程度上也得借助前輩們的經(jīng)驗和教訓(xùn)。例如躏尉,在工作中,我有時會去問別人的作品后众,這樣做的原因是什么胀糜,他會饒有信心的把阿里或騰訊的App、網(wǎng)站統(tǒng)統(tǒng)打開蒂誉,得到的回答是“阿里是這樣做的教藻、騰訊是這樣做的...”,實際上聽到這樣的答案讓人感到一陣陣的悲哀右锨,有影響力的東西是在特定的環(huán)境中才有影響力括堤、才有意義,并不是努力的拿來用就適合自己绍移、就是最佳方案悄窃,而是要去理解這背后的深意才是最重要的。
關(guān)于計算機基礎(chǔ)理論:
IT行業(yè)工作多年的人蹂窖,大部分會遇到瓶頸轧抗,覺得什么都會,深究又什么都不會瞬测,問題在哪里呢横媚?--基礎(chǔ)理論纠炮。初入社會的大學(xué)生或者有多年工作經(jīng)驗的人,覺得實踐才是檢驗真理的唯一標(biāo)準灯蝴,然而有沒有想過恢口,低標(biāo)準的真理,實踐再多有什么用呢穷躁「纾基礎(chǔ)理論沒有上升到一定層次,很可能一直處于所在低層次的頂端折砸,無法突破看疗,要想有所突破,簡直比登天還難睦授,這就是我們所能感受到的瓶頸两芳。
最近在看王寶令老師的《Java并發(fā)編程實戰(zhàn)》的專欄,他在專欄中提到了“基礎(chǔ)理論”這一話題去枷,深有同感怖辆。可能在java領(lǐng)域的同行們看過諸如《java核心編程》删顶、《java編程思想》等等之類的大量書籍竖螃,感受是什么呢?這本書的內(nèi)容我在那本書里面看過逗余,有種踏雪無痕的快感特咆,但你學(xué)的東西重復(fù)了,在花寶貴的時間學(xué)習(xí)同樣的知識录粱,內(nèi)心是明白的:沒什么太大的長進腻格,就喜歡樂此不疲。
在我看來啥繁,理論基礎(chǔ)是良好實踐的開端菜职,過于追求表面的東西就會變得華而不實,很容易走向技術(shù)領(lǐng)域的死角旗闽。在面試的時候酬核,我不太喜歡問候選人會做的東西,喜歡從更基礎(chǔ)更理論的方向去了解候選人在所知領(lǐng)域的突破能力适室、學(xué)習(xí)能力嫡意,并不是會這門技術(shù)、這種工具就能把事情做好捣辆,其實還遠遠不夠鹅很。
在多年以前,始終覺得研究生罪帖、博士生沒有什么了不起促煮,象牙塔里的生活終究會被社會的殘酷所淹沒邮屁,他們多學(xué)三年或六年,甚至更長時間菠齿,總抵不過在社會上摸爬滾打同等時間所具備的能力佑吝,如今回想起來,那是大錯特錯绳匀。這不是智商的差距芋忿,而是層次和格局的差異,不是大多數(shù)普通人憑努力就能彌補的疾棵,他們在基礎(chǔ)理論上的深度早已植入為一種本能戈钢,在抓住事物本質(zhì)方面更精準、更快速是尔,當(dāng)然在實踐過程中帶來的效果和影響力更具有可信度殉了、說服力。
最后:
通過一次簡單的挑戰(zhàn)嘗試拟枚,ARTS挑戰(zhàn)應(yīng)該可以對自身深度思考和對計算機基礎(chǔ)理論的理解更進一步薪铜,期待堅持到最后一周后養(yǎng)成的習(xí)慣,也許也就沒有最后一周之說了恩溅,堅持已成習(xí)慣還會在乎堅持么隔箍。