想自學(xué)編程樱哼?霖哥建議從JavaScript開始!

我是霖哥阅束,一個因興趣入行的商學(xué)院畢業(yè)的程序員息裸。最近有不少人沪编,來問我,想學(xué)編程访圃,但是又不知怎么開始腿时。所以平绩,我想在我的公眾號“商學(xué)院畢業(yè)的程序員”中捏雌,把我自學(xué)編程的經(jīng)歷,毫無保留的分享出來纬傲。

現(xiàn)在的世界肤频,是互聯(lián)網(wǎng)科技的世界,人一天生活下來汁雷,從玩手機侠讯、購物暑刃、看新聞、聽音樂溜嗜,無處不在的都是編程代碼所編織出來的世界。

不論是工作中的人炸宵,還是學(xué)生土全,很多人都有自學(xué)編程的想法,但是卻不知道從哪里開始野哭。

上網(wǎng)搜集相關(guān)自學(xué)編程的學(xué)習(xí)資料幻件,什么C++绰沥、Java、Python一堆又一堆的術(shù)語零截,根本讓人無從入手秃臣。

如果去問相關(guān)的計算機的朋友:“學(xué)編程該學(xué)啥呢奥此?”

得到的答復(fù),一般是先學(xué)一門編程語言吧撤嫩,說學(xué)習(xí)C++或者Python吧序攘。

接著寻拂,你就跑去買了一本C++或者Python的語言書。

才翻了沒幾頁梦染,完全看不懂帕识,整本書都沒一點人話遂铡,又礙于面子扒接,不知道怎么問別人,擔(dān)心別人說自己笨碱呼。

最后宗侦,一本厚厚的編程語言書矾利,就這樣成為了家里的裝飾品。

霖哥沒有接受過傳統(tǒng)學(xué)校的編程教育舶斧,通過自學(xué)編程茴厉,用過11種編程語言做過項目什荣。

總結(jié)多年的自學(xué)經(jīng)驗溃睹,建議自學(xué)編程,先學(xué)習(xí)的編程語言——JavaScript泞辐!

JavaScript不是Java咐吼!

(圖:美國的Jordan品牌和中國的喬丹品牌商佑,是沒有關(guān)系的)

JavaScript(簡稱JS)跟Java,從編程語言技術(shù)上肌幽,沒有半毛錢關(guān)系,別被她的名字欺騙了格嘁。

之所以叫JavaScript廊移,是因為90年代Java大火狡孔,當(dāng)年JavaScript的發(fā)明者網(wǎng)景公司把自己發(fā)明的腳本編程語言,帶上“Java”的名號响禽,讓它更容易傳播芋类。

這就好比我們中國的喬丹界阁,山寨了美國的Jordan品牌名氣泡躯,其實它倆壓根沒關(guān)系......

在最初的十幾年里,JavaScript一般是用于做網(wǎng)頁上的動態(tài)效果的咕别。而最近幾年惰拱,有一個叫NodeJS的工具出現(xiàn)啊送,它賦予了JavaScript全方位的應(yīng)用能力馋没,不論網(wǎng)頁、App勾怒、后臺服務(wù)器......總之笔链,JavaScript語言幾乎無所不能。

當(dāng)然了,今天我們探討的是幔妨,新手自學(xué)編程的第一門編程語言误堡,我們不多介紹NodeJS雏吭,來關(guān)注用JavaScript用來做網(wǎng)頁的部分杖们。

奧巴馬學(xué)編程

奧巴馬編程(圖片來自Wired)

2015年的時候摘完,奧巴馬參加了一個“編程一小時”活動,呼吁世界上的所有人都應(yīng)該學(xué)習(xí)編程列粪,并以身作則岂座,編寫了一段很簡單的計算機代碼杭措,在屏幕上畫了一個正方形手素。

這也讓他成為了美國歷史上首位編寫計算機程序的總統(tǒng)

那么氯质,那時候闻察,奧巴馬學(xué)習(xí)使用的,是什么編程語言呢灶?

答案是:JavaScript鸯乃!

奧巴馬寫了啥跋涣?

據(jù)說陈辱,當(dāng)時奧巴馬學(xué)編程,曾寫了這么一段代碼陋守。

moveForward(100);

在上一篇霖哥自己的經(jīng)驗水评,「我是如何用10天自學(xué)編程之碗,改變一生」里季希,霖哥提及過式塌,英語能力不能太差。因此偏窝,只要你英語不差的話武学,看到奧巴馬的這一句代碼祭往,你應(yīng)該能明白它的意思:

移動向前(100);

(圖:奧巴馬的編程學(xué)習(xí)網(wǎng)站)

