Re: [请益] 初学者刷题的必要性?

楼主: watashino (我同学数学很烂)   2023-12-02 16:38:59
刚好有时间来回一下。
本文不提供任何连结,
反正随便搜都有很多类似的资料。
小弟对于online judge跟程式入门算是略有心得,
来贡献一下,给未来想学习、入门程式设计或是写白板题的人一点参考。
基本上就是照着自己的心路历程写,
过程中排了一些雷省了大家一些弯路。
程度大概是:
比下大学程式课都闭着眼睛前三名,
Google new grad面试基本上不用提示顺顺解。
比上竞技程式设计基本上随便被打趴,
Google team match没人要。
先讲一下怎么从零开始学程式,
基本上就随便买一本C++入门书、
或是网络上随便一个C++教学网站,
(喔对这边只推荐入门C++一开始hardcore了一点但对整个计算机的基础很有帮助)
就照着学照着写,大概学完条件跟循环就可以开始摸online judge 了。
后续单元大概就递回跟涵式比较重要,
总之就一边玩judge 一边慢慢学。
整本书大概三到四个月可以干完(有国高中课业的状况下,如果没课业的话一个月)。
再来是比较痛苦的部分(虽然个人挺喜欢的,解题的过程会有快感),
基本上就是熟悉完zero judge 的环境之后开始练“语感”。
这里使用zero judge 的原因是:(根据印象中)上面有大量“平铺直叙”的题目,
也就是基本不需要任何算法、资料结构,
只需要用基本条件、循环的概念就可以解出,
算是比leetcode easy还要简单的类型。
这边要获得的能力是看到一个叙述能够秒转成程式码,或是程式码可以秒转叙述。
如果获得了这个能力,恭喜你,你的程度已经可以跟上修完程设的四大资工学生了。
喔对,如果你是高中生,这时候可以去打比赛,基本上有这个能力在乡下就可以拿地区前三名了(至少十年前是这样)。
喔对,整个学习历程里面只有这个部分需要“刷”,其他多余的背诵、刷题都不建议。
在上述步骤的同时可以开始一边看资料结构跟算法了,
一样网络上随便搜一个连结或是随便买一本书都行。
而之所以要先开始练习“语感”再看资料结构算法是因为通常这类型的书或是教材会有大量虚拟码,要有一定的读程式能力才有办法顺顺看。
这边可以分成两个方向:
1.想要海纳百川多学点
那就没什么好说的,整本书都看一看。
看完之后再去研究下面说的pattern。
2.只想应付白板题和leetcode
要去找leetcode的pattern,
这种东西网络上随便找也是一大堆,
随便给个关键字“two pointers”。
总之呢就是可以把leetcode/白板题常见的解法分成几个类型,往这些方向读就可以了。
再来就可以真的开始来写leetcode了,
可以找别人整理好的100题list下手。
至于leetcode怎么写跟怎么被Google刷掉,
有人想看的话之后再分享好了,
反正我是没签NDA。
作者: hobnob (hobnob)   2023-12-02 17:07:00
听起来蛮厉害的啦,被刷掉我猜behavioral没过?
作者: amamoimi (佛仔)   2023-12-02 17:37:00
谢谢w大
楼主: watashino (我同学数学很烂)   2023-12-02 17:48:00
有人真的behaviour 没过的?看过几个忧郁症反社会都没问题阿
作者: alongalone (沿着孤单的路)   2023-12-02 18:08:00
看来应该就是玄学的部分了
作者: holebro (穴弟弟)   2023-12-02 19:39:00
高中生照你文里讲的程度已经连NPSC预赛都过不了 七八年前
楼主: watashino (我同学数学很烂)   2023-12-02 20:03:00
只能说地区差异很大 乡下什么资源都没有 程度自然差
作者: seanwu (海恩)   2023-12-03 08:24:00
我个人不是很推荐自学从zerojudge开始,原因是几乎所有人都可以出题,品质参差不齐,除非有人可以帮你挑我会推荐从Lucky猫ACM挑一星题,当然没想法的就先跳过
作者: worcdlo (worcdlo)   2023-12-04 13:30:00
被刷BQ,供参
作者: becca945 (频果芽子)   2023-12-07 19:52:00
乡下解几题就能过去全国看神仙了

Links booklink

Contact Us: admin [ a t ] ucptt.com