/*
原本要打備審資料準備方法的文,看到這篇文後忍不住還是回了,文很長,請慎入,很多地方我沒講細節,可以善用回文發問。
然後我不是什麼強者,只是剛好走過類似的路、處處碰壁的路人,希望如果有真神人路過,可以補充。
*/
初學者基本上不用太執著買聖經書,選一本順眼的去看,因為你需要的是讓腦袋接受資訊領域的溝通方式。
你學的語言是C,加上想比競賽,所以我這篇文章先以你想打演算法競賽為前提來打,當然若想學其他領域也可以回文,我會盡可能解答。
一、 入門
解各大OJ的題目,建議先把ZeroJudge的基礎題目寫一寫(至少100題),再去寫其他OJ的題目,因為你沒有基礎程式概念去寫,可能會崩潰然後炸裂然後放棄,這裡給一下我有在用或有聽過的OJ:
1. TIOJ
2. UVA
3. HOJ
4. POI
5. SPOJ
6. POJ
7. HDU
8. BZOJ
9. Codeforces
10. USACO
平日也可以去玩一下線上競賽,這裡推Codeforces、Topcoder、BestCoder、Google code jam、facebook hacker cup(我發文的現在剛好在round1),也可以去玩玩USACO的月賽。
如果不知道從何開始學演算法及資料結構,這裡推薦幾個網站和書籍:
1. 板橋高中講義( https://goo.gl/DkF6CM)
2. 建中培訓網站( http://tioj.infor.org/articles/5)
3. 演算法筆記( http://www.csie.ntnu.edu.tw/~u91029/)
4. 培養與鍛鍊程式設計的邏輯腦:世界級程式設計大賽的知識、心得與解題分享 [第二版]
5. 提升程式設計的解題思考力:國際演算法程式設計競賽訓練指南
6. 演算法競賽入門經典
7. 算法藝術與信息學競賽
營隊及課程我推薦資訊之芽培訓計畫(台大的課程 在清大和台大)、程式解題競賽集訓營(ioicamp 寒假的)、PCCA(交大辦的 時間是寒暑假)。
另外我建議還是學一下C++ STL的使用,因為競賽時沒有人真的在刻的,但也不要會STL後就瘋狂使用而不知道內部實做。
二、 競賽
競賽部分,我先分成升學有關的資訊奧林匹亞以及和升學無關的其他競賽。
資奧:
先比資訊學科能力競賽區域賽和全國賽,拿名額後再參加入營考取得選訓營資格,取得後30個人開始第一階段集訓,到第二階段時變成12個人集訓,第三階段就是當國手的4個人集訓,詳細情況可能要請大神解釋,我只是個因為高職身分而無法去比的小渣渣。
其他競賽:
1. NPSC
2. 成大暑期程式競賽
3. HP Codewar
4. ISSC
5. 青年程式設計競賽
6. YTP少年圖靈計畫程式邀請賽
其中最推薦NPSC。因為我這三年大部分都在高職這邊其他領域的競賽打滾,所以我可能無法回更多,這裡講一下抱歉(明明就是想睡覺)。
三、 建議
我希望你是喜歡程式而想學程式,如果是為了升學,建議你轉換跑道,因為這不符合效益(你程式寫三年都不一定能保送,但讀書讀三年應該有不錯的學校),另外若你想繼續學程式,可以去試試其他語言和領域,我一開始以為我就是只會演算法,接觸資訊安全後才發現這也很迷人,多嘗試吧!資訊領域很廣,不是只有競賽才是唯一的。
你可能有興趣的文章...
全部留言
我是那篇文的原po 超感謝妳打這麼多的 其實我也才剛接觸 我目前是看YouTube上的影片自學 但一切入的點就是c 語言的IDE.程式碼... 上網爬文後發現應該要順便充實基礎 但不知道怎麼開頭😂 然後~我是單純對寫程式有興趣的XD 寫完程式 按下run跑出正確的結果不是error 的時候 成就感很高呢😁 當然參加競賽一部分也是為了以後的備審資料啦~ 但我覺得有競賽就會有努力的方向 更何況這是我有興趣的東西 總之謝謝的特地洋洋灑灑的打了這篇文 真的很詳細!!!!!! 超感謝的😭😭😭😭 啊對了 如果我要學很資訊科很基礎的東西 有推薦的書嗎?
B1 資訊科很基礎的東西是什麼意思?有點不太明白你想要的東西 其他的我專案弄完再一次回你,快發表了進度堪憂# B2 小心卡到奇怪的東西轉靈異版
B7 那是高職的,既然你都提了,我就把高職的競賽也提一下吧! 高職可以升學的競賽有全國技能競賽和工科技藝競賽,其中全國技能競賽有網頁設計、資訊技術以及網路技術三個職種,網頁設計主要使用php及jquery,資訊技術使用C# SQL及文書處理,網路技術使用router及linux也是樓主好像有興趣的硬體那塊;工科賽有軟體設計及硬體裝修兩個職類,軟體設計使用C#或VB,這裡的C#比較偏視窗化程式設計而非資料庫,硬體裝修有硬體、程式、電學。 我知道的大概是這樣,如果想問詳細我可能只能回答全國賽網頁設計和工科賽軟體設計。
B9 這個啊…我也還在尋找耶 其實我會的領域不少,都能拿出來用但以專業人士看就是在鬧 例如高中生說我神因為我會寫專案、軟體開發、網頁設計、伺服器管理、遊戲設計,但我的顏算法他們會不屑一顧;高職生覺得我神,因為我會演算法和資料結構,但上面講的那些他們看到都會嗤之以鼻,因為太爛了。 雖然也不是完全都這樣(指領域),但不能否認的是我不知道自己的專長是什麼。
可以說我是一個被亂造神的廢物,因為他們只看到他們不會但我學過皮毛的東西,而無視我認為是專長但完全輸掉的東西。
B12 最推薦的當然是鳥哥啊(? 不過我到現在還沒看完呢www 其實想入門最快的方法還是直接裝一套來用,然後搞懂所有設定(遇到問題直接打help或上網查) 書的部分那時候我也是聽一堆聖經書,實際去書局時還是選自己順眼的了,因為我不認為我會認真讀完那些書,反而覺得我選的書我可以看的比較輕鬆。
B12 然後然後然後!我一定要講件事!! 拜託去用centOS或debian或Arch或什麼都好,不要用ubuntu!! 被雷到快瘋了,伺服器前幾天一直炸QQ