沒錯火窒,他執(zhí)行了一個函數(shù)硼补,叫moveForward(100)。 因為奧巴馬當(dāng)時使用的是code.org編程學(xué)習(xí)網(wǎng)站熏矿,它使用這個函數(shù)已骇,促使屏幕上的卡通人物离钝,向右(卡通人物的前方)移動了100像素!

理解「函數(shù)」

這里提及了霖哥認(rèn)為編程中最最最最重要的概念——函數(shù)卵渴。

函數(shù),很多時候鲤竹,又會被叫著“方法”浪读。所以要注意了,跟別人溝通時辛藻,“方法”碘橘、“函數(shù)”,很可能是同一個意思揩尸,它們英文是Method和Function蛹屿。 (兩者嚴(yán)格學(xué)術(shù)定義有一點差別屁奏,這里先不追究岩榆,認(rèn)為一樣的就好了)

所謂函數(shù),學(xué)術(shù)上來定義坟瓢,是一個統(tǒng)一的代碼塊勇边;而霖哥的理解,函數(shù)就像一個別人生產(chǎn)好的工具折联。

看看你現(xiàn)在桌子上的杯子粒褒,我們知道,喝水要用杯子喝诚镰,杯子是別人生產(chǎn)好奕坟,我們買回來的。“函數(shù)”清笨,就像是一個生產(chǎn)好的杯子月杉,我們拿過來直接用

上面抠艾,是站在“喝水者”的角度來說的苛萎,假如換個角度來說,“我”是杯子的生產(chǎn)商呢检号?那么腌歉,要做一個杯子,我們還需要各種各樣的“函數(shù)”——比如齐苛,陶瓷翘盖、玻璃、包裝盒...等等等凹蜂。如果我是包裝盒生產(chǎn)商呢最仑?我還需要紙皮藐俺、綁繩等等等。

你想要生產(chǎn)某個商品泥彤,但是不可能說欲芹,所有的零配件都是自己生產(chǎn)的,部分零配件需要從外部獲取吟吝。 而零配件菱父,就是“函數(shù)”。 同理剑逃,你要開發(fā)一個軟件浙宜,不可能所有函數(shù),都是自己寫的蛹磺,大部分(甚至是絕大部分)的函數(shù)粟瞬,也是需要從外部獲取的。

所以萤捆,霖哥建議自學(xué)編程的第一課裙品,一定要搞清楚“函數(shù)”的意義! 編程的本質(zhì)俗或,大部分時候市怎,就是對“函數(shù)”的操控;而對函數(shù)的操控辛慰,它就像我們的生活那樣区匠,商品是從別人那里獲得的!

這引申出霖哥自學(xué)編程的第一定律:

任何編程技術(shù)帅腌,都可以從生活中找類比驰弄!

搞清楚“函數(shù)”的意義,你就能理解大部分的軟件工程了速客。

你要做一個網(wǎng)頁戚篙,你需要調(diào)用“瀏覽器”的函數(shù);你要做一個瀏覽器挽封,你需要調(diào)用“網(wǎng)址解析”的函數(shù)已球;你需要做一個游戲,你需要調(diào)用“游戲引擎”的函數(shù)辅愿;你需要做一個游戲引擎智亮,你需要調(diào)用“顯示器顯示畫面”的函數(shù);.....................無數(shù)的“函數(shù)”点待,一環(huán)扣一環(huán)的阔蛉,組件了我們各種各樣的計算機軟件。

這又回到「我是如何用10天自學(xué)編程癞埠,改變一生」里談到的話題了:自上而下的學(xué)習(xí)過程状原。這里對軟件工程的思考聋呢,也是一個自上而下、從高到低的思考過程颠区,先思考要做一個這樣功能的程序軟件削锰,然后再思考,使用什么“零配件”去堆砌我們軟件毕莱。

為什么霖哥推薦JavaScript作為初學(xué)編程語言器贩?

開發(fā)環(huán)境到處都是

JavaScript的開發(fā)環(huán)境很容易弄起來,同時它是一只易入門的編程語言朋截。

它是唯一能運行在瀏覽器網(wǎng)頁的編程語言蛹稍。因此只要有瀏覽器運行的地方,它就可以運行起來部服,試問一下唆姐,現(xiàn)在還有哪一臺電腦或者手機是沒有瀏覽器的嗎?

而常見的Java廓八、C++語言奉芦,就沒有這樣的好處。要學(xué)習(xí)他們瘫想,你就必須經(jīng)過復(fù)雜的安裝仗阅、編譯過程昌讲,好不容易地才能運行一個小小的程序国夜。這對初學(xué)者來說是一個不小的門檻。很多的初學(xué)者光在安裝開發(fā)環(huán)境短绸,就被折騰得半死车吹。

JavaScript用途廣

我們也經(jīng)常看到醋闭,微信里經(jīng)常出現(xiàn)的各種各樣的所謂H5的活動網(wǎng)頁窄驹,其實,就是用JavaScript開發(fā)的证逻。

