學習心得
一、這學期你學到了什麼?
(1)初步的程式概念
本學期的學習讓我收穫良多,開啟了新的眼界
我在社會組待了太久,原先對科技領域的東西知道的不多
現在大概知道程式語言對於電腦的重要性
以及其作為一種工具的高深、實用
也大概知道了if、for、function、while、陣列、字串這些術語的概念
學會了基礎的程式碼撰寫
(2)寫程式就像是廚師
在修這門課以前,我以為寫程式的人是某種語言學家
因為說著只有電腦才聽得懂的語言
但是我後來發現,是語言學家加上廚師
不僅必須了解各種和電腦說話的語言
還必須知道怎麼樣利用各式材料與工具
僅僅會說話,不足以作出成品
尤其是開始上到函式庫和套件的地方
更是打破我對程式的觀念
我以為很多事情必須從頭開始做起
但其實就像是廚師
沒必要從小麥開始磨成小麥粉
廚藝只需要辨別麥粉的品質
把小麥粉做成麵條,然後煮熟添加配料擺盤,上菜
寫程式也是類似的概念,不需要什麼都從頭開始
辨別工具、熟悉工具、寫作、拼裝、調味、裝飾
也會有所謂的食譜(範例),讓學習者模仿練習
也會有師傅,或是廚師社團(社群)
在做中學,學中做。
是一門科技,但也是一門技藝。
(3)資訊科學與技術的博大精深
雖然我只修了程式設計一門課
但東摸西摸之下我跑去cousera選修了一門計算機概論
也在youtube上看了哈佛的CS50
雖然最後我都沒看完多少
也沒有真的修完
但對這方面的知識感到敬畏與佩服
二、什麼東西是你還沒學會的?
(1)更精深的Js
儘管學習整個學期的javascript已經讓我頭大
但是離真正的專精以及應用仍然遠遠不足
老師學期中之後說的資料庫、函式庫、網頁之類的還是不會
物件練習的次數也不太夠
處於一種,聽過了,但是不知道怎麼實踐的狀態
實際執行的時候也有很多眉眉角角繁複的細節讓人抓狂
(2)資訊科學的其他學理知識和技術
今年是我在大學求學的最後一年,即便若干年之後我繼續深造
也不太可能是資訊科學的學位,因為我是外系的,而且是社會組的。
將來也不太有機會找一份工程師的職位
大概是業務或是行政或是企劃,或是考國家考試
總之沒有機會能接觸更頻繁和更深入的相關知識
不過還好現在網路發達,EDX、COUSERA、線上論壇、書籍等等都很方便取得
如果將來有機會的話,也許會繼續學習(湊熱鬧)這方面的知識。
(3)將程式設計與本科專業結合
我是國際系的學生,學習了程式設計最大應用,恐怕就是能夠接著學習R或是其他統計軟體
做社會統計、資料庫、建置網頁等,類似數據分析吧?
此外,如果能夠用程式將生產自動化
那何嘗不可將學術領域的社會研究乃至於政策評估全面自動化呢?
或是把社會科學提出的各種理論建置一個電腦模擬環境,讓電腦去推演
例如在國際關係中,有一套著名理論稱作"結構現實主義"
大意是任何的國家作為一個政治實體,會在國際結構中做出最符合其生存與權力利益的行為。
如果能夠將國際關係領域所掌握到關於國家的行為習慣,作為一種參數
讓國家在電腦程式中演繹,產生結果,進而作為政客與參謀的決策參考
也許早就有人這樣做了。例如軍用兵棋系統。
但是我認為這方面資訊應該要更公開而不是永遠只能依靠政府統計單位
或是少數的學者和智庫作為權威在壟斷訊息
一般人沒有往上進修,也很難懂他們在做些什麼
也許我應該利用我所學到的程式知識,學習更深入的東西
創造一個網頁
創造一個自動化評估的工具,只要使用者填入公式、對象
自動產生評估成果與建議
乃至於是一個類似github的雲端社群
將社會科學的研究工作也可以變成像是程式人這樣一種特殊族群
把社會科學的學習作為一種可以步驟化學習的學問
哈哈,有夢最美。
(4)學習Unity2D製作簡單的卷軸遊戲
我的朋友有寫網路小說的習慣,我想幫他把故事情節變成遊戲作為禮物。
當初最關鍵讓我選修這門課的原因是在某個陳老師的投影片中,提到javascript與Unity所用的程式語
言長相類似,而這門課老師又以Js為主要語言,所以我就來選修了。
儘管路途仍舊很長遠,我想我離開學校之後會買書和尋找網路資源來實現這個目標。
三、其他感想
(1)陳老師程式設計課程與國際系的諸多課程的授課方式比較
陳老師的課程有一本教科書、網路的錄影、許多習題、許多課外資源
主要以習題作為授課的實踐,專案作為考核管道
我認為這種方式對於程式語言技術層面的學習很有幫助
但國際系的課程主要是講授為主,期中期末做個十五到三十分鐘的PPt報告,考考申論題
我認為國際系的課程應該要增加習題的數量和質量,減少申論題的考試
或是以增加課堂辯論的次數作為社會組形式的"習題"
申論題除了練習寫字還有驗證學生考前填鴨學習之外看不出什麼學習效果
社會組常常喜歡說自己重思辨,但在缺乏實踐檢驗之下,只不過是老師的一言堂。
沒興趣的學生也很容易因為缺乏明確的學習指標,渾沌度日。
(2)隔行如隔山,生也有崖,知也無崖
吾生也有涯,而知也無涯。以有涯隨無涯,殆已!
(3)對語言翻譯程式的一點突發奇想
最近google的翻譯突飛猛進,但是還是不夠充足
新聞寫說是採用「類神經網路」演算法
我有些好奇看了WIKI、老師寫的PPT
跑去買了一本簡單的圖解演算法
看完了之後我還是看不懂
我在猜,類神經網路是不是類似於,在使用者實作中,或是資料的出現頻率,讓電腦自己學習其中的規則。
不懂。
不過我想到另一種翻譯的方式
之前看到老師在談邏輯語,覺得這種語言很酷炫
但是要人類去學習純人工語言實在有點困難
所以我想,如果直接簡化日常語言,成為規範性的條件
研究出最低限度能夠表達意思的文法格式
加上邏輯語裡面文法位格的概念
再將將語言的內容分為功能性的類別
例如:語氣、感受、持續時間、對象、目標、目的、主詞、動作、動作副詞、時間、地點、原因、結果、持有對象
然後再視其況,將各類別作等級分別
然後直接呈現給對方看
大家就能使用一種
類似程式語言的溝通方法?
只需要簡單的對應與轉換
但是因為字詞是規範出來的
轉換的程序相對簡單
不需要制定完全不熟悉的人工語言
然後再制訂出幾個常用的用詞
例如: 輸入:感受:{生氣,等級:高}
輸出英文:feeling:{angry,Level:High}
輸出日文:気持ち:{怒る,程度:高い}
例如:輸入:語氣:{不悅:對象{你}}+感受:{生氣,等級:高}+動作{抱怨:對象:{你}目的:{道歉}:對象{我}:時間:{現在}}
+動作{說:對象{你}}+原因{壞了,程度:高:對象:{你}:目標:{電視:等級:{高}}:持有對象:{我}:時間{昨天晚上}}
輸出:
Tone:{unhappy:Object{YOU}}+feeling:{{angry,Level:High}+action{complain:Object{YOU}:purpose{sorry
}:Object{ME}:time:{now}}
+action{told:Object{YOU}}
+reason{broke,level:High:Object:{你}:
aims:{TV:level:{High}}:time:{last night}:ObjectHave:{I:time:{last night}}}
或著,再將規範自然語言的這種人工語言透過神經網路學習自然語言的語順
輸出自然語言模擬:
因為你昨天晚上嚴重壞了我昨天晚上持有的高級電視,所以我對你很生氣,帶著不悅的口氣,現在對你抱怨,用告訴的,為了得到你的道歉。
I am complaining to you right now for the purpose of requiring sorry from you Because you broke really hard last night my TV I have last night .
等等,這會不會就是邏輯語的概念?
只是我加上了字詞等級的概念
還是其實翻譯軟體本來就是這樣翻譯?
我也搞不清楚,突發奇想而已