我有一些很正經的建議

大家好,我是二哥呀!

今天不聊別的,給大家聊一下我認爲學編程當中最重要的三點,尤其是針對新人來說。

  • 熱愛
  • 努力
  • 解決問題的能力

先說熱愛。

有的同學是一開始就熱愛,所以選專業的時候就選擇了計算機專業;有的同學是誤打誤撞,比如說我就是,大學其實選的是機械自動化,後來被調劑到了計算機網絡專業,屬於典型的後知後覺型。

一開始,和大多數新人一樣,我認爲編程好難學,班裏面的好多同學也認爲好難學,能轉專業的就轉,只有不能轉的才留了下來。

十幾年前的計算機專業遠沒有現在這麼熱鬧,很多學校都是作爲邊緣專業來錄的。和我同屆的高中同學,我認識的當中,沒有主動選擇計算機專業的。

所以,我對計算機的熱愛,純粹是經過後天刻意練習的。

很多同學可能會不解,熱愛也能練習?

當然。

當我發現這個專業找到工作,能養活自己,能不再伸手向父母要錢的時候,熱愛就一點點的來了。隨着年紀的增長,我越來越喜歡這個專業了,不是因爲它充滿魅力,而是它讓我的生活變得越來越好。

對,我是個俗人。

一開始,這很難,因爲經過兩次高考的打擊,我的厭學情緒特別強烈,以至於我大學的時候好幾門專業課都掛科了,同學們可能很難想象:二哥,好多人心目中的榜樣,大學還會掛科。

真實情況就是這樣,所以很多新人給我抱怨說,“二哥,編程好難啊,總是學着忘着,我該怎麼辦?”我知道原因在哪?你對編程還不夠熱愛!

當我拿到第一筆實習工資的時候,1200 元,我記得清清楚楚,當時心裏樂開了花,知道嗎?人生第一次一次性地掙到這麼多錢!拿到工資就趕緊給父母打了一通電話,對,現在回想起當時的場景還是有點熱淚盈眶的。

雖然電話裏沒有喊出那句:“爸媽,你們的兒子終於掙錢了,終於不用再伸手找你們要錢了!”但其實,心裏面早已經喊了幾千遍!

同學們可能很難想象,1200 元的實習工資,能有那麼激動!能,對於當時的我來說。

有了熱愛,你自然就會去努力!這是水到渠成的一件事情。

但往往很多時候,我們會迷茫,不知道該往哪裏去努力,不知道自己的勁往哪裏使!

我也有過。當我拿着 1200 元的實習工資高興的屁顛屁顛的時候,身邊的一些同事,尤其是一些蘇州的本地人,來實習根本就不是爲了掙錢,而是給自己一些歷練的機會而已。

印象很深刻。我問過一個同事,“你拿到工資後幹嘛呀?”

“加油啊!這點錢還能做什麼!”這個回答對我的衝擊感特別強烈,有那麼一刻,我覺得努力毫無意義。

但後來我想明白了。

原來,人與人之間的差距是與生俱來的!你只有努力地追趕,纔有可能把這些差距縮小;而一旦你停止努力,差距就會被越拉越大!

想明白了之後,我就去一個叫編程入門網的網站上抄 Demo,每天一有時間我就去抄。對於那時候的我來說,看書提升得太慢,只有通過實戰,我才能快速地提升。

後來,從前輩們那裏又瞭解到,公司接下來會非常依賴一個前端框架,我就硬着頭皮去研究源碼,並利用空閒時間做了一個局域網性質的聊天工具。

learn by doing,就是我的經驗心得,它讓我急速地成長,很快就在技術上領先了同一批進公司的新人。

讓你的代碼量從 100 行到 1000 行,再到 10000 行,再到 10 萬行,你就不會再有那種“學的時候能學會,做的時候不會做”的感覺了。

當然了,在敲代碼的過程中,你要學會思考,爲什麼人家要這樣實現,爲什麼不能換一種方法?舉個很簡單的例子,人家用的 ArrayList,你能不能用 LinkedList?人家用的插入排序,你能不能用冒泡排序?

在那段野蠻成長的過程中,我確實很少看書。但最近兩年,我讀了很多很多經典的書,比如說《代碼整潔之道》、《人月神話》、《編程珠璣》、《重構》等等等等。

讀書可以讓你知道爲什麼要這樣做,背後的原理是什麼。

再加上大量的輸出,就讓我對編程的思考更加深刻了。

大家想一想,程序員最核心的競爭力是什麼?

解決問題的能力,是我認爲最核心的競爭力

當一個問題擺在你面前,你不能束手無策呀!你熱愛,你努力,最終是要解決問題的,你做不到的話,就只能被扣上“紙上談兵”的帽子了。

解決問題的過程可以分爲三步:

  • 透徹理解問題是什麼?
  • 導致問題出現的根本原因是什麼?
  • 找到最佳的解決方案。

一開始,由於缺乏編程經驗,我們很可能連問題到底是什麼都搞不清楚。而解決一個 bug 的首要條件是要能夠重現問題,然而編程和其他很多事情都不大一樣,有些 bug 是很難重現的。

所以對於新人來說,一開始遇到問題的時候,只能面向搜索引擎,去看看別人有沒有遇到類似的問題,有沒有解決方案,然後套用一下,看能不能把問題給解決了。

問題解決不了的時候,想問領導,想問大佬,能不能手把手教一教啊!

有一說一,我一開始也是這樣的。但漸漸地,我就會去思考,爲什麼會出現這個問題,這個問題的底層邏輯是什麼,除了這種解決方案,還有沒有其他更好的呢?要不自己再花點時間去研究一下?

當你有了敢一個人去解決問題的膽量後,其實已經證明你進步了,因爲只有支撐你的基礎紮實了,你纔會有這樣的膽量。

最後,總結一下我認爲非常重要的東西吧。

熱愛、努力,解決問題的能力,除此之外,你還應該重視基本功:

  • 編程能力:大量地練習、會 debug,追求高質量的代碼;
  • 基礎知識:操作系統、計算機網絡、數據結構與算法;
  • 抽象思維:現實是物理的,而程序是虛擬的,這個轉化的過程,需要極強的抽象思維能力。

好了,今天就聊到這吧。

多說一句,今年的計算機專業真的特別卷,就連我的二舅家的一個妹妹都要主動報計算機專業,剛剛我二舅給我打電話的時候我都有點小驚呆了!

難道是我因爲我這個“榜樣”,潛移默化了弟弟妹妹們?

(不過,我打算把她勸退到醫護專業,她的成績不太理想,大家怎麼看?)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章