想練習寫程式卻不知道該從哪裡開始的話,可以試試看HackerRank這個線上的程式解題系統。HackerRank將各種不同的程式類型分門別類,由淺入深提供多樣的程式題目供使用者來解題,支援Ada、Bash、C/C++、C#、Fortran、Haskell、Java、JavaScript、Lua、Objective-C、Pascal、Perl、PHP、Python、R、Ruby、Scala、Swift、VB.NET等常見的程式語言和腳本程式。解題方式為線上輸入並上傳程式碼至HackerRank的伺服器中執行程式,伺服器會自動輸入多個測試資料(測資)來驗證程式的正確性,並會對通過的測資給予分數。除了驗證輸入輸出的結果之外,有些題目還會限制程式的執行時間,以及程式碼的修改範圍,來增加題目的難度,協助受試者提升程式優化的功力。



HackerRank 網站:

hackerrank

HackerRank需要登入會員帳號才能使用。註冊帳號的方式十分簡單,也可以直接用Facebook、Google與GitHub帳號來快速登入。

hackerrank

登入之後,就可以看到自己過去的活動紀錄。

hackerrank

若要開始挑戰程式題目,進入「Domains」頁面,就可以看到一堆程式題目分類。

hackerrank

每個程式題目分類下,會依照不同題目主題和難度再進行細分。

hackerrank

題目中會提供簡易的描述和看起來很簡單的輸入輸出案例,但實際輸入的測資絕對沒有那麼的友善!有些複雜的題目還會另外對題目本身提供的案例做更多的解釋。

hackerrank

解題直接在題目頁面下方的程式編輯區塊進行。有些題目會預設好可以更改或是不能更改的程式。

hackerrank

程式寫完之後,可以執行測試看看,或是直接送出。送出程式之後,HackerRank會用多個測資來校驗使用者送出的程式,並且提供各個測資通過的情形與執行的時間。如果想知道究竟HackerRank餵了什麼測資到程式裡去,也可以在這裡查看。

hackerrank

遇到難題的話,每個題目都有獨立的討論區可以發問,或是參考別人遇到的問題與解決方法,這會是一個不錯的學習程式的方式。

hackerrank