推 nvidia:所以原PO也希望台灣軟體工程師也是五百美金 09/23 15:59
不是,只是要 80~120萬間薪水的,我希望他能解答底下幾個問題
what is race condition and thread safe? Please describe producer-consumer
pattern.
how to implement a traffic throttling task queue?
In a 1GB request log, how to find the top 10 longest common lists.
※ 編輯: HYL 來自: 61.62.21.40 (09/23 16:12)
推 yauhh:嗯,好題 09/23 16:29
→ PhoenixSu:四年百萬差不多....更高的都看過 09/23 16:53
→ iincho:能答得出這些東西的我認識在硬體廠都是150+.... 09/23 17:56
→ iincho:我想這才是主要問題....:p 09/23 17:56
→ iincho:而且做純軟問題還有台灣搞有規模一點的product公司不多 09/23 17:57
→ iincho:四年經驗的很多什麼怪都沒有打過... 09/23 17:57
推 iman00b:可是,我覺得這題目很基本啊... 不是每個都該會的嗎? 09/23 20:01
→ iman00b:原來我身價有150萬? 怎麼我還在領50萬年薪啊??? 09/23 20:01
推 nvidia:TRAP? 09/23 20:10
→ nvidia:這種題目碩士都會吧 09/23 20:10
→ nvidia:感覺很普通 09/23 20:10
→ nvidia:還是你需要驚人的答案 09/23 20:11
→ nvidia:150萬的題目也太普通了 09/23 20:11
→ da1228:五十萬的答案跟一百五十萬的答案不一樣,也許樓上的可說說 09/23 23:24
→ da1228:看你們的答案讓大家秤秤您們的價碼是否過低? 09/23 23:25
推 xva:所以都會就150+起跳了嗎 還有誰要出更高的題目.. 09/23 23:27
→ da1228:會跟好是兩碼事,人人都會當老闆,但是成功的沒幾個。 09/23 23:59
推 shooter555:那怎麼都沒人回答出答案? 09/24 00:43
→ yauhh:並不是題目很難解身價就會高好嗎 09/24 07:19
推 dyco:我也很期待有人回覆解答 09/24 10:36
推 ARODisGod:我年薪六十萬 一題都不會 看來遲早要被淘汰 09/24 10:57
推 command:longest common lists是甚麼阿? 是要兩個log檔案對比嗎? 09/24 11:09
把 request log 看成一串的 IP -> URL 的欄位,然後先是要找出某個IP的讀
取流程
IP1 -> URL1 -> URL2 -> URL3
IP2 -> URL1 -> URL2 -> URL3 -> URL4
然後在這堆串列中,找到最長common list.
不管怎樣,歡迎有興趣的人來我這面試,找人資格往前找我的文章就有了,就不
重發了
推 NetsFan:XDDDD Hyl 大老闆 09/24 13:14
校長兼撞鐘的,稱不上是大老闆
推 luciferii:最後那個用shell script苦功硬幹算過關嗎? :P 09/24 13:42
行阿,我很好奇最終的效率會有多好...
推 command:nvidia大大可以說明要怎麼做嗎, 我碩士白念了.. 09/24 14:58
→ command:第二題感覺很像是message queue, 要做得好也不容易吧 09/24 14:59
→ command:第三題除了暴力 還有更屌的方法嗎? 09/24 14:59
→ iincho:貌似用樹去搞可以做.. 09/24 15:03
→ iincho:長成一棵樹之後看結構這樣會比較快嗎? 09/24 15:05
推 command:可以先建index, 之後就會有IP -> Url list這樣的結構 09/24 15:14
推 luciferii:用shell script是不得已的...網路設備上的OS能作的事不 09/24 16:06
→ luciferii:多 O_Q 09/24 16:06
推 nvidia:所以就是要驚人答案@@ 我不會 09/24 16:14
再講一遍,有興趣來我這邊學東西的都很歡迎。這幾個考題,都是工作上會用
到的。
第二題考的,就是第一題的應用,Producer 產生一個 Token 讓 Consumer拿,
拿到後才能夠接著跑,就這個簡單而已。
再要簡單下去,對java 5 concurrency API 熟的,會講用ExecutorService來做,
再熟一點的,會說一個Semaphore就做掉了。
class Executor {
final Semaphore lock = new Semaphore(5);
void execute(Runnable task) {
try{
lock.acquire();
task.run();
}
finally { // 差一點連我自己的忘了要這樣寫才對
lock.release();
}
}
}
※ 編輯: HYL 來自: 59.115.134.145 (09/24 18:09)
→ nvidia:受教了 09/24 19:14
→ nvidia:JAVA經驗太淺 沒用過這個… 09/24 19:14
→ nvidia:蠻驚人的@@ 09/24 19:14
推 nvidia:果然沒表面上這樣 09/24 19:18
推 command:我比較想知道的是第三題~ 有什麼很有效率的作法嗎 09/24 22:37
啊... 我會就去 Amazon賺大錢去了 XD
推 ledia:suffix tree ? 09/24 22:52
→ ledia:唔 alphabet size 太大, 當我沒說 orz 09/24 22:53
※ 編輯: HYL 來自: 61.230.55.30 (09/25 01:08)
推 luciferii:Amazon? 不用,隨便抓個盜版Log分析軟體 5分鐘搞定 09/25 01:37
推 luciferii:如果是1T就另當別論了XD 09/25 01:39
推 command:...所以你考這題的目的是? 09/25 10:01
推 mingtai1:最後一題用global/multiple alignment應該就能解. 10/02 12:45
→ mingtai1:不過alphabet size大,字元比對需要擴充成字串比對 10/02 12:48