现代软件工程第一周博客作业
自我介紹
大家好我是scallion,從初中開始我的外號(hào)就叫大蔥,漸漸地scallion成為了我最常用的昵稱或者是非正式的英文名字。
和比較常見的興趣愛好不同,我從5歲開始學(xué)圍棋,11歲成為國(guó)家二級(jí)運(yùn)動(dòng)員(其實(shí)也只是業(yè)余水平,離職業(yè)道路還有很遠(yuǎn))。一直到初中畢業(yè)才停止上圍棋課,圍棋也變就成了我的一門愛好。但是現(xiàn)在的我其實(shí)很少下棋,很偶爾才會(huì)跟朋友手談一局。我雖然圍棋水平退步嚴(yán)重,但是對(duì)它還是保持了幾分價(jià)值判斷力。很多時(shí)候下棋會(huì)有一種“我怎么下的這么差”的感覺,每一步棋都不怎么下的出手,卻又想不出更好的走法,結(jié)果就下的越來越少。不過我一直覺得我的這種心理現(xiàn)象很有趣。
高中以后長(zhǎng)跑和騎行成為了我的主要愛好,我高二的時(shí)候參加了杭州國(guó)際馬拉松,但是年齡不足20只能跑半程。去年的時(shí)候和同學(xué)兩天沿著巢湖騎了一圈。到了大學(xué)作息沒有高中那么規(guī)律,體能反倒是有些不復(fù)當(dāng)年。來了帝都之后準(zhǔn)備把鍛煉拾起來。這里不僅有“最美馬拉松”--北京百里山水畫廊森林馬拉松,騎個(gè)單車還可以考慮去天津看海。要是有一樣喜歡長(zhǎng)跑和騎行的小伙伴歡迎在評(píng)論區(qū)留言~
現(xiàn)狀、經(jīng)驗(yàn)和計(jì)劃
現(xiàn)狀
我來自中科大物理學(xué)院,2016年3月,deepmind的Alphago在五番棋比賽以4:1的比分中擊敗李世石。在比賽結(jié)束之前,我從未想過人工智能能夠在圍棋這個(gè)task上達(dá)到媲美人類的水平。在那時(shí)的我看來,深藍(lán)擊敗卡斯帕羅夫只能說明電腦算力的強(qiáng)大,而圍棋的精髓不僅在于計(jì)算,還在于感覺,這種不能顯式的寫出來的特征是很難被計(jì)算機(jī)所學(xué)到的。最終結(jié)果深深震撼了我,讓整個(gè)圍棋界回憶起已故去的日本著名棋手藤澤秀行先生的那句名言:棋道一百,我只知七。以此同時(shí),一種“ML一百,我只知七”的感覺在我心中油然而生,促使我從大二開始修讀了計(jì)算機(jī)雙學(xué)位,并最終選擇在計(jì)算機(jī)方向讀博。
查閱了軟件工程師自我評(píng)價(jià)表后,我認(rèn)為以下技能對(duì)我特別重要:
- 程序理解
- 代碼質(zhì)量
- python
- 處理大數(shù)據(jù)
- 個(gè)人源碼管理
就現(xiàn)階段而言,前三項(xiàng)的水平可能是2-3,后兩項(xiàng)的水平可能是1-2。希望在課后5項(xiàng)技能都能達(dá)到4-5的水平。本科前三年課余的大部分精力還是放在了物理上,雙學(xué)位為了精簡(jiǎn)課時(shí)基本上刪掉了所有大作業(yè)和算法課。導(dǎo)致現(xiàn)在計(jì)算機(jī)編程基礎(chǔ)較薄弱。具體的方法就是多讀代碼,多花時(shí)間實(shí)踐,向身邊的人請(qǐng)教。除此之外,我也計(jì)劃在這一年啃下一兩本大部頭英文書,補(bǔ)充下自己的理論基礎(chǔ)。以及系統(tǒng)性的了解Machine Translation的歷史。
師生關(guān)系
對(duì)于師生關(guān)系,我認(rèn)為鄒老師總結(jié)的健身教練和學(xué)員的關(guān)系很精辟,也覆蓋了大多數(shù)情況,但是就我的個(gè)人經(jīng)驗(yàn),我認(rèn)為師生關(guān)系應(yīng)該是以健身教練和學(xué)員為主,其他關(guān)系也可以存在。由于個(gè)人專業(yè)知識(shí)和表達(dá)能力所限,我無法很精簡(jiǎn)的總結(jié)我的觀點(diǎn),我選擇將我遇到過的最有特點(diǎn)的師生關(guān)系羅列如下:
力學(xué)是中科大物理學(xué)院大一上學(xué)期的課程,由于物理學(xué)科的特殊性,導(dǎo)致物理學(xué)院大一新生的物理水平參差不齊。物理競(jìng)賽大神高中就學(xué)完理論力學(xué)和量子力學(xué)了,而純高考進(jìn)入中科大的同學(xué)可能大一上力學(xué)期中考試還不會(huì)使用微積分解題。在這種極端情況下,要求老師照顧到每一個(gè)學(xué)生是不可能的。而老師的教學(xué)目標(biāo)只能是照顧那些基礎(chǔ)較差的同學(xué),教授那些力學(xué)的入門知識(shí),而這些知識(shí)搞物理競(jìng)賽的同學(xué)可能早已爛熟于心。在這種情況下,老師和物理競(jìng)賽的學(xué)生已經(jīng)不再是健身教練與學(xué)員的關(guān)系,而是健身教練和畢業(yè)學(xué)員的關(guān)系,雖然老師很博學(xué),但是他的博學(xué)無法體現(xiàn)在他講授的課程中間,那么物理競(jìng)賽出身的學(xué)生就完全可以不聽講,選擇自學(xué)更高層次的物理知識(shí),在課下和老師單獨(dú)交流,這樣才是取得最大收獲的方式。事實(shí)上,在物理學(xué)院保持領(lǐng)先優(yōu)勢(shì)的競(jìng)賽學(xué)生中,很多同學(xué)上基礎(chǔ)課的時(shí)候都在自學(xué)更高深的教材。在這種情況下,大學(xué)生為什么要聽講,這篇文章中的理由也就不成立了。此外,我認(rèn)為這篇文章中很多措辭都很奇怪,這篇文章指的不聽講似乎就是不學(xué)習(xí),我覺得有些狹義了,這么比較得出的是正確而無用的結(jié)論。比如:
你在上課的時(shí)候,是認(rèn)真聽講,還是在聊天說話玩手機(jī)?-- 難道不認(rèn)真聽講就只能玩手機(jī)了么?
課程講的不好不能成為不聽講的理由。 --老師講的都會(huì)也可能成為不聽講的理由。
課程有用無用不是一個(gè)大學(xué)生的格局能判定的。 --我認(rèn)為一個(gè)優(yōu)秀的大學(xué)生應(yīng)該在大學(xué)生涯中找到自己的方向和興趣,因?yàn)樽罱K是為自己而學(xué)習(xí),學(xué)生需要能自主決定那一門課對(duì)他更有用由于某些原因,我在兩所學(xué)校(A,B)都修讀過機(jī)器學(xué)習(xí)方面的課程。課程的上課學(xué)生均為本科生,且之前沒有學(xué)過人工智能有關(guān)的課程。但這兩所學(xué)校的授課內(nèi)容完全不同。A學(xué)校從logistic回歸開始,講SVM,NN,但是講的更多的是具體算法,冗長(zhǎng)的數(shù)學(xué)推導(dǎo)全部放在ppt上,一頁一頁向下翻,學(xué)生跟不上老師的推導(dǎo)方式,課下自己推導(dǎo)有感覺有些費(fèi)力。到結(jié)課的時(shí)候,學(xué)生學(xué)會(huì)了各種各樣的機(jī)器學(xué)習(xí)方法,但理論基礎(chǔ)稍微欠缺。B學(xué)校開場(chǎng)就介紹機(jī)器學(xué)習(xí)理論,從chernoff bound開始,接著講vc-dimension理論和優(yōu)化中的duality,全程在黑板上從頭推到尾,很少涉及到具體算法的內(nèi)容,而是給學(xué)生推薦了一些講具體算法的書籍。到結(jié)課的時(shí)候,一些同學(xué)證明了ML theory 中state-of-art的結(jié)果,發(fā)表在COLT上。評(píng)判AB兩個(gè)學(xué)校那個(gè)好是一件見仁見智的事情,可能與我的物理背景有關(guān),我會(huì)更喜歡B學(xué)校的上課方式。我也很欣賞B學(xué)校老師說過的一句話:
“我給你們講的東西,都是我認(rèn)為我講給你要比你自己學(xué)學(xué)的快的東西”
綜上,此我希望的師生關(guān)系是在健身教練和學(xué)員,但教練應(yīng)該能讓學(xué)員在同樣時(shí)間能達(dá)到優(yōu)于學(xué)員自己健身的效果,如若不然,我認(rèn)為學(xué)員自己健身也不失為一個(gè)可行的方法。
最后,關(guān)于抄襲,我覺得就課程來言,一切不阻礙教學(xué)目標(biāo)實(shí)現(xiàn)的引用都不是抄襲。
宏觀未來規(guī)劃
現(xiàn)在看起來我會(huì)選擇做學(xué)術(shù)研究,我不是很喜歡做唯performance的工作,所以做太偏應(yīng)用的工作可能會(huì)不是很開心。而且做學(xué)術(shù)研究一些物理思維可能會(huì)有幫助,起碼讓我樂意看一些很理論的推導(dǎo)。但我總歸從事的是CS方向的研究,代碼能力薄弱是我遲早要克服的短板。這學(xué)期的計(jì)劃就是現(xiàn)狀部分結(jié)束的那5點(diǎn)。
這門課的計(jì)劃
我現(xiàn)在代碼量自己也沒有估計(jì)過,可能11000行左右。C語言可能寫了5000行,C++寫了3000行,python寫了3000行。雖然前面沒說過前兩年浪費(fèi)了很多時(shí)間,但我還是想奮發(fā)向上,我計(jì)劃每周課下拿出10小時(shí)完成這門課。完成代碼量我現(xiàn)在實(shí)在沒有什么概念。希望每周都能碼幾百行代碼吧。
博客閱讀
我閱讀了“不要輕易在簡(jiǎn)歷上寫我熱愛編程,熱愛學(xué)習(xí)”。首先聲明本人并沒有在簡(jiǎn)歷上寫我熱愛編程,熱愛學(xué)習(xí)。讀這篇博客主要是想看看大牛的熱愛是怎樣的。和自己對(duì)比了下發(fā)現(xiàn)他說的那些成就,現(xiàn)在的我的確沒有那個(gè)毅力做下來。感覺以后還是要對(duì)自己狠一點(diǎn),尋找興趣,爭(zhēng)取在畢業(yè)的時(shí)候能說自己熱愛編程。
構(gòu)建之法提問
Ch04, P79, 每人在各自獨(dú)立設(shè)計(jì)、實(shí)現(xiàn)軟件的過程中不免要犯這樣那樣的錯(cuò)誤。在結(jié)對(duì)編程中,因?yàn)橛须S時(shí)的復(fù)審和交流,程序各方面質(zhì)量取決于一對(duì)程序員中各方面水平較高的那位。這樣程序的錯(cuò)誤就會(huì)少得多,程序的初始質(zhì)量會(huì)高很多
問題:我們?cè)诘谝淮谓Y(jié)對(duì)編程的debug階段中采用了這個(gè)方法,但是發(fā)現(xiàn)兩個(gè)人的交流有時(shí)候會(huì)掩蓋問題,來自代碼創(chuàng)作者的解釋會(huì)隱藏那些不易察覺的小bug,很多隱藏的比較深的bug還是在一個(gè)人獨(dú)立閱讀代碼的時(shí)候發(fā)現(xiàn)的,是因?yàn)榻Y(jié)對(duì)編程不適用于debug階段嗎?
Ch6, P112, 另一個(gè)改進(jìn)是,要在每一個(gè)任務(wù)中記載我們完成這個(gè)任務(wù)還需要多少時(shí)間。
Ch6, P115, 我們感覺好像項(xiàng)目完成了80%,殊不知后面的20%往往要花費(fèi)80%的時(shí)間。
問題:敏捷流程的核心是基于能夠估計(jì)出任務(wù)的剩余時(shí)間的。但文中又說很多時(shí)候并估計(jì)不準(zhǔn)時(shí)間。我感覺這里似乎有一些矛盾。如果預(yù)計(jì)完成時(shí)間估的不準(zhǔn),那么敏捷流程跟盡全力向前推進(jìn)似乎沒有什么區(qū)別?還是說一般工程項(xiàng)目都能估計(jì)的大差不差?
Ch8, P156, 用戶在各種菜單中幽幽暗暗的反反復(fù)復(fù)的尋找某個(gè)功能,我們?cè)趩蜗虿AШ竺嫣嫠薄覀兊慕缑婢嚯x“平平淡淡從從容容才是真”差太遠(yuǎn)了
問題:想問一個(gè)和書關(guān)系不是那么大的問題。就是現(xiàn)在產(chǎn)品的菜單和圖標(biāo)設(shè)計(jì)(比如word)依然很復(fù)雜,用戶很難知道自己要干什么事,就能根據(jù)菜單名稱大致找到地方。UI換了一版又一版,菜單設(shè)計(jì)卻沒有大的更新,是因?yàn)槲泊蟛坏裘?#xff1f;就是說為了和老版本兼容從而不能大面積修改菜單?
Ch16, P353, 但是絕大多數(shù)用戶都不會(huì)告訴公司顛覆性的需求,就像馬車夫那樣,他們會(huì)希望馬更快一些就好了。
問題:我認(rèn)為這個(gè)例子并不能說明問題,馬車的出現(xiàn)和汽車的出現(xiàn)相差很遠(yuǎn),起碼遠(yuǎn)超一個(gè)公司產(chǎn)品的周期。而且馬車直接變成汽車這個(gè)請(qǐng)求未免太顛覆性了。就像手機(jī)屏幕從按鍵變成觸控筆再變成手指直接觸控一樣,是因?yàn)橛脩舨粩喾从丑w驗(yàn)不好才促進(jìn)了產(chǎn)品的升級(jí)的。用戶是很難知道未來的發(fā)展趨勢(shì)的,成功的公司重視用戶,應(yīng)該推理出公司自身會(huì)去想顛覆性的方法滿足用戶的需求。而不是把沒做出顛覆性進(jìn)展歸因于用戶沒有提出來,這可能對(duì)用戶提了過高的要求。
Ch16, P359 技術(shù)成熟度曲線
建議:除了標(biāo)準(zhǔn)的一升一降,老師是否可以分析下AI的三次上升和兩次泡沫破裂,這樣可能更加形象生動(dòng)。
轉(zhuǎn)載于:https://www.cnblogs.com/ustcscallion/p/9802420.html
總結(jié)
以上是生活随笔為你收集整理的现代软件工程第一周博客作业的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图书管理系统之外键的增删改查
- 下一篇: 阿里云服务器CentOS6.9 nexu