作者watashino (我同学数学很烂)
看板Soft_Job
标题Re: [请益] 初学者刷题的必要性?
时间Sat Dec 2 16:38:59 2023
刚好有时间来回一下。
本文不提供任何连结,
反正随便搜都有很多类似的资料。
小弟对於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。
-----
Sent from JPTT on my Google Pixel 6 Pro.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 202.156.38.138 (新加坡)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1701506341.A.F31.html
1F:推 hobnob: 听起来蛮厉害的啦,被刷掉我猜behavioral没过? 12/02 17:07
2F:推 amamoimi: 谢谢w大 12/02 17:37
3F:→ watashino: 有人真的behaviour 没过的? 12/02 17:48
4F:→ watashino: 看过几个忧郁症反社会都没问题阿 12/02 17:48
5F:→ alongalone: 看来应该就是玄学的部分了 12/02 18:08
6F:推 holebro: 高中生照你文里讲的程度已经连NPSC预赛都过不了 七八年前 12/02 19:39
7F:→ watashino: 只能说地区差异很大 乡下甚麽资源都没有 程度自然差 12/02 20:03
8F:推 seanwu: 我个人不是很推荐自学从zerojudge开始,原因是几乎所有人 12/03 08:24
9F:→ seanwu: 都可以出题,品质参差不齐,除非有人可以帮你挑 12/03 08:24
10F:→ seanwu: 我会推荐从Lucky猫ACM挑一星题,当然没想法的就先跳过 12/03 08:24
11F:推 worcdlo: 被刷BQ,供参 12/04 13:30
12F:→ becca945: 乡下解几题就能过去全国看神仙了 12/07 19:52