昨天有個對學習編程急切向往的小伙伴問我,學習編程如何才能找到感覺?都有哪些方法?你當初是怎么入門的?
問了我一連串的問題,學習編程這份急切心情溢于言表。然后說了一堆為了學習編程一次次的背概念,學習過程中如果覺得時間浪累就會恨自己不爭氣之類的話。這倒是勾起了我的一些回憶,我當初為什么選擇做一個程序員,自己是如何度過入門這段煎熬的路程的?為什么一直堅持編碼到現(xiàn)在?
說到對計算機的認識還是在初中時代,學校為了統(tǒng)計成績方便,據(jù)說當時花了9000塊買了一臺配置偏低的一臺電腦,很多人稱作微機,一個很時髦的地理老師在課堂上跟我們以后都是計算機的時代,不會操作電腦的就該落伍了,據(jù)說還專門花錢培訓了,如何去操作電腦其實就是今天常見的開機,關(guān)機,如何上網(wǎng)瀏覽網(wǎng)頁,如何使用常見的辦公軟件,在那個年代也是很酷的事情。要知道那時候?qū)W校考試成績統(tǒng)計全靠人工的一個個去算,每次考試閱卷統(tǒng)計都是老師們的熬夜日,看來科技的進步的確體現(xiàn)的很明顯。小小的心靈被計算機的神奇所吸引,開始對計算機的無限遐想。
進入高中的日子,組裝電腦成為當時極其流行的技術(shù),或許是巧合分在一起的同桌是個典型的電腦迷,整天去報刊店拿電腦報,里面廣告起碼占到一半的版面,即使是廣告也看的津津有味。最后和同桌達成協(xié)議一人買一期,換著看還能節(jié)省資源。在純真的年代覺得電腦真會無所不能,能做到一切。就這樣對電腦的興趣倒是越來越濃烈,也就是在那個年代網(wǎng)吧出現(xiàn)了,于是多了很多的不眠之夜,也不知道哪來的勁頭一次次翻越學校的圍墻。那個年代網(wǎng)吧主要游戲半條命,第一代網(wǎng)游傳奇游戲正是火的一塌糊涂的時候,對游戲天生無感,整夜在看一些電腦相關(guān)的知識,驗證電腦報上說的一些東西。
于是順理成章的進入大學的計算機系,開始對計算機的深層次的學習,很快發(fā)現(xiàn)學校的老師講的東西和自己想象的差別還是很遠,也不明白為啥聽不下去。于是決定自己倒騰,慢慢開始在圖書館呆的時間變長了,看的東西也是迷迷糊糊,就是在這種迷糊中過了一年的時間,到了暑假在學校讀書館借了本當初開始流行的java書,在家里開始慢慢的研究之旅,一個暑假好像也沒把這本書給看完,但是對里面的介紹的基本知識做了大量思想上的構(gòu)思,想著自己能夠做出像書上飛著的小鳥的一般玄妙程序,整天對著書本上的概念鉆牛角式的胡思亂想,做了大量的筆記,也不覺得堅持不下去或者放棄之類的意念。在書本看到三分之一的時候大約明白了一些東西,于是下面越看越快,越看越有感覺看到最后自信心爆棚,原來編程語言就是這么回事。倒是忘記了為啥沒有把這本書看完的原因。
回到了學校拉開自學編程的序幕,有意識的回歸到專業(yè)課的學習過程之中。由于家庭條件不是不好,也沒有勉強給自己配上一臺電腦,研究理論的層次多一些,網(wǎng)吧是唯一的實踐基地,很難想象周圍的人都在熱火朝天的玩游戲,我在一邊去敲代碼研究一些算法,算是奇葩了。其實宿舍的環(huán)境和網(wǎng)吧也是大同小異,呼呼玩劍俠情愿系列金山出的(金山在香港上市主要靠的游戲拉動的)算是半個奇葩,當然在宿舍也不是一味的學習狂,還是加入到熱火朝天的撲克中,也是玩的不亦樂乎。也曾被忽悠著玩游戲連續(xù)兩個周時間,白天睡大覺,晚上玩網(wǎng)游。在學習自信心的膨脹期也曾借了一本linux內(nèi)核(900多頁的樣子)研究了200頁,看的迷迷糊糊的,最后還是放棄了。
于是在不安分中,來到了帝都,來到了這個自己灑下十年汗水的地方,帶著無限的憧憬期待來到,加入第一家公司,第一天就感受到了,啥叫定力,一個人坐上一整天在電腦旁邊還是需要,對于一個隨意習慣的我來說,是個極大的考驗,但當慢慢適應(yīng)的時候發(fā)現(xiàn)這只是程序員基本素質(zhì)之一。那是對技術(shù)上的概念都是充滿極大的好奇,還專門買了幾個大塊頭的本子,把常見的一些疑問都記錄下來,包括一些異想天開的想法,然后拿著這個大本子在技術(shù)經(jīng)理不忙的時候,就挨著請教提問,到現(xiàn)在也不知道哪來這么多的疑問,前幾天拿出來看看還有很多疑問到現(xiàn)在還是在探索解決中。
慢慢的在堅守中,能夠獨立做一些東西了,在解決問題的時候自己的一些想法也能在程序中去實現(xiàn)了,也可以獨立設(shè)計一些具有挑戰(zhàn)性的任務(wù),慢慢的自己承擔一些比較有挑戰(zhàn)性的任務(wù),然后在第一個公司一呆就是五年也接觸到了公司做核心的代碼,也在上面做了大量的功能,基本上第一個五年計劃把如何做一個產(chǎn)品以及如何設(shè)計,如何搭建框架,如何寫出高質(zhì)量的代碼,如何調(diào)試代碼,如何保證cpu和內(nèi)存用的最低等等。用現(xiàn)在的一句時髦的話,算是了解套路了。
在之后的路子上,開始做一些更加具有挑戰(zhàn)性的,開拓性的工作,慢慢給自己定位未來的技術(shù)發(fā)展方向,以及主打點,管理方向或者技術(shù)專家方向都是要考慮的范疇。回到第一個問題點上,為啥選擇程序員更多是為了滿足少時的夢想,有了想法一步步的去實現(xiàn),有些時候只有夢想,沒有實踐步驟基本很難的。在這期間有無數(shù)放棄的理由,堅持才是最終做下來的根本。
在堅持的路上,有很多的誘惑,壓住自己性子,在一個適合自己發(fā)展的平臺,徹底了解徹底了解一個產(chǎn)品是如何出來的,從頭經(jīng)歷一個產(chǎn)品的產(chǎn)生過程還是相當重要的,不要只想著自己在這個公司掙得太少,換個公司能多拿多少,根基不牢最后會摔得很慘。等你工作了好多年之后在和別人談起自己曾經(jīng)主導過什么產(chǎn)品或者做過什么牛逼的產(chǎn)品是一件讓自己很自豪的事情。工作的年限越是長,那么對曾經(jīng)做過什么產(chǎn)品體現(xiàn)更加明顯,不要只是局限于自己會幾種編程的語言,那只是低層次的需求。
做技術(shù)是一個長時間的工種,不要期望短時間能造出多少成就,都是靠時間累積起來的,給自己設(shè)定一個目標,在忘我的學習過程中,也就慢慢入門了,慢慢找到自己的定位了。與其在找什么方法去學習,倒不如踏踏實實的學起來,進入狀態(tài)了,什么的招數(shù),方法妙招就是自然而然就來了。漂浮在上面觀望別人多牛,關(guān)心有什么樣的大神,倒不如自己把自己調(diào)動起來,人生何嘗不是如此,未完待續(xù)。