繼續在CSDN Blink發表了幾篇關於自學程式設計的小作文,講述了自學的重要性、自學過程和自學技巧,依然在社群火爆,我繼續做一次文章的整合與延展,以文章的形式發表出來,勉勵各位能在技術事業上不斷突破。
1. 即將找工作,下一步怎麼辦
我做過幾年某985名牌大學的研究生實踐導師,這些研究生一畢業,不存在找不到工作,而且還一個比一個找的好。但是面對大多數的學校一般的本科生、專科生來講,找資訊科技尤其是軟體開發工作實際上是人生一大難題。
核心難題是什麼?這是每一位畢業的同學們不得不面對現實問題,記住,如果把大學比作處處行走都舒服的沙灘,那麼社會就是鋪滿石子的山丘溝壑,核心難題是:你還一直光著腳。
什麼是靴子?名牌傍身是、家庭出身也是、含著金鑰匙更是。但唯獨你不是。那麼你的靴子是什麼呢?對於大多數人來說——那就是紮紮實實的技術。
可問題來了,你可以去埋怨大學沒教好,同樣也可以懊惱自己的虛度時光。可這都是過去時,現在你該怎麼辦呢?紮紮實實的技術從而何來。
自學,就從現在開始自學,做一個終身的學習者。
我一直認為,學習程式設計,學習作業系統,具有開發能力,是大多數寒門最好的敲門磚。當你進了科技公司以後,你會發現,其實大多數人只是掌握了一部分比較普通的技術,實際上40%的時間做技術,60%的時間各種團隊事務,甚至一部分人又從技術轉向了管理、銷售、產品等崗位,找到自己的真正所長。但是難就難在進門前的過程是極為困難的。
這一切都來自於你們現在這個時間,這並不是學習的結束,而是真正學習的開始,你現在最需要打下堅實的基礎,給自己做一雙好靴子,在社會前行之路不那麼艱難痛苦,這對你的未來發展很重要。
那麼下一步到底怎麼辦?如果你必須強調自己找工作,獲得一份薪水,彌補十幾年的教育投入,那麼我建議你從銷售開始,你需要錢,也適合做生意。如果你的家人還能撐住你一些時日,那就從現在開始自學吧,邊自學邊找工作,從面試中發現不足,但不要成為麵霸,給自己靜下心的時間和自學的空間。
自學第一選項是什麼?
那就是一定要掌握一門主流的程式設計技術,這個我說過無數次了,耐心掌握一門程式設計技術並開發實踐,參與培訓機構的專案或者直接參與開源專案,為自己的簡歷上色。
我再聊一個技巧:掌握哪種技術有一個隱藏的參考,那就是你身邊的氛圍是什麼?例如你有個大哥是Java方面的高手,或者你有個舍友是個C++方面的熱愛者,當然人家也願意指導你的問題。
若有貴人相助,可作為技術學習的第一選擇!若沒有貴人相助,勤看部落格園/CSDN技術部落格,這裡都是貴人。
2. 自學程式設計需經歷什麼樣的過程呢?
大多數學習程式設計的新人,也包括曾經的我,其實都不具備學習程式設計的天分,對我來說學習一門新的程式語言,是很艱難的,但是我敢說在Java和麵向物件程式設計領域,目前我的程式設計水準是一流的,至少我作為開發者所待過的公司裡是這樣子。因此要對自己有信心!
你可能認為我是吹牛逼,但是沒關係,先聽我講,然後再看我講地對不對!
自學程式設計從入門到掌握的過程,我總結分為了四個階段:枯燥、混沌、開悟、解惑。
這裡沒有捷徑,厲害的程式設計師之所以學習一門新的程式語言很快,就是因為這個階段是相通的。而作為新人是不行的,這是不僅基礎,也是最耗時間精力的階段,要苦熬,儘管你可以投機取巧,找一些速成班,但是請相信,走不遠。
當你對基礎掌握的七七八八,記住不是百分百,就需要開始系統的理解一個真實的開發工程,往往這個過程會發生在培訓班的高階階段或者進入公司的頭半年,這個階段,難的不是語法問題,而是面對工程框架和大量的程式庫,都能幹什麼,你會一臉懵逼!這個階段要做強行軍,花上十分的努力去面對,這個過程就是在重塑你的系統化思維!
突然有一天Leader給你安排的任務執行起來,你也看明白道理了;或者Leader聽了你糊里糊塗的邏輯,輕輕的指點迷津;又或者你進入到了原始碼作者的思路當中,理解了他們的用意,這個時候你開悟了,如同在乾渴的日子飲下沁人心脾的泉水,每天求知若飢,虛心若愚,這其實是程式人生第一次美妙的時光。
但事情還沒完,對於你只是領悟了程式設計系統化的思維,距離靈活運用和掌握還需要一段很長的時間,但是這個階段來了一個曾經和你一樣的小白,記好,一定要多教教他。的確你也是個半瓶子,但那不重要,將你所知的內容都分享給他,一起解惑他所遇到的問題,一定要以教促學,因為這是學習程式設計最與眾不同的地方,慢慢很多人就會發現你很樂於助人,總會有人請教你困惑的問題,每一次問題的發現、解決,本質上都是對解決問題者從多維角度的一次經驗積累的正反饋,而愈發增益你其所不能。
如果看到這裡,發現自己已經走完了這些過程,那麼恭喜你,在程式人生的技術發展上,你的前景無限光明。
3. 自學程式設計有哪些技巧?
不少同學在學習程式設計的過程都會訴苦,“程式設計好難學啊,自己沒有一點方向”。“網上一大堆資料視訊,人都看麻木啦!”
自學程式設計不僅僅靠的是毅力,還有方法和技巧,記好:程式設計學習不是死啃書,要去做!
程式設計的技巧這次我總結了五點:別問去做、保持正確、剝洋蔥、多用日誌,善用搜尋。
程式設計特別注重逆向思維方法,先照貓畫虎,不要先問為什麼,例如:Java程式必須使用Jdbc驅動包才能連線資料庫,你作為初學者對此刨根問底,解決問題嗎?要在邊做邊學的過程中,逐漸領悟系統的執行機制。
開發的第一原則是什麼?讓程式碼始終保持正確,這是永遠要銘記在心的準則,當程式碼的複雜度讓你理解起來很迷茫的時候,你一定先要讓它們編譯不要報錯,讓編譯好的程式執行不要報錯。只有正確可執行的程式碼,才能給與你解決問題的定力!任何錯誤都可能會干擾你對問題的正確判斷。
那麼我們怎麼才能做到始終保持程式碼是正確呢?那就是學會剝洋蔥方法,例如:你從網上扒拉下來一大堆程式碼,但是在你的IDE裡面都是紅色,你都懵了,怎麼辦?記好,精簡是保持正確的不二法則,不斷剔除錯誤程式碼,直到,哪怕就剩下一段程式碼,再一點點恢復,就會非常容易發現哪裡是錯誤的根源。
還有很多初學者,一上來就是IDE,執行程式出錯就是除錯工具排查錯誤,久而久之離不開除錯工具了!真正複雜的生產環境,沒有IDE你怎麼辦?你根本就駕馭不了,因此必須一開始就要習慣使用日誌來除錯,你能相信嗎,我程式設計二十年,除錯工具至今都不熟。
最後要說的就是出現了自己無法解決的bug,怎麼辦?要善用搜尋引擎,很多初學者遇到問題就慌,到處求人,而我這麼多年的開發經驗,大部分的bug,Baidu都能搜到,只有少量需要Google搜尋,而真正需要Google和Stackoverflow解決的問題,大部分初學者還碰不到,這樣效率高還不求人!
那麼如何善用搜尋呢?就是抓住關鍵片語合,別上去就是一個句子,搜尋不是Siri,這會給出歧義。異常中最能代表問題的關鍵字加上領域詞,例如你操作MySQL,終端丟擲了ClassNotFoundException異常,這兩個英文單詞的組合就是搜尋的重點,搜尋引擎一定會搜出來很多Jdbc驅動包缺失相關踩過坑的大佬文章。因此善用搜尋是程式設計學習最好的老師。
本文由「