*此作業筆記是依據 CS50x 2017 版本(也就是哈佛大學 2016 秋季班的 CS50)所寫。
作業筆記我只會寫出我做作業時遇到的問題,或是需要特別注意的地方,但不會把完整的程式碼寫出來。也因為這個緣故,所以只能用文字與少量的程式碼描述,可能會有難以理解的地方,還請見諒。
即使課程影片我都看得懂,但是做作業時還是卡關了一下,但做完後發現其實真正難的不是如何寫出程式,而是要寫出符合作業規定的 UX 設計。
第一週的作業分四小題,第三跟第四題還有分比較簡單的(他們叫做 less comfortable) 和比較困難的(他們叫做 more comfortable)這兩種版本,每個作業說明裡面都會有助教的講解短片 Walkthrough,基本上看完 Walkthrough 後就可以抓到如何寫作業的方向,強烈建議一定要看過才動手寫。
July 22, 2017
July 20, 2017
[CS50] Week 1 C - 課程筆記
*此課程筆記是依據 CS50x 2017 版本(也就是哈佛大學 2016 秋季班的 CS50)所寫。
CS50 原本就提供很詳細的課程筆記了(第一週筆記),所以這個筆記偏向記錄我比較不熟悉的部分而已(事實上這個筆記也是很長,廢話不小心寫太多)。
雖然我學程式的資歷還很淺,但已經不算是完全新手,看完第一週的課程影片後,覺得如果當初 CS50 是我的第一門程式課,我應該是痛苦不堪然後快速投降 XD
剛開始學程式的時候,我花了不少時間才完全理解第一週裡面教到的東西,像是函式、迴圈、條件判斷、資料型態等等,有些甚至到現在都還不算完全理解,像是浮點數。而 CS50 用一堂課就全部都講完了。雖然看完課程之後,我自認有 80% 以上的內容對我而言都是以前學過的東西,或容易理解的概念,但是在寫作業的時候仍然卡關嚴重(因為之前都沒有認真練寫程式 XD)。
即使第一週課程大部分的內容對我來說都不陌生,不過上完課還是收穫很多,Malan 教授上課的脈絡非常清晰,課程的步調也抓得很好,我甚至懷疑他在課堂上連出錯都是原本就安排好的,因為想要讓學生了解寫程式會發生的錯誤和一些邏輯思考,不過到底是不是真的出錯這就不得而知了。
CS50 原本就提供很詳細的課程筆記了(第一週筆記),所以這個筆記偏向記錄我比較不熟悉的部分而已(事實上這個筆記也是很長,廢話不小心寫太多)。
雖然我學程式的資歷還很淺,但已經不算是完全新手,看完第一週的課程影片後,覺得如果當初 CS50 是我的第一門程式課,我應該是痛苦不堪然後快速投降 XD
剛開始學程式的時候,我花了不少時間才完全理解第一週裡面教到的東西,像是函式、迴圈、條件判斷、資料型態等等,有些甚至到現在都還不算完全理解,像是浮點數。而 CS50 用一堂課就全部都講完了。雖然看完課程之後,我自認有 80% 以上的內容對我而言都是以前學過的東西,或容易理解的概念,但是在寫作業的時候仍然卡關嚴重(因為之前都沒有認真練寫程式 XD)。
即使第一週課程大部分的內容對我來說都不陌生,不過上完課還是收穫很多,Malan 教授上課的脈絡非常清晰,課程的步調也抓得很好,我甚至懷疑他在課堂上連出錯都是原本就安排好的,因為想要讓學生了解寫程式會發生的錯誤和一些邏輯思考,不過到底是不是真的出錯這就不得而知了。
July 19, 2017
[CS50] Week 0 Scratch - 中文導讀筆記
*此筆記是依據胡立老師的 CS50 中文導讀直播影片所寫。
胡立老師的直播:
CS50 中文導讀:week 0
原本不想寫這次的導讀筆記,因為所有內容都在胡立老師的 初心者的計概與 coding 火球術 有學過。但是呢,之後應該都會寫每週的導讀筆記,只有第零週沒有寫總覺得不完整(這應該是強迫症 XD),所以最後還是決定寫一下導讀有講到的,而 CS50 課程裡面沒有講到的一些補充。
以下是我的筆記整理:
胡立老師的直播:
CS50 中文導讀:week 0
原本不想寫這次的導讀筆記,因為所有內容都在胡立老師的 初心者的計概與 coding 火球術 有學過。但是呢,之後應該都會寫每週的導讀筆記,只有第零週沒有寫總覺得不完整(這應該是強迫症 XD),所以最後還是決定寫一下導讀有講到的,而 CS50 課程裡面沒有講到的一些補充。
以下是我的筆記整理:
July 6, 2017
[CS50] Week 0 Scratch - 課程筆記與作業
*此課程筆記是依據 CS50x 2017 版本(也就是哈佛大學 2016 秋季班的 CS50)所寫。
可能有些人不清楚如何在線上註冊 CS50,所以我大概講解帶過。
在 edX 上註冊帳號之後,還要到 Introduction Computer Science Harvardx CS50x 課程頁面上註冊加入課程,目前最新的課程內容是 CS50x 2017。課程本身是免費的,如果希望在修完課程後可以拿到證書,才要繳交費用。
稍微看一下他們的 FAQs,裡面有說到你一開始上課的時候不需要決定要不要拿證書,可以在完成所有作業及課程後才申請。所有作業都要 70% 以上才可以申請到證書。但是你可以繳交很多次作業,他們只會記錄你最後交的作業成績。
我猜測 CS50x 是指放在 edX 的課程,而 CS50 是指哈佛的課程,其實兩個是一樣的,只是時間上會有半年的差異,通常他們只錄製秋季班的課程(春季班應該也會有 CS50 但是沒有錄製),然後在隔年才放到 edX 上,因為影片需要時間剪接上字幕,還有一些其他的教學材料的準備,所以才會有半年的時間差。
可能有些人不清楚如何在線上註冊 CS50,所以我大概講解帶過。
在 edX 上註冊帳號之後,還要到 Introduction Computer Science Harvardx CS50x 課程頁面上註冊加入課程,目前最新的課程內容是 CS50x 2017。課程本身是免費的,如果希望在修完課程後可以拿到證書,才要繳交費用。
稍微看一下他們的 FAQs,裡面有說到你一開始上課的時候不需要決定要不要拿證書,可以在完成所有作業及課程後才申請。所有作業都要 70% 以上才可以申請到證書。但是你可以繳交很多次作業,他們只會記錄你最後交的作業成績。
我猜測 CS50x 是指放在 edX 的課程,而 CS50 是指哈佛的課程,其實兩個是一樣的,只是時間上會有半年的差異,通常他們只錄製秋季班的課程(春季班應該也會有 CS50 但是沒有錄製),然後在隔年才放到 edX 上,因為影片需要時間剪接上字幕,還有一些其他的教學材料的準備,所以才會有半年的時間差。
July 5, 2017
[CS50] 導讀哈佛大學程式課程:CS50 - 緣起
昨天正當我還沉浸在 Diablo 的世界時,收到胡立老師的關切。
他說:「所以妳有要一起來修 CS50 嗎?XD」
馬上從 Diablo 的世界中驚醒,然後我回:「好想繼續耍廢啊 😂」
的確是上個前端課程結束之後就一直耍廢,因為剛好 Diablo 死靈法師出了啊 XDD
最近胡立老師創了自己的教學網站 Lidemy 鋰學院,然後下個星期要開始一個新的課程:導讀哈佛大學程式課程:CS50。上次課程快結束前,胡立老師就有建議我可以再去上 CS50,但是我懶惰,只是放在「待修課程清單」XD
他說:「所以妳有要一起來修 CS50 嗎?XD」
馬上從 Diablo 的世界中驚醒,然後我回:「好想繼續耍廢啊 😂」
的確是上個前端課程結束之後就一直耍廢,因為剛好 Diablo 死靈法師出了啊 XDD
最近胡立老師創了自己的教學網站 Lidemy 鋰學院,然後下個星期要開始一個新的課程:導讀哈佛大學程式課程:CS50。上次課程快結束前,胡立老師就有建議我可以再去上 CS50,但是我懶惰,只是放在「待修課程清單」XD
June 25, 2017
Frontend Intermediate Course - 作業十直播筆記
最後一次作業胡立老師沒有修改,不過交完作業之後,在 Slack 群組裡面胡立老師有提到其實應該所有的 JavaScript 檔案都應該檢查才對,當時我在 webpack.config.js 裡面出現的錯誤不知道怎麼修改,所以就把設定檔都放在忽略檔案名單裡,不是最正確的方式。
後來才知道,原來在 webpack.config.js 檔案裡,如果沒有用到
也加入
所以在 package.json 裡面,讓設定檔也要被 semistandard 檢查:
然後在 webpack.config.js 裡面,拿掉
最後再重新用 semistandard 檢查一次,全部都沒有問題了~
後來才知道,原來在 webpack.config.js 檔案裡,如果沒有用到
webpack 這個變數,其實是不用引入的,這跟我原本的認知不一樣,點破我的盲點 XD也加入
path.join() 修正我的另外一個錯誤。所以在 package.json 裡面,讓設定檔也要被 semistandard 檢查:
"semistandard": {
"ignore": [
"src/css/",
"dist/*.min.css",
"dist/*.min.js",
"node_modules/"
]
}
然後在 webpack.config.js 裡面,拿掉
var webpack = require('webpack');,同時引入 var path = require('path');,修改一下路徑的寫法:module.exports = {
entry: './src/js/index.js',
output: {
path: path.join(__dirname, '/dist'),
filename: 'bundle.min.js'
}
/* Original codes:
module.exports = {
entry: './src/js/index.js',
output: {
path: __dirname + '/dist',
filename: 'bundle.js'
}
*/
最後再重新用 semistandard 檢查一次,全部都沒有問題了~
June 17, 2017
Frontend Intermediate Course - 學習心得
有點不敢相信自己居然可以堅持到最後,而且每週都有交作業(除了第五週作業寫不出來,看完直播講解後才交作業),每週也都有寫部落格記錄作業筆記跟直播筆記,都沒有偷懶呢!
以下是我上完這個課程的一些心得,寫得很長 XD
30 歲才開始
30 歲才開始學寫程式,總是會懷疑自己能不能學好,不過看到這篇:60歲才接觸電腦、日本81歲奶奶開發出 iPhone 遊戲 App 之後,又覺得 30 歲開始其實也不晚。年齡不應該是阻止自己學習的藉口,如果想著「我年紀大了,學這個太晚了還是不要學」,這樣其實是為自己的懶惰找藉口,沒有開始學習就說自己學不會,當然不可能學會的。開始踏出嘗試的第一步才是重點。
不可否認如果年紀輕一點開始學習,記憶力、反應力跟學習能力比較高,我也常常想,如果早個五年來學寫程式,是不是會比現在還輕鬆許多?但五年前的自己,根本不認為自己能夠寫程式,也對寫程式沒有一點興趣。雖然開始學寫程式的原因有點好笑,是因為失戀而想要學一個很難而且從沒有接觸過的東西,困難到不要讓我分心想不開心的事情,所以才開始學寫程式。
一開始也沒有想過學了要做什麼,也不確定自己會不會喜歡寫程式,但我的個性有一個奇怪的特點,就是「真正嘗試了之後才能決定自己對此事物的感覺」。雖然以前不認為對寫程式有興趣,但我從沒有真正寫過程式,這樣又如何下定論我是討厭寫程式的呢?剛好也趁這個機會好好嘗試看看寫程式,然後再來決定我對寫程式有怎麼樣的感覺。於是就在 Codecademy 上開始學 Python,後來卡關跑去 Hahow 上了胡立老師的課,也才開始了這次的課程。
以下是我上完這個課程的一些心得,寫得很長 XD
30 歲才開始
30 歲才開始學寫程式,總是會懷疑自己能不能學好,不過看到這篇:60歲才接觸電腦、日本81歲奶奶開發出 iPhone 遊戲 App 之後,又覺得 30 歲開始其實也不晚。年齡不應該是阻止自己學習的藉口,如果想著「我年紀大了,學這個太晚了還是不要學」,這樣其實是為自己的懶惰找藉口,沒有開始學習就說自己學不會,當然不可能學會的。開始踏出嘗試的第一步才是重點。
不可否認如果年紀輕一點開始學習,記憶力、反應力跟學習能力比較高,我也常常想,如果早個五年來學寫程式,是不是會比現在還輕鬆許多?但五年前的自己,根本不認為自己能夠寫程式,也對寫程式沒有一點興趣。雖然開始學寫程式的原因有點好笑,是因為失戀而想要學一個很難而且從沒有接觸過的東西,困難到不要讓我分心想不開心的事情,所以才開始學寫程式。
一開始也沒有想過學了要做什麼,也不確定自己會不會喜歡寫程式,但我的個性有一個奇怪的特點,就是「真正嘗試了之後才能決定自己對此事物的感覺」。雖然以前不認為對寫程式有興趣,但我從沒有真正寫過程式,這樣又如何下定論我是討厭寫程式的呢?剛好也趁這個機會好好嘗試看看寫程式,然後再來決定我對寫程式有怎麼樣的感覺。於是就在 Codecademy 上開始學 Python,後來卡關跑去 Hahow 上了胡立老師的課,也才開始了這次的課程。
Subscribe to:
Posts (Atom)