coursera

最近聽聞了許多事情,想要記錄的東西其實不少,不過還是先來記錄一下 coursera。這個呢,是一個線上課程,其實隨著網路越來越方便,真的是一步一步在改變這個時代的生活方式呢 :) 舉凡消費行為、閱讀方式、老師教課的形式,有著許多顯著的改變。

今天主要是要記錄一下我在coursera上面上了一堂課叫做 porgramming language,大學是資工系的應該都會上過這種課才對,想當初我這堂課沒上的很認真,因為全程印度式英文真的讓我有點頭疼,雖然這個老師算是少數認真教書的,但是真的很難理解 :) 但是這堂課也不是讓我沒有收穫,我在這堂課遇到我一生最喜歡的語言python,我第一次看到它的語法就深深被吸引著,我那時還以為老師只是寫個虛擬碼而已,因為讀起來實在太順了,根本跟英文差不多阿,我是第一次遇到可讀性這麼高的語言,而且後來我慢慢開始去理解python背後的運作原理和其哲學,也真的讓我學了不少,跟傳統的C和C++,有著不同的實作理念,不是說C++不好,而是每種哲學有其好的地方,只是剛好python吸引到我。

今天會提到programming language這堂課,其實是因為這堂課的目的就是要你去理解一個語言背後的哲學,我當初沒好好學的,今天有緣又讓我碰到一次,勢必要好好去理解它的精隨 :)

好啦,首先這堂課讓我意外的地方是,沒想到講師竟然是用emacs來當作環境,還用了一個我完全沒聽過的語言叫做sml,來當作講解的對象,關於emacs這個許多geak把視為神一般的存在的editor,其實我是第二次碰到了,第一次是在學lisp這個語言的時候而用到的,但是後來我沒繼續深入學習,因為要學的東西太多了,只是把它放在我的priority queue的後面:) 好啦,其實是emacs學習曲線實在太高了,所以我後來才沒碰拉XD,這次又碰到了想必它應該真的有其讓人花時間去學的價值吧,但是目前我個人僅僅是做了一些美化emacs和搭建sml的coding環境而已,樣子如下

preview

目前由於有著許多快捷鍵要記,所以其實讓我有點猶豫要不要真的記起來,因為其實我算是稍微熟悉vim的一些快捷了,我實在不想把這些東西拋掉又重新去記這個東東,幸好我找了一個比較折衷的方法,emacs有個插件叫做evil,她在某種程度上面的支持vim的key-binding,或許有人會說幹嘛要這樣在emacs上面用vim的key-binding,搞的emacs像vim,其實阿,網路上你只要google emacs vs vim就會看到兩派人馬在辯論,說誰好誰壞,誰模仿誰,實在很沒必要,我個人是認為兩個人互相模仿,兩方的支持者別打我喔(逃 要不然來看看最近vim想要搞個大革新叫做neovim某種程度讓我覺得他想要變成emacs其實,兩強的競爭,其實就是互相模仿,改進對方的弱點這樣,有一部電影將這種情形描述的非常貼切呢,有興趣可以看看叫做 頂尖對決真的是一部好電影,我沒那麼厲害看一次就看懂,即使看第二次也沒完全懂,但是這部讓我多了許多觀點,頂尖對決這種情形,從以前到現在都有發生過這種情形,只是消息的公佈多半是檯面下吧 :) 畢竟只有勝利者才會有著光輝的一面,其實我一直對某句話感到很詭異,正義必勝,誰是正義啊? 誰才能決定誰是正義,我想只有強者吧,因為勝者即正義,我們這些後代,只聽到勝利者留下的話語,當然會認為它就是正義,所以其實到最後,誰力量強大,誰就是正義這才是真正的情形。哈話題扯遠了,這種人生觀以後再分享 :)

總之emacs的環境配置目前就這樣而已XD 改天如果有意繼續搞更多可能會將配置PO到github吧,這堂課主要是講functional programming language所以會有不少截然不同的概念出現,如果你是學C或C++的人的話,目前而已我也只上到這堂課的section1的中間而已,要記錄的重點其實目前還沒有XD 等到上完部分章節的課,我想才會有想要留下的重點吧。 這篇僅僅是記錄一些小小感想而已:)

想要學的東西太多了(抱頭