這篇文章不做技術分享,和大家一起討論一下學習的途徑和方法。
零基礎的小白學程式設計的方法:
1、學習的需要
程式設計師產業技術更新迭代速度快,這個特點身為業界的每個猿友都有深刻體會。
很多技術基本上每年都有一個大小版本,每個版本的出現意味著有新的技術想法和應用技巧出現。也許你用不到但是你需要去了解。你看自從甲骨文公司宣布收購Sun公司,Java 的 JDK 版本基本上維持一年一更的頻率。 2014年,甲骨文公司發布了Java8正式版,5年來,目前最新的已經是JDK12。
面對各種技術的各種更新,程式設計師要面對的不僅是某個單一技術的版本更新,也就是縱向更新。也要比較各種相似技術的優缺點,即橫向比較。
因此猿友必須隨時保持學習和鑽研的精神,不但要耐得住寂寞學習技術應用還要靜得下心推敲各種繁瑣的技術源碼和理解其原理,想想都是很頭大。
對於學習,一般因猿而異,分為兩種類型。一種是外在驅動型的,另一種則是自我驅動型的。
外界驅動型的猿友,學習技術相對被動,公司業務需要了某些技術或面試中問到了某些自己未涉足的技術他才去學習和研究。而自我驅動型的猿友,則是有自己的一套學習定位和技術成長路線規劃,他們更主動的去學習自己未涉足的技術領域。
當然無論哪種類型,談到學習都離不開如下幾個途徑:看視頻,買技術書籍,逛博客和社區,閱讀官方文檔,利用知識付費平台。
我們分別來詳細分析和討論一下以上各個途徑的特點,以及大家偏愛哪一種?
2、看免費教學視頻
免費教學視頻,一般很多是培訓機構錄的,目的當然是為了推廣和招生。像我剛入門的時候也是學畢向東的Java基礎教學。對於初學者來說,影片幫助確實蠻大的。推薦影片教學:《Java教學》
當然還有一直都很火紅的伺服器腳本語言PHP,用PHP開發web網站的效率非常高!網路上的PHP免費影片教學也非常豐富,推薦免費影片:《PHP教學》
這些影片它的目的由於是推廣和招生,所以錄的時候一般都是很認真的而且錄製的人也一般有豐富的經驗,而且講解的也很詳細,因為這樣才能吸引到學生。
而有些技術影片則是某些教學網站為例吸引流量而錄的,但是這些影片都有個特點:知識點偏於基礎。
對於初學者來說,影片教學是有幫助的,因為學習成本低,而且有老師給你詳細講解每個知識點的總結,這時候你像個初生的嬰兒,接納和吸收的效率比較高。但是如果你工作幾年後,已經有幾年的行業經驗了。影片教學一般是滿足不了我們的需求了,為什麼?
因為它的效率太低了。有幾年經驗的人你去看視頻,視頻中某些知識點也許你已經掌握或者了解,但是視頻不是針對你個人的,所以一個幾十分鐘的或者接近一小時的視頻,對於你而言,也許只有其中的幾分鐘是你想要的,其他的你可能都會按著快轉鍵跳著看。你會慢慢感覺到的感覺是在浪費時間,這時你需要調整下節奏了。
3、買技術書
技術書籍,這沒什麼好說了。身為技術人員,我相信沒有哪位猿友說自己沒有買過技術書籍,而且一般技術書籍都是偏貴的,平均基本定價都在七、八十左右。
其實,我要是說每個程式設計師都為技術書籍掏過腰包,這世上不會有沒買過技術書籍的程式設計師。我相信也沒人反對。因為這是一種最普通、最普遍的學習途徑了。
常說,書籍是人類文明進步的階梯。每一本書都是作者的多年經驗總結和思考。透過閱讀一本書來獲得成長,相當於與前輩促膝長談。這麼有價值的事情當然是很值得做的。
我自己就是一名深度書籍購買愛好者,從學校到步入社會到現在,花在書籍上的錢可以說是筆巨大的支出了。好的書孬的書都買過,以前是名文藝愛好者,閱讀的習慣主要集中在歷史名著、小說、散文、武俠,而自從入行程式設計界以來,口味變的專一不花心了,書架上就只有《**權威指南》、《深入分析**原理》,《**源碼解析》、《**實戰》等等。
可是隨著自己產業經驗的積累,發現買技術書也不是件很好的事情 ---- 搬家嚴重不方便。技術書大家都知道,厚實。
而且還有一個問題,很多技術書籍其實也只是入門教程,這類書籍當你掌握了技術理論之後,你就再也不會去觸碰它了。例如市面上的《**從入門到精通》,《**基礎教程》等。但是這類書籍又佔據著你的書架空間,這類書籍就變得食之無味棄之可惜,扔又捨不得不扔又不是。所以為了避免這種情況的發生這類書籍就不要買了。
我們都知道技術是有時效性的和版本區別的,很多書籍講解的技術也許是v2.0版本,但是由於技術更新迭代,一年之後v2.0已經過時,主推v3. 0了。但是購買的紙本書內容是不會自動更新的,內容還停留在舊版,這類書籍只能失效。例如很久之前購買過 Struts 和 Hibernate相關的技術書籍的猿友們,這些書它們現在還在你們書架上嗎?亦或是已經成為火鍋墊了。
其實如果有閱讀的必要的話,這類書籍我們可以購買電子書。閱完即可丟,過時也不會佔據生活空間,只需要分配幾M大小並且可以釋放的硬碟空間。
那什麼書值得買呢?那些講解技術實現原理和架構思路的書籍以及管理經驗的書籍。
因為科技千變萬化,但萬變不離其宗。技術的本質是不會改變的,技術原理和設計想法是有指導價值的。這類書籍影響的是我們的思維。例如:《資料結構》、《程式設計思想》、《深入理解Java虛擬機》等這類書籍我們可以重複閱讀,就值得佔據我們書架的一席之地。
4、逛部落格社群和技術公眾號
部落格社群和技術公眾號是技術分享的網路平台,在這裡從基本的到複雜的,有科技新手有科技大牛,每個人都可以在這裡分享他們的技術心得和學習筆記。所以這裡比較魚龍混雜,有原創有轉載,充斥各種版權糾紛,都在聲明版權但是很少能維護到的。
學習和分享,都是一種獲得成長的過程。這裡有前人摸石子過河後留下的經驗腳印,有高手的經驗分享。這裡雖然雜亂,但是往往針對某個點的問題,在這裡你能很快速的得到答案。人多力量大啊。
但是,這個途徑是有點碎片化的學習特性,並不是籠統的講解。你在遇到某個問題時去尋找相關解決方案,或是定期閱讀推播的文章,但都是針對某個點的,是一種碎片式的方式。
5、官方文件
你要學習某個技術,還有比技術官方文件更好的地方嗎?官方文件一般都是該技術開發者本人或所在組織編寫和維護的,這時直接接觸技術來源的地方。
我去年新接觸 Elasticsearch 的時候,從0搭建搜尋平台,了解 ES 的搜尋原理基本上都是透過官方文件來做到的。關於Elasticsearch的一本書籍我都沒買,因為官方文件已經詳細的把所有的都介紹了。索引創建,索引原理,分佈式原理,按段搜索等等全部都詳細的講解了。
你唯一需要做的就是靜下心來仔細閱讀,然後動手自己搭建環境編寫Demo,最後總結經驗就可以了。
6、知識付費平台
最近幾年流行知識付費,網路上出現了很多付費學習平台,一些有經驗的技術人將某個技術點通過多期的方式錄製成視頻,消費者如果感興趣需要支付一定價位的金額進行購買。而且某個技術點全期的價格一般都在百元左右。推薦:PHP中文網路線上直播課程。
這種現象主要是近年來IT網路產業的爆發,薪資待遇還不錯,然後湧入了大批程式設計師,有流量就有消費。前面說過程式設計師是需要不斷學習才能應付技術更新的挑戰,有需求就有消費。特別是一些流行技術的教學教程和總結視頻,就更受大家的喜愛。
7、猿友討論
其實以上幾個途徑大家或多或少都有過,並不是單一的透過一種途徑去學習,更多的是多種學習模式,我目前的學習新技術的大致主要方式是:首先研究新技術的特點和適用場景,然後閱讀官方文檔,編寫Demo,本地運行,最後是通過一些方式理解原理,最後是技術總結。
對我而言,目前我一般基本上不透過看教學之類的影片學習,書籍購買也是有針對性的,買一些原理性的書籍。而部落格和社群是我早上或中午時常會逛逛的地方。知識付費平台目前主要是購買了某個行動端App的幾個有興趣的課程,例如資料結構和網路協定方面的,整體感覺還是不錯的。
大家猿友們的學習方式有哪些?哪些你認為是你目前主要的學習途徑,如果你願意大家可以在留言區留言一起分享和討論。