天天看點

學好程式設計的 4 個秘訣

你好呀,我是沉默王二,一枚沉默但有趣又帥氣的程式員(你聽,耳邊是不是響起了裝逼的聲音)。今天我來掏心掏肺地聊聊學好程式設計的 4 個秘訣,應該會對你産生一些微妙而又積極的影響。

閉上眼睛轉個圈,想一下你身邊那些人,是不是總有那麼幾個,能夠脫穎而出,好像不管他們做什麼事情,都能夠取得不錯的成績。

反正我身邊就有這麼一些人,他們學習學的好,是老師的驕傲,是同學的榜樣;朋友處的不錯,大家都樂于和他交往;工作上表現突出,不怕事,能抗事,團隊中處于核心地位,薪資待遇也高一籌。

認真地想一想,你就會發現,他們在做事情的時候是有方式可循的。

這裡多說兩句哈。上學的時候,我有一雙善于發現美的眼睛,但焦點是自己,是以很多同學都說我很自戀,同時呢,我還特别樂意挑别人的毛病。

最近一些年,我這雙眼睛雖然近視度數增加了,但仍然很善于發現美,并且焦點發生了變化,變成了身邊的人,無論他做的是什麼職業,我總想從他身上學到一些什麼。

這種轉變,對于我的成長來說,我認為非常重要。你是不是也心有靈犀,這麼覺得呢?好了,來看看做好事情都有哪些秘訣(可能算不上)吧。

第一,修煉内功。

大家應該都挺喜歡看武俠小說的吧,尤其是金庸的作品,男主都特别注重内功的修煉。蕭峰、郭靖、楊過、張無忌等等等等,内功都是獨領風騷的,能與他們匹敵的寥寥無幾。

程式員是這個時代的弄潮兒,要想站得住,不被大浪掀翻,内功自然要渾厚。直白點說,就是,隻會 CURD 是很容易被淘汰出局的。

對于初學者來說,一門程式設計語言,一種工具,一個架構,先會用是最迫切的需求。一上來就去看源碼,很容易就勸退了。

等會用了之後,用多了之後,就得深入,知道為什麼要這樣用,能不能按照其他的方式用,這背後的原理又是什麼,都得逐漸搞清楚,否則就隻能停滞不前,無法更進一步。

就比如說,我們學 Java,上來就去搞多線程并發、Java 虛拟機,我敢保證,學霸都不一定能扛得住。

正确的學習方法是什麼呢?

簡單了解一些 Java 的曆史背景,然後安裝 JDK,安裝 IDE,寫個 Hello World 感受一下程式設計語言的魅力。再然後學習資料類型、運算符、流程控制語句、通路權限控制、對象和類、接口與抽象類、字元串、異常處理,接着是集合、泛型、枚舉、IO,最後才是多線程并發、Java 虛拟機、性能優化。

就這樣,循序漸進,一步一個腳印,等到這些都會用了,程式設計經驗也提高了,再去深入地研究源碼,了解設計模式、計算機基礎知識、計算機網絡知識、資料結構與算法等等,就會遊刃有餘。

算法研究的目的是為了更有效的處理資料,提高資料運算的效率,資料運算是定義在資料結構上的,各大公司的筆試基本都考這個。如果你想拿到更多的 offer,拿到更好的 offer,LeetCode 上的題要能刷個一百到三百道,有時間有精力的話,最好參加一下 ACM 競賽,在找工作的時候會非常有優勢。

算法薄弱的同學,或者想要提高的同學,可以點選連結看我另外一篇文章!

第二,持續改進。

“偉大的牛逼之前都是傻逼式的堅持”,這句話聽起來雖然有點糙,但理不糙啊。每個人都知道改進,但并不是每個人都能堅持下去。

我有個大學同學,做淘寶客的,一開始沒有摸到門路,就很難,堅持了一年,收益甚微。有一天,他不知道哪根筋“錯”了,在淘寶上花了幾百塊錢做了一個網站,界面很醜陋,但 SEO 做得很不錯,慢慢就有人通過百度搜尋的關鍵字找到他。

随着時間的推移,找他的人越來越多,錢自然就賺到了。于是,他成立了一個工作室,很多大學同學都到他那幹過,但很多同學幹了三五個月後,就堅持不下去,不想幹了。

他呢,一直堅持着做,雖然有起有伏,但在鄭州買了一套大四室的房子,又買一輛不算差的車。結婚的時候,我去過他老家,條件不是一般的差,這讓我更佩服他了。

