進度條

是考古還是預習?Online Judge(線上解題系統)刷題與填鴨式教育的差別與意義

多得是能說的一口好程式人,還是先用程式碼展現自己的深度吧!

作者: Vincent Ke 更新日期:

一說到刷題各位一定相當有感,每每當求職潮來臨時,刷題一定是磨練手感的一大手段,也是海外求職的必備經歷,許多人更是養成早上一杯咖啡刷一題的習慣,無非是為了培養解題的靈感與靈敏度。

 

 

startup-photos (1).jpg

 

 

而刷題的來源,也是我們常稱呼的OJ (線上解題系統,Online Judge),是一種在Coding競賽中常用來測試參賽程式的線上系統,,也可以用於競賽或是平時練習時的使用。

 

但許多人心中一定有個疑問,刷題不就是跟以前期中考狂背題庫很像嗎?如果是填鴨式的死背活計,這樣對以後在職場上的競爭力真的會有幫助嗎?還是只是為了面試的急就章呢?但你知道嗎?除了練手感之外,刷題其實還有另外一種意義

 

 

pexels-photo-879109.jpeg

 

 

在眾多的考題中,解法其實都不是只有唯一一種,除了大部分人注重的解法意義外,其實最常被忽略,卻也是最重要的-實作上的工程意義,也就是算法上的效能意義,或是code的架構上是不是易於閱讀..等等,這些都是在確定了演算法(算法)之外的實作意義。

 

而許多企業面試的筆試題,其實也蘊含了這個意義,一方面是想要考驗面試的工程師們,是否可以在規定的時間內完成考題外,也必須要考慮在這個有限的時間內,寫出來的代碼在實作上的意義是否可行,畢竟不管是產品還是專案上,都是分秒必爭的廝殺,而這時候考驗的,除了寫code的想法外,更重要的是執行的效率。

 

正如同名言:Talk is cheap, show me the code. 多得是能說的一口好程式人,還是先用程式碼展現自己的深度吧!

(還好進度條除了概念全都有實作程式碼撰寫過程,甚至程式碼都可以下載呢!好課程不買嗎?)
 

 

 

所以刷題除了磨練手感、增加敏感度外,最重要的是不要只滿足在解題上,而是要追求更多的可能性,讓寫程式時有更多的選擇。而Leet Code就提供了這些數據讓你來做參考,除了鍛鍊算法外,還可以鍛煉結構設計與函式庫的熟悉度,一道題目經過多次的反覆訓練後,就可以達成一出手不只命中,還會爆擊的目標。

 

 

而刷題都首選的OJ,通常都會是Leet Code,一來是題目的種類與多樣性夠多,再來是覆蓋率廣度也一直廣受好評,另外對於語言的支持度也相當廣泛。但除了Leet Code外,小編也在粗略地介紹一下其他的刷題網站:

 

相關文章:海外工作浪潮襲來? 快用LeetCode刷一波考古題吧!

 

pexels-photo-1342460.jpeg

 

 

1.Codility

在國外鼎鼎有名的除了LeetCode外,另外一個頗具盛名的就是Codility,而Codility本業是在幫各大跨國軟體企業做線上筆試用的,所以刷題只是副業,但題型的風格上就更接近面試一點,據說題庫難度更在Leet Code之上,測試資料集也是相當完善。但最特別的是,他們可有在做線上比賽,表現得好可是容易被挖掘的唷

 

 

2. Hackerrank

也是國外相當具盛名的線上解題網站,其中許多題目也很常被Leet Code做比較,但最具名的就是Facebook和Google可是有在這網站上直接辦過比賽的呢!表現優異的就直接大獎offer一份呢。

 

所以填鴨式的教育訓練的,並非是要讓你產生機器的思維,而是經由反覆的練習,把Code寫得精簡又乾淨,才是刷題上最重要的意義。

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Medium vincent

Vincent Ke

喜歡把混亂的事情變的簡單 用嘴巴做事其實很可以 但要結合靈活的腦袋思考 就一起來拆解吧