現(xiàn)在恩掷,計(jì)算機(jī)已經(jīng)融入到了我們生活的方方面面,手機(jī)供嚎、電腦黄娘、智能家居等克滴。在計(jì)算機(jī)變得如此普遍的今天逼争,是不是每個(gè)人都應(yīng)該學(xué)習(xí)一點(diǎn)編程呢?
2013年劝赔,非營(yíng)利性組織 Code.org 發(fā)起了“Hour of Code”的倡議誓焦,得到了很多著名人物和企業(yè)的支持(Is Computer Programming Hard to Learn ?),其中包括扎克伯格着帽、比爾蓋茨杂伟、蘋果移层、谷歌,就連美國(guó)總統(tǒng)奧巴馬都發(fā)布視頻呼吁每個(gè)美國(guó)公民都學(xué)習(xí)編程赫粥。
李笑來老師建議必備的兩個(gè)技能——英語(yǔ)和編程观话。“改變自己”的輝哥(張輝)也在文章中提到過自己利用 python 寫了一個(gè)群發(fā)郵件的腳本越平。
所以频蛔,這么多名人,牛人都呼吁大家學(xué)習(xí)編程秦叛,那么普通人學(xué)習(xí)編程到底有什么用晦溪?
普通人學(xué)編程有什么用?
主要有如下理由:
- 教會(huì)我們思考
- 提高效率书闸,使生活尼变、工作變得簡(jiǎn)單
- 生活基本技能
編程教會(huì)如何思考
喬布斯在一次采訪中說過:
Everyone should know how to program a computer, because it teaches you how to think.
因?yàn)槌绦蚓褪菍?duì)現(xiàn)實(shí)事物的抽象,而且浆劲,按照寫好的邏輯運(yùn)行嫌术。所以,編程能夠鍛煉我們的抽象思維能力和邏輯思維能力牌借。
編程能提升效率
李笑來老師在《把時(shí)間當(dāng)做朋友》中提到過:
學(xué)習(xí)班之后的歲月里度气,擺弄計(jì)算機(jī)給我?guī)砹藷o數(shù)心靈愉悅,這些暫 且不論膨报,只說一件事——在編寫《TOEFL核心詞匯21天突破》的過程中磷籍,倘若我沒有稍多于常人的那點(diǎn)計(jì)算機(jī)知識(shí),能自己編寫一些批處理腳本现柠,就不可能在那么短的時(shí)間里完成那樣海量的工作院领。而且,如果沒有這些技能够吩,就算再花幾倍的時(shí)間比然,也很難拿出具有與《TOEFL核心詞匯21天突破》同樣的質(zhì)量的作品。而最終周循,質(zhì)量保證了銷量强法。
通過編程,我們能夠很容易的處理大量重復(fù)性湾笛、低效率的工作饮怯,從而節(jié)省時(shí)間。而工作中很多地方都用到了編程來提高生產(chǎn)力嚎研,比如 Excel 中的宏蓖墅,很多 Adobe 的產(chǎn)品(如 Photoshop, Illustrator, After Effects)都能使用 JavaScrpt 來自動(dòng)化工作。如果你學(xué)習(xí)編程,就能使你的工作做的又快又好置媳。
編程是基本技能
正如 Quora 問題 Should most young people learn to code? 中回答的那樣:
- 你會(huì)做飯于樟,但你不是廚師
- 你會(huì)開車,但你不是司機(jī)
- 你會(huì)清理屋子拇囊,但你不是保潔阿姨
- 你會(huì)疏通馬桶迂曲,但你不是水管工人
所以說,不一定你非要是程序員寥袭,你才會(huì)編程路捧。在計(jì)算機(jī)使用越來越廣泛的今天,編程已經(jīng)成為了一項(xiàng)基本技能传黄。
如果你不會(huì)編程杰扫,你就只能使用別人提供的功能。就好像你不會(huì)做飯膘掰,就只能下館子一樣章姓,但是這樣就不能很好的滿足你對(duì)于健康、熱量识埋、營(yíng)養(yǎng)的要求凡伊。
所以,學(xué)習(xí)編程更多的是滿足我們私人訂制化的需求窒舟。比如系忙,今天我遇到一個(gè)使用 Excel 處理大量數(shù)據(jù)的需求。但是惠豺,我不會(huì)編程银还,可能就只能買別人開發(fā)好的腳本,或者自己花大量時(shí)間做大量重復(fù)性的工作洁墙。但是蛹疯,如果你會(huì)編程,你就可以自己寫一個(gè)腳本热监,最后可能快速捺弦、優(yōu)雅的解決了問題。
而且狼纬,可以預(yù)見的是:在將來,計(jì)算機(jī)肯定會(huì)運(yùn)用的越來越廣泛骂际,對(duì)我們生活的侵入越來越深疗琉。而會(huì)編程的人只是一小部分,那么我們的生活就完全掌握在了那一小部分會(huì)編程的人手中了歉铝。所以盈简,學(xué)習(xí)編程,能夠讓我感到自由。
普通人如何學(xué)習(xí)編程
現(xiàn)在柠贤,如果你覺得有必要學(xué)習(xí)一下編程香浩,那么,我們就來討論下——普通人如何學(xué)習(xí)編程臼勉?
為了解決具體問題而編程
最重要的一點(diǎn):為了解決具體問題而編程邻吭。很多人會(huì)在學(xué)了幾個(gè)月編程后,感覺并沒有學(xué)到什么宴霸,這就是因?yàn)槟悴]有從中找到成就感囱晴。當(dāng)你通過學(xué)習(xí)編程解決了自己具體的問題后就會(huì)感到巨大的成就感,比如我為了解決每天部署繁瑣的過程瓢谢,學(xué)習(xí)了 shell 腳本畸写,只需要一個(gè)腳本就能部署了,這就給了我很大的正向反饋氓扛。而且當(dāng)你為了某個(gè)具體問題而學(xué)習(xí)編程的時(shí)候枯芬,你就會(huì)知道,那些知識(shí)對(duì)我解決問題有用采郎,那些可以暫時(shí)不學(xué)千所。編程需要學(xué)習(xí)的東西很多,所以必須做出取舍尉剩。
當(dāng)并無具體的需求時(shí)真慢,如果有興趣,那也行理茎。如果沒有興趣黑界,只是覺得應(yīng)該學(xué)習(xí)編程而編程的話。我建議你在學(xué)習(xí)了基本的知識(shí)以后(比如了解了這門語(yǔ)言能實(shí)現(xiàn)什么功能)皂林,給自己找一個(gè)目標(biāo)(比如搭建一個(gè)個(gè)人網(wǎng)站朗鸠,抓取某個(gè)頁(yè)面的圖片),然后實(shí)現(xiàn)它础倍。有了目標(biāo)再學(xué)習(xí)烛占,效果會(huì)好很多。
使用Google和英文
為什么這兩個(gè)東西如此重要呢沟启?
第一忆家、技術(shù)很多都起源于美國(guó)和歐洲,所以幾乎所有技術(shù)的官方網(wǎng)站都是英文的德迹。而學(xué)技術(shù)要學(xué)會(huì)使用官方文檔芽卿,當(dāng)然也是英文的。當(dāng)然你也可以看翻譯過來的資料胳搞,但是畢竟是翻譯過一次的卸例,所以很依賴于譯者翻譯水平的高低称杨,而且這是已經(jīng)被人理解過的二手的資料了。
第二筷转、學(xué)會(huì)使用 Google 為什么也成為了必要姑原。在你學(xué)習(xí),開發(fā)的過程中會(huì)遇到很多的問題呜舒,這個(gè)時(shí)候會(huì)經(jīng)常用到搜索工具锭汛。在編程領(lǐng)域,英文資源比中文資源多了不是一星半點(diǎn)阴绢。比如 stackoverflow(一個(gè)編程的問答網(wǎng)站)幾乎包括了你學(xué)習(xí)編程時(shí)會(huì)遇到的各種問題的答案店乐,以為這些問題很早以前就有人遇到過了。所以呻袭,遇到編程問題時(shí)眨八,記得使用英文在 Google 上搜索答案。
第三左电、學(xué)會(huì)如何提問廉侧,必看的文章是:《提問的智慧》。建議把這篇長(zhǎng)文看完再提問篓足。
找到合適的學(xué)習(xí)資源
編程可能是最適合自學(xué)的科目了段誊,因?yàn)橛写罅康馁Y源(書籍、視頻栈拖、教程)可以選擇连舍。那么如何在海量的資源中選擇適合自己的呢?
首先涩哟,我認(rèn)為資源分為兩類——書籍和視頻索赏。如果你喜歡看書,那就找一本好書贴彼,如果喜歡視頻潜腻,那就找好視頻。那么如何區(qū)分好書和好視頻呢——提問器仗,你可以使用搜索引擎融涣,詢問身邊的朋友。而且精钮,一定要找與自己當(dāng)前階段契合的書籍和視頻教程威鹿,并不是所有的書籍都適合初學(xué)者,所以一定要注意選擇轨香。最后忽你,一定要看該語(yǔ)言最權(quán)威的書籍,肯定不會(huì)讓你失望。
再者筷频,要學(xué)會(huì)看官方文檔凝垛,學(xué)會(huì)查官方手冊(cè)。教程和手冊(cè)的區(qū)別在于:
- 教程:教你如何使用這門語(yǔ)言炸渡,可能很多東西不會(huì)提及
- 手冊(cè):提供完整、全面的有關(guān)這門語(yǔ)言的信息(很多時(shí)候就是 API 手冊(cè))
學(xué)習(xí)的時(shí)候我們看教程丽已,但是有了一定基礎(chǔ)只有蚌堵,要學(xué)會(huì)看官方的手冊(cè)。因?yàn)槭謨?cè)包含了這門技術(shù)的方方面面沛婴,有一個(gè)完整的知識(shí)體系吼畏。它包含對(duì)這門語(yǔ)言原理的介紹,官方推薦的用法嘁灯,API文檔等泻蚊,所以一定要學(xué)會(huì)看官方文檔。
多練習(xí)丑婿,多討論
古典老師提到學(xué)習(xí)的721法則性雄,我覺得就很適合編程的學(xué)習(xí):
- 10%的時(shí)間自己學(xué)習(xí)
- 20%的時(shí)間與人溝通討論
- 70%的時(shí)間去練習(xí)實(shí)踐
編程是很需要練習(xí)的科目,看再多的書還不如在電腦上運(yùn)行一次來的實(shí)在羹奉。學(xué)習(xí)編程要做到每天寫代碼秒旋,代碼運(yùn)行起來之后,可以極大的加深你對(duì)知識(shí)的理解诀拭。
還有就是要多討論迁筛,多看別人的代碼。討論能夠讓人的思想碰撞耕挨,產(chǎn)生意想不到的火花细卧。比如你思考一個(gè)問題的解決方案很久了,但是還是沒有頭緒俗孝,但是可能別人的一句話可能就會(huì)點(diǎn)醒你酒甸,這在編程上很常見。而且赋铝,通過看別人的代碼我們可以學(xué)習(xí)更好的實(shí)現(xiàn)方法插勤,更優(yōu)的解決問題的邏輯,特別是牛人的代碼革骨。
編程語(yǔ)言的選擇
雖然最終都是在計(jì)算機(jī)上運(yùn)行的指令农尖,但是還是有很多語(yǔ)言我們可以選擇,不同的語(yǔ)言可以實(shí)現(xiàn)不同的功能良哲,那么普通人如何選擇語(yǔ)言呢盛卡?
選擇什么語(yǔ)言還是需要看你具體的需求是什么。如果你平時(shí)使用 office 比較多筑凫,那么可以學(xué)習(xí) VBA滑沧。如果你需要自動(dòng)化很多重復(fù)的工作并村,那么你可以學(xué)習(xí) Python。如果你想要建造自己的個(gè)人網(wǎng)站滓技,那么你需要學(xué)習(xí) Javascript哩牍、Html 和 Css。如果你沒有具體的需求令漂,那么我建議你學(xué)習(xí) Python膝昆,因?yàn)樗?strong>很容易讓你感到提高了生產(chǎn)力。
學(xué)習(xí)資源
- 慕課網(wǎng):國(guó)內(nèi)最大的IT技能學(xué)習(xí)平臺(tái)
- Codecademy:英文IT學(xué)習(xí)平臺(tái)
- Python:Python初學(xué)者(零基礎(chǔ)學(xué)習(xí)Python叠必、Python入門)書籍荚孵、視頻、資料纬朝、社區(qū)推薦
- Javascript&Html&Css:結(jié)合個(gè)人經(jīng)歷總結(jié)的前端入門方法