人,在天賦上,在出身上,是有差别的,不要明目張膽地忽視這兩點。但是,能夠有所作為的人,你會在他們身上發現一個共同點,就是“持續改進”。

拿寫作這件事來說,我有天賦嗎?如果有人說我有,我是拒絕承認的。但如果有人說我是一個懂得改變,懂得堅持的人,那我隻好承認,他是懂我的。

一開始,我隻在 CSDN 上寫,後來我同步到各大部落格平台,這就是改變。一開始,我隻在知乎上同步文章,沒有回答問題,後來我發現,回答問題的通路量遠超文章,這是知乎的機制決定的,我改變了。一開始,我不會玩 GitHub,最近一段時間我迷上了 GitHub,這也是改變。

這些改變,都是積極的,并且我還會一如既往地堅持下去,是以我才敢笃定,“明天會更好”。

第三,不斷疊加。

為什麼我一直推薦大家去寫部落格,并不是因為我嘗到了甜頭,而是因為寫部落格本身,最直覺的一點就是,部落格的浏覽量會“不斷疊加”,更深層次的是,寫部落格帶來的影響力會“不斷疊加”。

再沒有其他的事情,比寫部落格更容易上手,更能帶來不斷疊加的效應了。

很多人會說,我不知道寫什麼啊?

學習筆記就可以啊,讀書感悟就可以啊,解決 bug 的方案就可以啊。

還有人會說,我寫了,沒有通路量啊?

個位數的通路量總有吧!一開始,除非天賦異禀,大多數人的通路量都不會特别高,我也是從個位數起步的。

也許還有人說,我寫了,有通路量,但遇到瓶頸了。

瓶頸幾乎是每個人都會遇到的,“幾乎”甚至可以去掉。遇到瓶頸的時候,有人放棄了,一切化為烏有;有人堅持着,并且尋求改變,也許會失敗,也許會踏步不前,但更多的是收獲,蓄能,為下一次的起飛做好準備。

第四,保持耐心。

我們目前所處的時代,節奏非常快,快到有個 APP 就叫快手。但殊不知,有些事情,慢一點更好。

昨天,我和一個朋友聊天,他說最近接到一個項目,費用大概 9 萬多,工期 35 個工作日。還讓我看了一下需求文檔,說差不多都是增删改查,應該能完工。

看完需求後,我隻能說,我這個朋友真的是盲目樂觀。但這個時代就是這樣,甲方認為所有的項目都很簡單,不外乎增删改查,找個開源項目在上面改一改,就能完事,能需要多長時間?

你要是說需要一年半載,甲方就會說,“到那時候,花都謝了。”

足球場上,一個教練一年出不了成績,換,甚至半年出不了成績,換。球迷沒有耐心,俱樂部高層也沒有耐心。

電競比賽,一場遊戲如果超過一個小時,觀衆就坐不住了,制作方也坐不住,于是比賽時長越來越短,你就會發現,一些醬油位的英雄在一場比賽裡窮到隻能穿一雙草鞋。

在這樣的時代背景下,我們其實更應該保持耐心,多給自己一點時間。

之前有個讀者私信給我說,自己是轉行學程式設計的,很辛苦,花了很多時間,但似乎證明自己并不适合學程式設計。我就問他,你學多長時間了,他說三個多月了。

唉呀媽呀,三個多月真的是一個很短的時間,學程式設計并不是一件輕而易舉的事情,是需要時間的。我已經有十多年的程式設計經驗了,但很多時候,我還是覺得自己隻是一個剛入門的菜鳥(請允許我謙虛會),還有太多太多的知識等着我去學習。

遇到挫折的時候,能否給自己一點耐心,其實是一種不可多得的能力。表面上的光鮮亮麗,背後都是辛勤的付出,時間的沉澱。

像算法題,一開始刷起來,任何人都會感到很痛苦,關鍵是你得堅持,保持耐心,每天刷一道兩道,不要今天刷 10 道,明天刷 0 道,可能堅持不了一周時間你就放棄了。保持節奏,不要打亂自己。時間就是最好的朋友。

分享一些我之前刷 LeetCode 的心得,我膨脹到要飄起來了!

怎樣保持耐心呢?有兩個關鍵點,其一就是降低預期,不要把自己架在一個很高的位置,讓自己上下為難;其二就是全力以赴,做到問心無愧。