「哈囉,阿米哥,我的朋友(原諒我的贅言!)。你可能聽過這句俗話:『訓練流的汗越多,戰場流得血越少』,有吧?」

「嗯,這是句真話,學習通常不容易!你正在掌握程式員這個新職業,而且,很有可能,你的職涯會發生翻天覆地的變化。」

「CodeGym 有大量的練習。佔了整個學習過程超過 80%。」

「我們把這些練習變成一個龐大有趣的探索(事實上是一系列探索),但每個人都不一樣:有些人學得快,有些人比較不急不徐。有些人很快就掌握新內容,但有些人可能會覺得很難懂。不管怎樣,我們的工作就是要讓每個學生都抵達終點。」

「但是教授,要是我不管怎麼努力,就是搞不定下一個任務怎麼辦?又或者,如果我的命運完全取決於下個主題,但我就是領略不了,那又該怎麼辦呢?」

「解決方法很簡單:社群。社群裡包括了像你一樣的學生、畢業生、老師還有專業開發人員…」

「程式員不只是數百萬個用不同語言撰寫代碼、利用空閒時間開新創公司的人。他們還形成了一個全球性人際網,持續在裡面與他人分享自己的知識。他們隨時準備好要回答別人的問題,並且幫助他人了解複雜的主題。」

「世界最大的開發者社群是 StackOverflow 網站,它就是因為程式員需要彼此學習而創立的。這個概念很簡單:你提出問題,世上任何一個程式員都能回答。很方便,對吧?:)」

「在 CodeGym 這裡,我們認為學生彼此交換知識有很高的價值。藉由幫助他人,程式員自身也會成長(畢竟,解釋給別人聽是讓自己完全理解的最佳方法)。」

所以我們設計了特別區域,讓我們的所有學生有機會分享知識,並在學習過程中幫助彼此。

「所以,如果你有個任務遲遲無法進展,該怎麼辦呢?在網路上搜尋別人寫好的解法不是個好主意。如果找到了,你是能夠在探索裡繼續前進。但你的理解會缺了一塊,將來這一定會反過頭來咬你一口的。相信我。」

「更好的方法是積極使用幫助區域。」

「用法真的很簡單。只要按下任務旁邊的『幫助』按鍵:」

「如果你需要找某個等級裡的某個任務,只要在搜尋列裡輸入名字就可以了。」

「或者,從下拉選單裡選擇你要的探索和等級。」

「如果你選了『已解決』過濾器,你會看到 CodeGym 社群已經回答過的問題。」

「只要按下『問問題』按鍵,貼上任務的連結,然後解釋你的問題就好。」

「注意:在幫助區域裡不可以用完整代碼回答問題。這個區域的目的是要讓使用者彼此提供訣竅,讓他們靠自己找到正確的解法。一方面,你的理解就不會有缺失;另一方面,你會覺得自己很棒:你完成了這個任務,而沒有跳過、或用谷歌搜尋找到別人完成的解答。你看,這是不是有百利無一害呢! :)」

「另外,當你在 CodeGym 的經驗變豐富以後,別忘了要回到幫助區域喔!就像我剛說過的,解釋給別人聽是讓自己完全理解的最佳方法。CodeGym 學生有你幫忙會很開心的,就像你之前接受其他人的幫助一樣。選擇『新增』過濾器,試著回答學習程式的小夥伴們提出的問題。他們會很感謝,而你則是得到再次深入理解相關主題、並深入探討別人代碼的機會(了解別人寫的代碼可是程式員的關鍵技能!)。

不過 CodeGym 裡可不只有學習而已!我們還會跟程式員夥伴互動(不管他們是新手還是專家)。」

「人們常常會在社群網路上建立群組,連結想法很像的人。我們覺得那是個很棒的構想,所以我們的網站也有群組。」

「你會發現上面有不同類型的群組。群組有多種 IT 關注焦點(舉例而言,有前端開發人員還有測試人員的群組)。」

「一定要加入我們網站的三個主要群組喔!

CodeGym 群組,我們會發佈網站、競賽和促銷的最新消息。所有新的網站更新和改變都會先公告在那裡。」

「在隨便聊聊群組,我們發佈的大部分是和 IT 有關的有趣文章 ,很多都是我們的學生和畢業生寫的!在這裡你可以透過很多方式大大打開自己的視野,像是探索新技術、找書評、取得找工作的訣竅、看點 IT 笑話放鬆一下、還有很多很多。:)」

「然後還有一個領先名人榜區域。」