不論是做活動宣傳乐埠、企業(yè)宣傳、企業(yè)網(wǎng)站囚企,經(jīng)常需要工程師來做網(wǎng)頁丈咐。做網(wǎng)頁需要用到什么編程語言?就是JavaScript龙宏。

隨著這幾年JavaScript的發(fā)展棵逊,JavaScript已經(jīng)不單只局限于網(wǎng)頁前端了,現(xiàn)在還可以使用JavaScript來開發(fā)后端服務(wù)器银酗、手機App甚至游戲辆影。

它是目前編程語言中應(yīng)用最全能的編程語言徒像,并且普及程度還在上升趨勢。

JavaScript職業(yè)需求量大

有一個職位蛙讥,叫Web前端工程師锯蛀。說白了,就是JavaScript工程師(另外還要有HTML次慢、CSS知識)谬墙。

直到今天,2017年经备,前端工程師的崗位還是有很大的需求拭抬。

為什么呢?

霖哥覺得侵蒙,因為大學(xué)計算機學(xué)科里造虎,一般都是讓你學(xué)Java和C++,就認(rèn)為JavaScript一個搞網(wǎng)頁的腳本編程語言沒有前途纷闺。然而算凿,時代早就在變化了。

教育供應(yīng)跟不上犁功,市場需求大氓轰,結(jié)果就是導(dǎo)致前端工程師工資水漲船高。

霖哥發(fā)現(xiàn)浸卦,很多學(xué)了幾手JavaScript的前端工程師署鸡,比不少寒窗苦讀幾年、科班出身的C++技術(shù)大牛工資還要高限嫌。沒辦法靴庆,供求關(guān)系決定了薪資。

來一點實戰(zhàn)

為了讓準(zhǔn)備自學(xué)編程的小白怒医,加深對編程和“函數(shù)”理解炉抒,我們嘗試來一段超級簡單的代碼,作為JavaScript的入門實戰(zhàn)吧稚叹。

在以往的計算機語言中焰薄,我們經(jīng)常會看見一個Hello World例子,其本質(zhì)就是使用“屏幕打印函數(shù)”扒袖,然后輸出“Hello World”文字塞茅。霖哥這里想弄個更復(fù)雜的例子,然后用擬人化的語言僚稿,來描述一遍機器的執(zhí)行凡桥。

以下代碼中,出現(xiàn)的英語單詞都比較簡單蚀同,能讀懂英語單詞缅刽,就能大概讀懂意思了啊掏。

你也可以自己動手試一試,創(chuàng)建一個文件衰猛,叫test.html迟蜜,把這些代碼放進(jìn)去,然后雙擊啡省,就會看到瀏覽器的執(zhí)行結(jié)果娜睛,輸出了“300”

<script>
function add(a, b) {
    return a + b;
}

document.write( add(100, 200) );
</script>

它具體是怎么運行的呢卦睹?

我們首先把它翻譯成中文方便理解:

<這里是代碼(開始)>
函數(shù) 加法 (參數(shù)a, 參數(shù)b) {
    返回結(jié)果 a + b;
}

網(wǎng)頁.寫上( 加法 (100, 200) );
</這里是代碼(結(jié)束)>

我們再用擬人化的語言畦戒,來模擬這些代碼的操作:

你是一個上帝,

你創(chuàng)建了一個函數(shù)结序,叫add(加法)障斋;

你手下有一個家伙,叫document(網(wǎng)頁)徐鹤;

你說:document啊垃环,執(zhí)行你的write(寫) 函數(shù)! 稍等返敬,add(加法)函數(shù)會告訴你怎么執(zhí)行的遂庄!

你說:add函數(shù),給你100和200劲赠,把它們相加涛目,完了告訴write!

add函數(shù)說:JavaScript語言機经磅,把100和200加起來泌绣,返回結(jié)果钮追!

write函數(shù)說:輸出結(jié)果预厌!

這段代碼里,出現(xiàn)了兩個“函數(shù)”元媚,它們分別是add和write轧叽。

編程的本質(zhì)就是操縱代碼,也就是說程序員是代碼的上帝刊棕。所以很多時候編程只是使用英語炭晒,對一系列的“函數(shù)”進(jìn)行操作,各種各樣的的“函數(shù)”甥角,是程序員們的千軍萬馬网严。

所以霖哥會說,英語很重要嗤无,因為只要懂得英語單詞震束,并且愿意看怜庸,就能很容易看得懂很多的程序代碼執(zhí)行。

理解“函數(shù)”至關(guān)很重要垢村,程序開發(fā)當(dāng)中割疾,幾乎90%的代碼都在不斷地調(diào)用函數(shù)。當(dāng)程序員想做一件事的時候嘉栓,第一個要想到的宏榕,是“找函數(shù)”,而不是寫具體的函數(shù)侵佃。

