分享到plurk 分享到twitter 分享到facebook

版本 80dc2e568b3c34d202af76c87c4464ae9fb5d46b

User/asd757817

Changes from 80dc2e568b3c34d202af76c87c4464ae9fb5d46b to 12144915cc718d33b9703601664e756508df06b9

asd757817(錢彥伯)

email: ``asd757817@gmail.com``

------------------

**簡介:**

- 成功大學 電機工程學系107級(2014-2018)
- 成功大學 電腦與通信工程研究所 資訊與系統組(2018~ )

個人評量
=======================

作業及筆記
------------------------
- HW1(筆記心得) [Hackmd](https://hackmd.io/c/SJGEwHytX/https%3A%2F%2Fhackmd.io%2Fs%2FBJKQ0hhu7)
- HW2(lab0) [Hackmd](https://hackmd.io/s/Sk1AugiY7), [github](https://github.com/asd757817/lab0-c)
- HW3  
       * dict [Hackmd](https://hackmd.io/s/BJGnYDl5Q), [github](https://github.com/asd757817/dict)
       * review [Hackmd](https://hackmd.io/G8K9VT-DTyqt5ZP8giWcvw)
       * list [Hackmd](https://hackmd.io/s/HkLpKveqQ), [github](https://github.com/asd757817/lab0-c)
- HW4  
       * clang [Hackmd](https://hackmd.io/c/SJGEwHytX/https%3A%2F%2Fhackmd.io%2Fs%2FBJKQ0hhu7)
       * assessment [Hackmd](https://hackmd.io/s/B15frlvsQ)
- HW5(bit) [Hackmd](https://hackmd.io/s/By2FjHx37), [github](https://github.com/asd757817/datalab)
分組作業:
- dict 深入探討 [Hackmd](https://hackmd.io/s/r1ZdcbFpm), [github](https://github.com/asd757817/dict)
- CS:APP, cache lab [Hackmd](https://hackmd.io/s/SkeA19jWN), [github](https://github.com/yichung279/cache_lab)

所見所聞心得
------------------------
因為聽聞 jserv 老師的課程可以大幅增進自己 C 語言的能力,雖然也聽說過課程的難度、強度是數一數二的高,但想說給自己新的學期新的期望,就決定選修這門課。


先說說回家作業的部分:

前幾周的課堂其實非常痛苦,除了被老師課堂上的刺激外,還有大量的材料需要研讀,影片內容往往需要來回撥放幾次、搜尋額外資料才能理解,花了大量時間閱讀材料與作筆記帶來的成果也是非常可觀的,像是指標的運算、取值、rvalue、lvalue 名詞概念都有更深入的認識;而接下來幾週是實作 CS:APP 教材的實驗內容,像是 linked-list 實作、bit-wise 操作等,作業的要求與難度都不高,但在開發過程中卻往往會忽略一些細節(use after free 等),而這些忽略的細節其實都是老師課堂上有特別強調過的錯誤,為了使自己能夠更加嚴謹,在實作的過程中會有一段的陣痛期,開發的習慣必須從原本 trial and error 的方式轉變為嚴謹思考後再行動,只有這樣才是真正自己的程式,以這樣開發的程式才是可靠的;而後半段幾周的分組作業其實相對前幾周並沒有這麼高的壓力,分組實作的部分多是以一個已經有專案深入探討其原理觀念、進行效能比較、改善部分內容等,一來可以學習不同開發者的開發習慣,二來在探討原理觀念時會發現以前學過的知識逐漸貫通,而這些改善的內容在未來都可能是我們在這圈子中的一種貢獻,至於另外一個有趣的事情是每當自己完成了要求,老師就會再丟一個新的想法、觀點進來,而要解釋那些概念又必須花很長的時間研究。

而課堂的部分:

基本上每一個禮拜都會有考試,而考試題目通常是概念理解,只有概念完完全全清楚才能夠完全答對,這非常考驗對於原理的理解;老師課堂上會不斷地用言語刺激我們思考,也會一直提到一些以前並沒有特別注意過的事情,讓我發現原來「頂尖」軟體工程師跟我想像的非常不一樣,如果只是想要成為一個很普通的軟體工程師,按照原本的節奏也許行的通,但要邁向頂尖勢必得在意更多的細節,老師課堂上會給人許多啟發,或許沒辦法將所有部分都了解、貫通,但其實只要在其種某幾項專精就是別人常說的大神了。

自我評量分數 (1 到 10 級分)
---------------------------
我給自己 **9** 分

在課程開始前我自認為對 C 語言有一定程度的了解,但在前幾周的誠實面對自己後才發現自己其實一點不了解這個語言,所以我給自己設定了一個目標:絕對不可以中途退選,要盡可能地在這堂課中汲取知識! 回顧自己在這學期所付出的努力與吸收到的知識,雖然部分作業並沒有做到最完美的程度,但在這學期的過程中已經盡可能地做到最好,相比與課程開始前也進步了許多,因此我給自己9分,剩下1分提醒自己不要滿足,要持續進步!