「把所有的任務都成功完成,有一天你也能躋身最優秀學生的行列喔!:)」

「在 Java 開發人員群組,你會發現跟 Java 有關的有趣文章、延伸訓練材料、還有跟這個語言有關的新聞。」

「還有更多群組呢。CodeGym 是最適合新手作家施展身手的地方!寫文章是針對某個主題對自己的知識進行詳盡組織的好方法。」

「OK,太好了。要練習聽起來很有道理。但理論又扮演什麼角色呢?」

「當然,理論也是很重要的。如果物理學家不應用理論知識,而是埋頭猛做實驗,他們可能會玩得很開心,但大概不會產生有用的結果!程式設計也是一樣。在 CodeGym 這裡,我們主要專注在練習,這能讓你以最快的速度進步。然而,你也可以(而且我們強烈建議你這麼做!)從其他資訊來源取得知識,主要是書籍。」

「每個人都不一樣:有些人閱讀短短的一堂課程內容,就能夠吸收理解了;另一些人則會覺得從其他來源取得資訊、綜合摘要然後再做出結論比較方便。」

「這裡列出一些跟 Java 程式設計有關的好書,你可以搭配 CodeGym 上的學習活動一起研讀。每一本都是這個領域長久以來被認定為值得一讀的好書,絕對讓你的時間和金錢投資值回票價。」

  1. 「凱西·西拉與伯特·碧斯,深入淺出 Java 程式設計」

    「絕對是入門者學習 Java 的最佳書籍!深入淺出系列出版了一系列針對不同程式語言的書籍。作者群對於呈現內容有獨到的手法,讀起來容易理解又引人入勝。而且,你可以直接在書裡編寫代碼並完成任務!」

    「不論你在 CodeGym 的等級在哪,甚至是等級零,你都可以直接開始讀。:)」


  2. 「赫爾伯特·席爾特:Java 9編程參考官方大全

    「這本書也是初學者的好選擇。這跟前一本書的主要差別是內容的呈現方式:這本書用更嚴謹一致的方式呈現內容(許多人會偏好這種『標準化』的呈現方法)。這本書不容置疑地有很多好處,其中一個是它把內容切成最微小的細節,有時會重複強調。」


  3. 「布魯斯·埃克爾,Thinking in Java

    「這本是 Java 程式員的聖經。那一點也不誇張:每個 Java 開發人員都應該讀這本書。它很厚,但厚得很必要。它的名字可不是亂取的:它不只涵蓋這個語言的特定主題,它還解釋了 Java 的哲學—它的理念是什麼,為什麼這個語言的創作者有時會用獨特的、和其他語言不一樣的方式處理事情。」

    「它不是為了毫無經驗的初學者寫的,但等你破到 CodeGym 的等級 20 時,你就可以開始研讀這本書了。」

    「這些是你應該讀的必要 Java 書籍(還有很多其他書也是)。藉由閱讀書籍加上學習這個語言,你也會拓展你對程式設計整體的理解。下面還有與整體理解有關的最佳書籍:」


  4. 「查爾斯·佩措爾德,編碼-隱匿在電腦軟硬件背後的語言

    「這本書在亞馬遜網站上的評分 (4.7/5) 還有其他熱烈好評,都能告訴你它的價值。」

    「對於已經把高中電腦科學課內容遠遠拋在腦後或從沒上過相關課程的人來說,這是本超棒的書。它用一般人的語言解釋了電腦和代碼如何作用。比如說,電腦是怎麼執行程式員編寫的代碼呢?還有,電腦如何理解代碼的文字,也就是說,怎麼理解人類想要電腦做什麼?」

    「這本經典之作裡面包含了這些問題的解答。對於從未接受專業訓練的程式學習者來說,這本書對幫助他們快速進入狀態有著奇效。」


  5. 「阿迪亞·巴加瓦,寫程式前就該懂的演算法 ─ 資料分析與程式設計人員必學的邏輯思考術」。

    「演算法和資料結構非常重要,也十分必要。在程式員工作中它們佔了很大比重,程式員必須能夠有效地使用它們!舉例來說,你要怎麼排序上千個隨機亂數呢?」

    「事實上,你有很多種可能的做法!但這些做法的效率可是天差地遠。有很多書和課程都與演算法和資料結構有關,但巴加瓦的書對於剛開始學習程式的人來說,絕對是最佳選擇。它使用了簡單的語言,並且包括配上圖解的詳細說明,份量也不會太龐大。恰好是你起步時需要的東西!」

「閱讀書籍,完成任務,然後參與社群:這就是成為程式員的完美配方!」