05 竞赛程序经验谈

我第一次听过程序竞赛时是在我刚进到国三的下学期。

在这之前我对於程序的相关经验除了国中科展学的 PHP 及所有在第 2 篇提到的之外,我也曾在国三修资讯之芽 Python 班并学了一点语法和模组的使用方式,其外并没有任何对於程序竞赛的基础,甚至连他的比赛规则是什麽也不清楚。

在升上高一的暑假我参加了校内的程序竞赛培训,为期3~4周,内容为C++的基本语法、基本资料结构及简单演算法。当时就算是这样的内容我也学得零零落落,毕竟当时没有花太多时间在上面,有练习程序也全都是在培训的时候而已。在校内选拔我上了选手候补,但在开学後我仍跟着校队在上课时间请公假出来训练。

这时候才是我真正开始认真研读程序竞赛的基础知识。当时高三的学长姐们非常耐心的教我们各种演算法和资料结构,虽然还不太会把这些思绪转变成程序,但观念相较暑假清楚很多。但因为没有勤勉的练习,还是没办法跟紧上大家的脚步,在最後的几次练习赛的表现还是被学长姐远抛在後面。

除了校内的培训外,我几乎每年都会参加清大资工办的程序竞赛集训营,在为期五天的营队中,会塞给我们前所未有,到现在都还没完全学会的所有演算法的知识。在那段时间只有不断的知识轰炸,完全没有任何时间休息,只要一放松就会完全不知道台上的学长在讲什麽。晚上的时间是实际在电脑教室实作白天学到的知识,但手就是赶不上脑袋想的,想写出来的东西全部卡在脑袋中,手感完全没有进步的感觉。(而各种因缘际会,我没有参加过台大办的集训营,但我相信内容也非常的结实)

随後在竞赛程序的道路上,我跟着一起同学参加了各种不同比赛。除了各家企业办给高中生的程序竞赛,或是走上资讯奥林匹亚的选拔之路(虽然我没有进过)。在这些一点一滴累积的经验中,才真的可以顿悟当时在清大程序营听过但没有吸收的概念。但事实上是我在高二时都在做研究,一样没有太多时间练习演算法训练手感,只能在比赛间慢慢透过实战提升实力。而最後一个正式比赛便是在高三时的北市赛,也是我唯一比较能拿出来看的成绩了。(优等第二)

而认识 APCS 更是我在高二时才透过升学讲座才发现的能力测验。由於我和同学当时已经有在练习了,因此在近乎裸考的情况下印象中都得到最低 4/3 平均 5/3 的成绩。而我在两场考试後,最後的成绩为观念题 5、实作题 4,而这同时是目前所有学校采计 APCS 分数的最高标准。


即便我在高中前的程序经验并没有特别丰富,但我相信这个经验没有办法让所有人参考。尤其是在跟着校队一起练习的方面,也是要学校有这样的社群才能够跟着成长,相信也不是所有人都能够如此幸运的能够有朋友一起练习。下一篇章会先从 APCS 考试内容及准备方式开始谈起,并尝试从 0 开始架构出学习蓝图。


<<:  http 与 https

>>:  [Android Studio 30天自我挑战] 新增Spinner的两种方式

Day28-用jQuery写得出ToDoList吗_3_id的重要性与作用

首先先来写id的使用 我们要做一个随机码id的用意是因为,如果我们需要去对特定的label做改变我们...

【Day14】变数的地盘—作用域(scoop)与提升(Hoisting)

作用域(scoop)简单来说,就是变数的地盘,在地盘内,变数都有作用,出了地盘,变数就undefi...

[Day 18] 实作 - 介面篇2

首先看一下原生的技能介面是怎麽生成的 游戏介面分成场景(Scene)跟视窗(Window) 透过在S...

Day23 Vue 认识Porps(2)

我们在使用props时有时会需要特别对传进来的资料做检查所以通常我们就会用以下几个资料类型来做验证:...

Sass 连接词(&)基础介绍 DAY32

在介绍今天的内容之前 推荐一个不错的东西 那就是 CodePen啦 https://codepen....