0001 零基礎的小白能學會程式設計嗎
知之者不如好之者,好之者不如樂之者。
有朋友問,程式設計難嗎?一點都不會的話能不能學會呢?
也有朋友問,我們家小孩很喜歡打電腦遊戲,能讓他學習程式設計嗎,要多大才可以學啊?
還有朋友問,很想學習程式設計,但是就是堅持不了,不知道怎樣才能學會程式設計,有沒有快點的簡單的辦法?
學哥的回答是:能,每個人都能學會程式設計。越早學越好。方法也很簡單,興趣+方法+堅持。
為什麼要學程式設計
Facebook創始人扎克伯格說:
程式設計已成為一項基本技能,每個人都該會。
僅在美國,每年就有50萬個計算機相關的工作崗位,但是每年只有5萬名電腦科學的學生畢業。
程式設計顯然已成為了一項基本的技能,是每個人都應該做的事情,就像閱讀一樣。它是每個學校都應該教授的技能。
蘋果公司創始人史蒂夫喬布斯說:
人人都應該學會程式設計,因為它會教你如何思考。
程式設計主要是人腦思維方式的對映。解決問題的時候,人的思維方式是需要完整性和邏輯性的,而通過程式設計訓練,可以不斷培養良好的思維方式,幫助人掌握邏輯思考的能力。
有人說,我會開車,但我並不需要知道車怎麼造出來怎麼修車,同理,我會使用軟體就夠了,沒有必要學程式設計。沒錯,我們並不是為了程式設計而學程式設計,就像我們學修車並不是為了去修車,而是通過學習簡單的修車知識幫助我們更好更安全的去開車去保養車。
從心理學上來講,全程專注於一個目標上,能夠享受到做事情不斷帶來的滿足和激情,會讓人感受到做事情的樂趣,而程式設計,就是完全具備這種樂趣的事情,當你茶飯不思,努力思考一段程式碼為什麼沒有成功執行,當經多多次思考和嘗試,最後解決了問題的時候,內心有極強的滿足感,這是一種非常棒的體驗。
程式設計還是一個非常高效的,用於實現想法的工具,對於小孩子來說,樂高是他們塑造世界的玩具;對於成人來說,程式設計其實就是一個更加具備拓展性的“樂高”。
興趣是最好的老師
想想看,你是否有過這樣的經歷:
喜歡打遊戲的--凌晨三點了,一點都不困啊,再來一局lol!
喜歡看小說的--時間過的好快啊,都五點了,再看一章雪鷹領主就睡!
喜歡看視訊的--今天晚上通宵也要把仙劍奇俠傳看完!
為什麼我們在做這些事情的時候,一點也不覺得累,而是感覺時間過得飛快呢?
我想是因為做這些事情的時候,是很放鬆的,是消遣的,沒有目標或者指標的要求的,沒有壓力的,所以才會樂此不疲,廢寢忘食。
那麼如果是程式設計呢,你需要學習,需要思考,需要開動腦筋,需要練習,需要總結,這都是有壓力的。
如何能夠化解或者避免這些壓力或者疲倦呢,我想只有自己真正的喜歡它,愛好它,才能不覺得累,才能堅持下去吧。
學習知識重要的是培養學習的興趣,俗話說“興趣是最好的老師”。對知識的學習感興趣,就會變被動為主動,以學習為樂事,在快樂中學習,既能提高學習的效率,還能夠加深對知識的理解,這樣學到的才能夠靈活地運用。
學習程式設計,一定要從興趣出發,給自己定一些確定的目標,比如說:釋出一個自己的個人網站,做一輛遙控的小車,將家裡的門鎖換成手機控制的,給家裡的魚缸做一個遠端餵食系統,等等。
這樣帶著目標去學,帶著解決實際問題去學,會比毫無目標要更有動力,更有效果。
為什麼零基礎自學程式設計者,大多半途而廢?
我有一個認識很多年的好友,老趙。他有一天打電話給我說,他女兒在上高中,有興趣想學程式設計,但不知道從哪裡著手,希望我能從技術方向上提供一些學習路徑建議。然後我就刷刷刷列了提綱如下:
技術路徑:html > css > javascript > php > mysql
學習內容:w3school.com.cn網站
學習方法:跟隨網站教程逐步學習,掌握基礎知識後練習一些模擬專案
從一個做技術的程式設計師角度來看,這個路徑是比較適合零基礎的初學者的,但是過了一段時間之後,老趙又來電話了:女兒按照這個方法學習了一段時間之後,發現學不下去了,就好像知道機器的每一個零件,但就是組裝不出機器來。
仔細分析了之後,有點明白原因了:學習網站的內容大而全,不容易分清主次重點;不知道如何融匯貫通多個技術點完成一個實際專案;缺少輔導碰到問題不知道如何解決;
看看這個學習網站,確實容易讓人望而生畏啊,這個網站應該更適合程式設計入門之後的學習:
因此,我一直在思考,有沒有一種更好的方式來學習程式設計呢,有沒有一種更有效的路徑來學些程式設計入門呢?
有趣好玩很重要
最近在給一所小學四五年級的小朋友做一個公益程式設計興趣課,看到這些孩子渴望的眼神,開心的笑容,真的是很受感染:
這些小朋友只有十歲左右,但從上課的體會來看,學會程式設計入門是完全沒有問題的。
感受最深的一點是:理論知識一定要講的有趣,結合生活中的例子效果更好,結合硬體多動手效果最好。
家長帶著孩子一起學是最好不過的
中國的很多家長,望子成龍望子成鳳,會花很多錢給孩子報很多培訓班,卻很少花時間陪孩子做他們喜歡做的事情,但其實陪伴比學習對他們的影響更大。
程式設計,就是家長可以和孩子一起學習一起成長的一種方式。想想看,當家長和孩子一起,每完成一段程式碼,每解決一個bug,每一次讓小車跑起來,都會是滿滿的開心和收穫!
考慮到這樣的目的,我在設計教程的時候,就是按照10歲孩子的理解能力作為基準,儘量將高深晦澀難懂的名詞以及技術,通過淺顯易懂的語句,以及聯絡日常生活的比喻,變得更容易理解。
同時,通過軟硬體結合控制顯示效果的方式,讓程式設計顯得更有趣,並且儘量將軟體工程的概念貫穿整個教程中,讓大家逐步具備軟體工程的思維方式。
另外,學習過程中,交流和溝通是非常重要的一環,我會幫助大家建立微信群或者QQ群進行交流溝通。
當你決定出發的時候,最困難的一部分已經完成了
知乎上有個問題的答案很有意思:
問:為什麼零基礎自學程式設計者,大多半途而廢?
答:大多數人的努力程度,自學不了任何東西。
一萬小時定律,相應大家都聽說過,學會程式設計入門和成為IT專家,是不一樣的目標,所以我們不需要一萬小時,但這並不是說學會程式設計就很輕鬆,學習本身就不是輕鬆的事情,不付出努力,任何事情都不會成功。所以,堅持就是一件非常重要的事情。
計劃的重要性
一年之計在於春,一日之計在於晨,一生之計在於勤
做任何事,最好都要做計劃。計劃按照時間維度可以分長期、中期、短期。
我個人的體會,將大的目標通過計劃,逐漸分解為細微的目標,每完成一個細微的目標,都會給自己一點成就感,給自己不停的刺激,獲得愉悅感成就感,從而逐漸完成目標。
那麼我的教程系列計劃是這樣的:
第一部分:python入門和簡單控制感測器
第二部分:html+css靜態網站和阿里雲上線
第三部分:js遊戲連連看
第四部分:php+mysql動態內容網站
第五部分:網站整合(圖書管理系統)
第六部分:手機遙控小車
第七部分:android開發遙控器+圖書管理系統
第八部分:ios開發遙控器+圖書管理系統+Three遊戲
第九部分:手機控制四軸飛行器
第十部分:3D列印
每個部分大概20到30篇教程文章,每篇教程文章閱讀學習時間大約在半小時左右。
喜歡程式設計的朋友,先設立一個小目標吧:程式設計入門。
最後,轉載一句霧老師的話:
我們讀書,我們接受教育,我們向有智慧的朋友求教,一切的目的,都是為了賦予自己這樣一種能力--無論時局如何變化,無論命運把我們丟到何等陌生的環境,我們仍然能夠活下去,爬起來,站直了。