iT邦幫忙

2021 iThome 鐵人賽

DAY 7
2
自我挑戰組

深入高中程式設計能力指標 APCS系列 第 7

07 Re: 從零開始的競程生活

長話短說,請直接點我進入新世界。


任何事情要從完全沒有概念開始是非常困難的,尤其是初次接觸程式這方面的新手,看到要面對一行又一行的文字簡直如讀天書,明明想要理解卻不知從何下手,很容易就因此放棄。

為了保持動力,這時候我們就需要一個契機讓我們想要繼續學習下去。以我的案例來說,因為在校內就有很多同學也在學習程式競賽,因此就算氣餒也會想要跟上他們。但很明顯這種情況只會發生在極少數的學校,能夠在一開始就接觸到這種學習群體的機會也很困難,因此主動為自己生出學習動機是必要的。

因此在這裡我想要先列出幾個不同方式能夠增加自己的學習動力:

  1. 拉一位同學下海 / 抱大神的大腿不放

這是我在當時度過困難期的方法。我有一位一樣會寫程式的同班同學,但他在之前就有學習 C 語言的經驗,加上他的學習能力也比我好,因此當我遇到不會的問題時第一個想法就是問他,硬是巴著他,就算他覺得很煩也要嘗試弄到懂。

當然在這部分可以不只有一位,也是有很多同儕和學長姐能夠切磋一起成長,不要因為怕麻煩到對方就不敢請教,因為要嘗試把別人教會也是在寫程式時要學會的技能(如除錯等)。有時就是不想要麻煩別人,但自己又沒有能力用上網查詢的方始弄懂,但最後還是只好低頭向別人請教。

圖片取自巴哈姆特

而當有同學不會時也可以幫助他試著釐清問題。不要永遠認為某個地方已經完全搞懂了,當他提出問題大部分都是因為他想的比較深,遇到一個說不通的地方想要搞清楚,而正常我都不會想到那麼深而一起陷入困境。而在得到答案的瞬間,又會發現自己成長了許多。

  1. 嘗試加入各種學習群體,把自己泡在裡面

若是在 Google 上搜尋 APCS,會發現坊間會有很多線上/實體課程可以參加。這種課程非常適合剛起步的學生,因為會有人手把手拉著你往上爬,在對的時機點提供你資源,在各個角度切入感覺都很適合。但很神奇的是,在我認識的朋友當中,沒有任何人是透過這樣的管道學習的。

或許多少會有採樣偏差,但幾乎所有人都是透過互相教學/在網路上找資料一路學上來的,就算是有上過課也都是在國中以前的事情。或許在高中可以跳脫「所有東西都要老師教才能學」的思考框架,透過自己思考而學會的東西才是自己的。

據我所知,資訊方面的學習群體幾乎都在 Facebook 及 Telegram,FB 社團有不少人在討論,也有很多熱心的朋友及老師會耐心的回答,基本上你想到的問題都有人問過了。加入不說話也無妨,但在社群的耳濡目染下,相信會更有動力繼續學習。

  1. 找到有脈絡的學習教材,並不要放棄學習

不論是跟著校內學長姐做的 PPT 學習,還是自己在網路上找到的優質資源,只要決定好就不要去懷疑他,這種猶豫只會阻止自己持續學習。當時我是透過資訊之芽的語法班及算法班的講義、題目一路練上來的,常常會覺得這個太難了吧,真的有必要學嗎一路找理由,總是拿石頭砸自己的腳,但事實上最好的資源/最好學的方法都擺在眼前了,只是自己的腳在抗拒往前進。

我曾經修過台大資訊之芽的算法班課程,除了每週到台大資工系館上3小時的課程外,每週的上機作業和手寫作業總是需要花上好多倍的時間才能夠完成。在前幾週的課程還能夠勉強全部通過,但在第二階段開始的難度就會開始驟升,在學習量加大和課業兼顧的情況下,最終還是被壓力打倒了。但在之後我仍然沒有放棄這個領域,雖然不是很起眼,但仍然嘗試在這段時間累積實力,努力在大學的程式設計競賽發熱。

由自己創造這種動力的必要性並不只是在學習的一開始,在進到每一個階段也是如此。從開始接觸語法,寫出第一個"Hello, world!"程式後,會出現更多沒有理解過的東西。當自己爬得越高時,前方高牆只會再次顯現他的高大,階梯也會變得越來越難爬。而若是在這時候往回看,只會覺得之前走過的路對現在的挑戰來說只是小菜一碟罷了。

今年才準備要升上大一的我,面對到的狀況也和之前無異,不過學習的內容從單純的語法和演算法增廣到不同領域而已。所有資料都由許多非常好心的大哥哥大姊姊幫各位整理好了,不只是高中生,事實上對於所有剛進入資訊領域的同學也非常適合,強烈推薦。

但當然,要靠自己跨出第一步是最需要勇氣的。若是覺得孤單也請不要吝嗇地向身邊的大神同學們取暖><


上一篇
06 APCS 考試內容 Overview
下一篇
08 C++演算法自學指南
系列文
深入高中程式設計能力指標 APCS30

尚未有邦友留言

立即登入留言