所謂的大牛麻昼,就是那些知道很多各種各樣“函數(shù)”的人,他們利用各種自己所知道的“函數(shù)”馋辈,來滿足自己的需求涌献。

究竟怎么系統(tǒng)的學(xué)習(xí)JavaScript呀?

聽霖哥說了這么多首有,霖哥更著重的燕垃,是希望自學(xué)編程的人,能先理解“函數(shù)”思維這一編程的本質(zhì)井联。

如果現(xiàn)在就想具體地學(xué)習(xí)JavaScript卜壕,還是建議使用霖哥上一篇文章所說的《W3School:JavaScript》,快速學(xué)習(xí)烙常、快速試驗轴捎、快速理解。

往后的日子里蚕脏,霖哥也會更多地講解一些編程概念侦副,希望把一些抽象化的編程理論,用具象化驼鞭、擬人化的方式敘述出來秦驯。

下一篇文章,霖哥想說說建房子與編程的關(guān)系挣棕,能讓你更好的理解“函數(shù)”思維译隘。

作者相關(guān)系列文章:

我是如何用10天自學(xué)編程朽合,改變一生


我是霖哥旗闽,一個商學(xué)院畢業(yè)的程序員黍瞧,通過自學(xué)編程成為一家大型上市公司的資深軟件工程師匾嘱。

在《商學(xué)院畢業(yè)的程序員》專欄中活合,我想持續(xù)分享我自學(xué)編程的經(jīng)驗和心法闯捎,用通俗的話提煉我的技術(shù)思維和對科技世界的理解妖碉,希望可以幫助到你忽肛。

如果覺得有用就分享給你的朋友,轉(zhuǎn)載請注明出處《商學(xué)院畢業(yè)的程序員》损敷。

如果在了解或?qū)W習(xí)編程的過程中有迷惘户辫、或?qū)σ恍┥鷿目萍几拍畹牟唤猓昧α粞裕?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗤锉,一起剝皮案震驚了整個濱河市渔欢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瘟忱,老刑警劉巖奥额,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異访诱,居然都是意外死亡垫挨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門触菜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來九榔,“玉大人,你說我怎么就攤上這事涡相≌懿矗” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵催蝗,是天一觀的道長切威。 經(jīng)常有香客問我,道長丙号,這世上最難降的妖魔是什么先朦? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮犬缨,結(jié)果婚禮上喳魏,老公的妹妹穿的比我還像新娘。我一直安慰自己怀薛,他們只是感情好刺彩,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乾戏,像睡著了一般迂苛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鼓择,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音就漾,去河邊找鬼呐能。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摆出。 我是一名探鬼主播朗徊,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼偎漫!你這毒婦竟也來了爷恳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤象踊,失蹤者是張志新(化名)和其女友劉穎温亲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杯矩,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡栈虚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了史隆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魂务。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泌射,靈堂內(nèi)的尸體忽然破棺而出粘姜,到底是詐尸還是另有隱情,我是刑警寧澤熔酷,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布相艇,位于F島的核電站,受9級特大地震影響纯陨,放射性物質(zhì)發(fā)生泄漏坛芽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一翼抠、第九天 我趴在偏房一處隱蔽的房頂上張望咙轩。 院中可真熱鬧,春花似錦阴颖、人聲如沸活喊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钾菊。三九已至,卻和暖如春偎肃,著一層夾襖步出監(jiān)牢的瞬間煞烫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工累颂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滞详,地道東北人凛俱。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像料饥,于是被迫代替她去往敵國和親蒲犬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 我是霖哥,一個因興趣入行的商學(xué)院畢業(yè)的程序員巡蘸。最近有不少人奋隶,來問我,想學(xué)編程赡若,但是又不知怎么開始达布。所以,我想把我8...
    陳凱利閱讀 7,641評論 31 195
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,504評論 25 707
  • 生活中你有沒有遇到這樣的問題逾冬?在戀愛關(guān)系中黍聂,竭盡全力用力去愛換來的卻是漠視和不在乎;親子關(guān)系中身腻,媽媽事無巨細(xì)噓寒問...
    一念靜心花開遍世界閱讀 761評論 0 0
  • 有一天产还,我會和她旅游到不知名的地方,吃著不知名的美食嘀趟,拍下永遠(yuǎn)的回憶脐区,許下永恒的諾言。
    午后圖書館閱讀 89評論 0 0
  • (一) 狗是沒有姓的 我叫做狗才兒她按,一個正值盛年的男牛隅,哦不,公狗酌泰。都被你們?nèi)祟惤o洗腦了媒佣。 在沒遇到我的主人之前呢,...
    小云哪閱讀 420評論 4 0