# 2020/09/29 jserv課程 ## 浮點數運算 1. 第一題做 hypercube 並且搭配底下的延伸閱讀得到啟發 2. count 0 刷leetcode不只是時間他也會看空間 3. 去思考是否能夠把 mod 這一個運算拿掉,一個一個拿掉,最後其實可以全部都不要 mod 這一個動作,甚至不需要 branch ,題目很簡單但是可以引發思考,並且把延伸問題做完 4. Microsoft Research,其實和上週很像避免除法的操作,因為除法的操作在電腦太沈重了,記得不能夠取一個近似,因為除法成本真的太高了,所以即使有 branch ,即使這樣 cycle count 都還是比較低 ## Amazon學長 分享 [莊彥宣](https://www.facebook.com/profile.php?id=100001127336441) 成大電機103,成大電通105 碩一升碩二才開始學習 c 語言 , 碩一升碩二去研發替代役去面試很多家公司結果只有瑞昱有上(聯發科沒有上)碩二畢業(2015) 簽約了, 碩論當初在面試沒有屁用,取得碩士文憑 Jserv 拿過麥克風介紹了一下瑞昱 學長在瑞昱做通訊網路ic,當時幫他們寫 linux kernel 的東西 wifi server ,對谷歌做 chromebook 裡面的 wifi 模組.  code review 很麻煩,而且要把 commit 做好 學長開秀 github , code review 開秀 台灣公司都有一個問題不管是 聯發科 還是 瑞昱 都沒有對 linux kernel 都沒有任何聲量,但是這樣會產生一個問題會沒有辦法直接弄,所以學長說讓專業的來。maintain 這樣 code review 全部都學長來控管,相對的這樣會很累 maintain 會很累,外面的聲浪其實更加麻煩更累,最大的收穫可以炫耀,可以和外國人溝通他們對於軟體的品質是很重視。 亞馬遜面試找 wifi ,誒 剛好這樣學長有一個上面的經驗,所以雅馬遜主管就直接錄取。 習慣的不同,產生出來的程式的品質就不同 maintain 很任性。 但是這樣做和台灣公司文化很不合,交付產品會延後並且成本也會變高,這樣造成整個公司很困難的點。和公司原本的做法差異很大。 到亞馬遜,有一個 hatehunter 提供了一個機會,過程大概三,四個月。 台廠只會和一級和二級主管面試 外商面試 loop interview 會有很多關卡,考慮的議題比較多。每一關隔2週 第一關 : 線上 coding (有點像是 leetcode) 一個半小時有6,7題,裸打的能力很重要,每一題大概10~15分鐘 第二關 :直屬主管開啟 word 叫妳打程式 還要一邊解釋你是怎麼做的 (一個小時)精準地在時間內回答,事先經過大腦演練。 第二關反應了。一個小時會被分成30 30 ,30分鐘打程式,30分鐘快問快答 第三關 : 合作部門的同事 或是 未來同事 要面試,溝通能力或是團隊合作以及人格特質 雅馬遜很特別會有 bar raiser 他是專門來問人格特質(e.g. 和主管意見不合,或是和同事不合)大概會有6個人,一個專門 bar raiser 第四關 後面都差不多了 台灣成立一個網路(eero)的,台灣雅馬遜正在迅速擴張 。 履歷比較漂亮 。智慧家庭,理論上買了就不用設定。智慧家電串連起來很重要的就是所以很重要。 frame work 一切的整合 invaild ,網通裝置 ### 同學發問時間 : Q:學習歷程 畢業就直接有能力去寫 server 嗎? A:邊做邊學,其實一開始跟本就不會,看 source code 非常重要,台灣很多軟體工程師是不看 code 。 看 source code 非常重要 Q:如何說服主管做這種 source code up stream ? A:他們一開始不信結果失敗了,資深同仁很重要,有點像是連署的感覺 Q:為何一開始什麼都不會,你怎麼有勇氣去做,又是怎麼做到那些? A:新人保護期3~6月 可以讀書,一邊加強自己的能力一邊讓自己去溝通,邊做變準備。 Q:碩班其實未來根本沒有幫助嗎? A:學歷幫助拿到門票 Q:找研發替代役問題 A:碩一12月就要開始找囉 ## code review 老師開始在抽人囉 GitHub : chim 失敗 GitHub : Q:reverse有哪裡不好的? A:沒有註解,無法一開始就直觀很理解, Q:幾個指標比較好?指標 還是 指標的指標 A:取決於要不要回傳 Q: A:他以為你會丟新的 head 給他 可以 reverse 又可以 ??? Q:有沒有想到類似的事情? A:sort就會了 Q:解釋一下在 sort 在幹嘛? A:用 call 自己 , Q:哪一個地方分割或是合併? A:因為最多只有一個人 element 如果資料只有兩個其實不需要,所以需要考慮特利情況 遞迴會呼叫,造成衝擊, Q:如果再給你一次機會你會如何修改? A:<2 改成 <3 然後去增加特例處理,但是會無限上綱 Q:我該再多大的數值使用 merge sort 才會有效益? A: Q:為何不能當一般的陣列看待? A:他本質上就是不連續,可能每一台電腦都是用網路連接起來的 Q:缺乏測試? A:作業後面有交代要用工具沒有去做 每一次做 code review 都會人數變少 Q:你的 commit message 哪裡沒有寫好? A:亂寫了一個1632 可以使用 git commit --amend 來去修改你的 commit message 因為題目有要求,所以使用空間換取時間。 Q:是否有去修改其他size A:沒有 git commit message 卻沒有寫在同一個 commit 當中 Q:change for reverse A:實作 reverse 更好可以加一點 to do GitHub : huang-me 全班考卷丟掉就可以重考 GitHub ID是一個很重要事情不要亂取 Q:你覺得你哪裡做對? A:他有放頭貼 老師補充:他有按照格式 Q:做了什麼修改 A:就刪掉而已 Q:reverse_queue 做了什麼事情? A:忘了 Q:依照程式碼你想做什麼事情? A: 痾ㄡ.....忘記了 Q:可以理解的哪裡可以再改進? A:比方說一開始是一個空的 Q:如果只有一個 element 會進入到 201 要怎麼不要進去? A:用 if-else ? Q:如果只有兩個 element 值不值得去做? A:不一定會值得 Q:哪裡文法有問題的? A:祈使句原本是沒有問題的,但是主詞沒有搞好 code review 不是要探討那些高深莫測的東西,是要探討很基本的東西,基礎如果是錯誤後續會很慘,基礎不好很容易造成後續建立出來很可怕的東西 ## 浮點數 日光節約時間會造成時區其實不是固定的 Precision : 多少位元的數目是否正確? Accuracy : 有出線的每一個是否正確? IEEE754 : intel 贊助 CMU 的研究,但是其實他自己不遵守 他卻有 80bit 自己耍白痴(酷) 會不會有一種情況是 80 bit 看起來好像是多出來很好,但是 :::danger 多出來的 bit 會不會益位,從而影響到其他的 :::  少女時代的腿有殘影。 ###### tags: `進階電腦系統應用2020` `code review`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up