陈越姥姥的问题回答整理
励志
每个人的生命轨迹都是自己的每个小选择累积的结果——明白这个就行啦~替别人操心会掉头发的~( ̄▽ ̄~)~
甲级满分是好成绩的起步要求,两小时内顶级满分才是目标~( ̄▽ ̄~)~
官网 https://www.patest.cn/home
(课程,练习,考试,证书。)
考试大纲 https://www.patest.cn/introduction
技术博客:https://blog.csdn.net/weixin_42240667/article/details/105324936
关于编程
没有比数学更难学的了。。。如果有,那是理论物理。相比之下计算机是小弟弟,能算小弟弟是因为有计算理论撑门面,除了理论部分就没啥难的了。软工就。。。实在想不出哪里难学(*/∇\*)
C语言自学攻略 https://zhuanlan.zhihu.com/p/373952065
数据结构自学攻略 https://zhuanlan.zhihu.com/p/374536704
确实,计算机是一个重实践重应用的学科。要有创造性,是一个学习工作生活能融合在一起的学科。
写过至少1万行代码以后,如果还是感觉没有进步,那我们再谈谈方法问题。
如果1万行都没写过,那还差得远……
写程序本来就是搭积木,只是积木的块大一点小一点的区别……
用10%的时间看书或听课,用90%的时间写代码。
所谓效率比一般递归高且不会溢出,是因为编译器替你把尾递归改成了循环,并没有傻傻真做递归。你可以选择做傻码农,把活儿留给编译器,也可以自己直接写循环版。这一点Weiss也写了吧~
我以前跟娃们讲的是:拿盖房子打比方,学计算机专业就像搞物理和力学、材料的,研究盖房子用到的原理和技术;软工就像建筑师和工程师,负责用现成的技术和材料把房子盖起来。代码就是砖呀~所以码农又称为搬砖工呀~ ^___^ 刚入门的码农写个几百行代码,就相当于砌个猪圈;进阶后用点数据结构和算法,做复杂一点的事情,相当于盖个两层小洋楼;软工教你带着一个施工队盖摩天大楼,难度不是一个数量级哒~ 学习软工后你可以选择做:搬砖工(码农)、包工头(项目经理)、建筑师(系统架构师)、老板(老板)。
所有专业都可以自学。
因为所有专业都是人创造出来的,所有专业的祖师爷都不是那个专业毕业的,因为在祖师爷之前还没有那个专业……
“也咨询过陈越姥姥,给的指导是同样的错误不要犯两次。”—— 所以第一件事应该是:在列出每次考试的成绩时,顺便说一下都错在哪里、卡在哪里了。根据这个信息,有经验的人可能会看出来你哪些方面的知识或者能力不足,会给你更有针对性的建议。
一场考试的结果不是只有分数,比分数重要的是经验和教训。你得知道自己到底为什么不会,才有可能不重复这个“不会”。
编程新手如何快速写代码?
每天写100行,100天后应该就快了。
事实上,任何能一直看到这里的人都可以玩玩,因为不适合的人根本看一眼就“太长不看”了。
另外,真能学好计算机的人,一般比较习惯条理性很强的事情。如果你的思维习惯是发散就不一定适合。这里没有说那种习惯好哪种不好,每个人的大脑都不一样,只有适合与不适合。
关于pat
PAT就是“IT业的托福”,各公司划下分数线,任何学生,只要考过了线就一定可以免笔试直接进入这些公司的面试!(求职大公司很有用)
考试成绩当时就出,证书等半小时就可取。事实上考试中随时可见所有人的成绩和排名,一结束即公开,全世界人民随时可查看。三天内数据包开始分发到企业,估计9月20日前所有企业能准备好抢人大战。
PAT乙级需要熟练的基本编程能力,学过一门编程语言(PAT支持20种语言,总有一款适合你),加上会排序,就掌握了满分需要的知识点。
PAT甲级需要英文阅读能力因为题目是英文的,然后还要数据结构的知识。
PAT顶级就厉害了,玩ACM-ICPC竞赛的牛人们约架就来玩这个级别。
比如PAT(https://www.patest.cn/introduction)考察的就是小编程,作为入职IT行业的第一道门槛。
PAT(B)考察基础编程能力:给你一个比较简单的实际问题,你写个程序按照规定的输入输出格式能正确解决掉。这说明你会用计算机思维方式去想问题,并且有一定的动手能力去解决。打个比方就是你学了泥瓦匠入门,会砌猪圈啦。程序写得好就是墙比较结实,猪拱不倒。不要小看这种本事,事实上大批计算机专业毕业的学生是不会砌猪圈的。
PAT(A)考察基础数据结构和基本算法:你开始考虑略复杂一点的问题。这些问题可能有不同的解决方案,你需要能判断不同方案的好坏,开始考虑效率和成本。你要会从一个交通需求中识别出要用哪种轮子。这说明你的泥瓦匠功力高了一级,可以砌个砖瓦房,甚至本事大的可以盖两层小楼了。程序写得好就是盖个双层楼居然有人敢往里住…… 也不要小看这种本事,估计有一多半的985高校计算机专业毕业的学生是盖不起能住人的楼的。
PAT(T)是给geek们约架玩耍用的,那些高级算法可能在实际工作中不常用到,而且即使要用轮子也有人造好了。但是因为那些算法很难,能将这么难的东西掌握得驾轻就熟,是一件很体现智商的事情。所以顶级公司喜欢PAT(T)考生,是因为喜欢他们的智商,不一定是因为真的需要哪些知识。他们既然可以把这么难的东西掌握得这么好,工作中随便遇到什么难题,多半对于他们而言也是很容易解决的。至于前面很多人的回答,其实是在说工程能力,那是大编程。继续拿盖房子打比方,就是人家做好了整体卧室、整体厨房…… 你会用蓝翔挖掘机……不对,是吊车,把几个模块组装一下拼成一座房子。小团队拼个别墅,大团队拼个摩天大楼 —— 这里面的问题就更复杂,你除了要考虑技术层面,还要考虑人际关系、资源调配、法律法规等等…… 哦如果你不是任何一个层次的大小老板的话,那会开吊车就可以了 ^_^
成绩够好的话很快就能享受数十家企业一周内打爆你手机的乐趣了…… 当然如果不是,那……跟我没关系啦……#_#
学完了C就去PAT上把乙级的题库刷完。自己掐时间:15分的题目15分钟内做完;20分的题目30分钟内做完,25分的题目45分钟内做完,就可以满分啦!
乙级没有什么算法——除了排序…… 关键是要习惯用计算机的方式去思考,并且有能力把想到的解决步骤写出来、写准确。要满分还要加强熟练度。
PAT就是为了帮大家找工作才创立的,目的是提供一个检验求职者编程与算法基本功的公平的平台。如何利用好这个平台让自己脱颖而出被大企业看见,就看你自己的真本事了。口碑可以自己去网上搜搜,我说好不算,考生说好才算~
当然可以反复提交,而且提交错误不扣分的。
考试的环境和流程基本上跟练习是一样的,区别只是,考试的时候是通过监考客户端访问网站的,其他都一样。
2020年以前不一定。考PAT的好处是机会不止一次,心理压力小,容易考出正常水平。考研复试上机考试只有一次机会,砸了就完了,相当多考生压力山大,临场失常也是比较常见的。
从“青铜”开始一路到“钻石”,算是编程入门。
接下去“乙级”是“大师”段位,
“甲级”是“王者”段位,
“顶级”是“大圣”段位。
怎样去学习
就PAT甲级覆盖的知识而言,一门语言+数据结构就足够了。多上课不如多练手有用,你学了C++,好好熟悉一下STL,可以让你编程速度大大提高。
距离PAT甲级满分有点远的……教材不重要,大多数教材基本内容都有了,重要的是练习,每天去PAT上不看书做2题,坚持一个月然后自己测试一下?
首先有十分钟拿下乙级15分题的本事。
然后要能在半小时内完成乙级20分题1道。
接下来训练自己45分钟完成乙级25分题。
这时你有了2.5小时满乙级的本事!
下面改做甲级英文题。
要有用十分钟读完4题的本事。
20分钟写完20分题并至少过样例。
1小时内写完2道25分题并至少过样例。
1小时写完最难题并至少过样例。
此时你应该有70分左右了,最后半小时拚命过90吧!
最后补充一句:其实乙级60分就有很多企业要了,乙级90分都有接到BAT级企业电话的!所以不是非要甲级才有机会哈~
刷LeetCode,刷各大OJ,参与一些比赛,拿一些证书。享受编程带来的乐趣。
为什么PAT考试不能像ACM和CCF CSP一样可以带纸质材料进考场?
相似的。但天梯赛难度从5分起,全中文。PAT难度从15分起,只有乙级是中文。分数一样的题目难度基本相当,但天梯赛顶级30分会有等于PAT顶级35分的难题。
去官网把往届真题都做一遍。
甲级70分需要英文阅读过关,且数据结构全学完。
跟级别没啥关系,多读多看慢慢提高吧…… 尝试买本英文的数据结构教材看看?Mark Allen Weiss
9月11的甲级PAT刚考了满分……非研究生非211985非理工科专业,文科生。主要是把基础算法弄会,然后PAT甲级的题刷至少两遍以上(是的,一遍还不够),记得掐时间模拟考试环境和IDE,一年绝对够了,我就准备了3个月。然而满分里也是有阶级之分的,越快满分的越好,在下不才基本是在靠后满分的,所以好公司也去不了啦。加油吧!
以题主的进度和努力程度大四的时候80+不算难,刷题的时候注意一下边界数据,90+也没什么问题,满分可能就需要细心一点了
当你的知识储备达标后,跟满分的距离就是一个熟练度了
乙级60分:编程基本功有了,搬砖的活儿可以干了。
甲级70分:浙大计算机学生平均线,数据结构和算法的基本功可以了。
顶级80分:谷歌欢迎你进入第一轮面试。
到官网报名,用支付宝或微信缴费,然后打印准考证。
考试当天至少提前十分钟到考场,门口看清楚自己的座位号。
监考放行后带一枝笔进入考场,在自己的座位上坐好,准考证和身份证放在桌面。注意看一眼屏幕上显示的名字是不是自己的名字。
监考宣布开始就可以考试了。环境跟练习一样,都是在拼题啊上进行的。可以本地调试好再提交,提交不限次数。
结束后在场外等大约二十分钟左右,监考老师应开始打印证书并颁发。取走自己的证书(如果不是零分)就好了。
考场提供草稿纸,不许自己带
“仅仅学校公开课和课下自己看了点c语言的书”不能达到乙级的及格线,距离甲级有点远……
如果目标是甲级,首先学完中国大学MOOC上翁恺老师的C语言,然后学完本姥姥和何头开的《数据结构》,还要充分强的英语阅读能力,至少不会读错英文题目。然后可以准备考甲级了!加油!
拼题A上的甲级题目集,包括了早期的部分浙大计算机保研上机题,那个是比甲级题目难一个级别的。甲级真题没有超纲的。
浙大考研相关
浙大计算机考研pat高分+初试高分但没有项目经验会通过复试吗?
通过的概率还是很大的。考研成绩的计算公式决定了初试成绩占最大比重,初试高分是很难被翻盘的,除非机试0分一票否决。面试如果没有任何项目经验,给面试官一个“除了刷题啥都不会”的糟糕印象,那么得分有可能到低分段,一般在70分上下。面试最高分也不过90分出头。所以你可以自己计算一下,面试20~25分的分差,会对你的排名造成多少影响。
报告的根本目的是让听报告的人在短时间内明白你做了什么,有什么意义。对你而言,除了宣告你做了件很牛的事情以外,最好台下有牛人有兴趣找你合作。
记住目的,然后slides做成什么形式都可以,能达到目的就行。
进入浙大计算机读研有3关要过:统考过线,复试上机,复试面试。
其中前面2项是没有回旋余地的硬指标。面试因为我们的老师都比较和气(浙大计算机的文化是“和为贵变则通”),所以除非你底子弱得过分或者做了什么把老师气疯了或者大家觉得你精神方面不正常……否则大家分数都不会拉开太大距离的。
最后就是认分不认人,不管什么学校什么出身,大家一律按总评成绩排队,所以还是相对比较公平的。上线的学生在某个截止日期前必须自己找到一位导师愿意接收你,签了接收函以后就正式被录取了。
所以你要想达到目的,首先好好准备统考,考试过线是第一步。
另外一年内PAT甲级成绩都可以直接替代复试上机成绩。你可以先考个PAT甲级,也可以就参加传统的上机考试。两者难度一样,区别只是PAT有三次机会,考试的时候压力小些,而且说不定考好了直接得到一份高薪工作,就不用读研了呵呵……
-------- 我是华丽的分割线--------
对于大二的小朋友,好好学扎实基础课,包括:至少一门编程语言、数据结构与算法、计算机组成、操作系统、计算机网络、数据库 —— 这个是最小集合。大三下开始琢磨自己做个课外小项目,努力寻找自己的兴趣所在。
话说回来,考研不是你读书的终极目标。结束学生生涯后想成为什么样的人才是你要好好考虑的问题。
初试分数占大头,所以初试很高就很稳 —— 前提是机试不要翻车,面试不跟老师打起来…… 机试成绩高,对结果的影响会比较大,当然是好的影响。推荐用PAT成绩是因为,机试只有一次机会,所以大多数人都非常紧张,一卡住就考崩了,翻车的概率比较大。而PAT有三次机会,考生一般心态比较放松,成绩会比较正常。实在不行还有一次机试兜底嘛,所以不怕的,这样比较容易出好成绩。
别家不知道,在浙大计算机面试的话,非技术类实习经验没用的。
PAT考高分 + 企业实习经验,复试的时候有用的。
浙大计算机和软院不歧视任何考验的学生~ 但是项目经验一定要有的 —— 有过科研或工程经验,即使上机考差一点,面试也能弥补一些。
但经验一点没有的话,除非上机(PAT)考90分以上,否则面试分肯定是很受影响的。
项目可以通过跟本校老师做做科研辅助工作、假期找个公司实习、自己想个有趣的小产品做做等等方法来攒经验。
严格地说:考试成绩差不多在同一水平线的考生,有项目经验的在面试时会得到略高的分数,就有了优势。
面试的时候你不主动提一般没有面试官对你的本科成绩感兴趣……
本科绩点没用的,基本不看(反正我参加过的所有面试都没人问本科绩点)。PAT甲级90分非常有用。但是如果这一组都是90分上下的,那就比科研经历了……
比如浙大研究生导师(比如我)会让自己的学生第一年凑合把课上完,及格就行了,重要的是第二年开始进入课题研究,读paper,动手把东西做出来。如果你想读研就是想上课,那可能要大大失望了……
要得高分还是得想到最好的算法,算法错了分数差不少的。
关于工作
比如超过PAT顶级水平的算法能力,比如解决实际问题的数据库调优,比如对操作系统内核的了解,比如做过几个能拿得出手的项目在github上,等等……
增加有高技术含量的项目或实习经验。PAT顶级满分。当然,甲级满分得够快,进入前15名也有机会。
“PAT考试中的比较难的题”是不能作为“项目”的…… 项目跟作业的区别,应该是项目做完了出个小产品,是可以用的……
为什么非要参加竞赛呢?PAT顶级能考80分Google和微软就来找你啦~!难度跟ACM icpc的区域赛差不多的~
如果关键词是“前沿技术开发”,那么选计算机科学与技术。
如果对搞大型工程更有兴趣,选软件工程。
用建筑做比喻,前者学怎么发明新建筑材料,后者学怎么组织施工把房子盖起来,两个重点不一样,虽然基础是差不多的,都得知道现在有哪些材料适合解决什么问题。
学好所有基础课先。然后有几件事情可以尝试:
1. 参加ACM-ICPC,成绩突出,就业肯定好。
2. ICPC玩不成大神,退而玩天梯赛,成绩突出,也可以一提。
3. 天梯赛也不突出,至少赚到PAT代金券,大三实习前考PAT,不论哪个级别,争取上90分,就业稳稳的。
另一条神人走的路:做个有趣的、充分复杂的软件,把代码贡献到GitHub,养成写技术博客的好习惯,就业不会差的。
收入可观的岗位比较欢迎主动学习的人 离散数学 计算理论
就算是同一个职位名称,不同公司的要求也差别很大的。不然你问问谷歌的开发岗有什么要求?结果就是你得把大学本科4年的专业课全学好…… 但是有的开发岗只要会写程序就行了(PAT不是零分就有人要了)。所以你要培训谁家的岗位呀?
初学者不具备做项目的能力…… 先学到能自己写个俄罗斯方块游戏,再谈做项目的事情?
PAT甲级能考满分的人,完全不必担心这种问题。考不到是该有危机感的。北大的老师说全中国会写程序的人不过区区两千人,哪里够上万家企业分?当然这个“会写程序”要求有点高,大概是各种竞赛能拿奖的水平。。。这两千人是不必担心危机的。
安全感是你的能力给你的,努力让自己成为少数人就对了。先给自己定个能实现的小目标,比如PAT甲级先考个满分?
事实上,能力要求这条线面前,什么学校出身、专业出身、本科成绩……都不重要。文科生背景不会让导师降低要求,你得跟科班生站在一条线上比。能不能比过,你肯定比我知道。
没那么多企业搞大数据的(没那么多企业有大数据),而且大数据的核心竞争力是算法不是Python。。。
其他
如何评价2016 ICPC北京赛区网络赛可能会和PAT,CCF时间冲突?
找工作不发愁的人(去名企有内推渠道的)不用来考PAT,应该去玩ICPC~
因为一门课程的要求大概可以分几个层次:了解、理解、掌握、运用。
了解:你知道这个专业名词是什么意思吗?听说过那个吗?
理解:你真的懂这个东西为什么是这样的吗?
掌握:从这个知识点出发,你会举一反三地理解推广出去的内容吗?
运用:你会用这个知识去解决问题吗?
你说的编程题考察的是最高级的运用能力,能有固然很好,但学校考试也应该让了解、理解、掌握了知识的学生有所区分,是不是呀?
首先,养成模块化编程的好习惯,切忌把所有代码写在一个main函数里。这样做的好处是,发现结果不对,可以一个函数一个函数检查,打印出每个函数接收到的参数值和返回的结果值,定位错误比较快。
其次,养成边界测试的好习惯。就是自己设计测试数据,务必达到输入和输出数据的最大和最小值。大部分错误都发生在边界上。
C语言编程要记得对每个变量初始化。但凡用到指针或数组下标,务必加合法性检查。
更高一点的要求:变量名不要乱起,随便来一堆abcd或者uvxyz的代码,你找别人帮忙看,人家很难看懂你在干啥,你自己过了半年,也看不懂。。。写适当的注释,拯救半年后的自己。
再高一点的要求:尽可能避免if-else,每多一对,你的程序就难测一分。
C语言作为计算机专业学生第一门语言的理由是:比C++/Java/Python都更接近计算机底层,有助于养成更像计算机的思维方式,对以后学习计算机组成、操作系统这种重头专业课都会有好处。
“堆栈”本来就是一个中文词(自己去查《辞海》)。你自己可以说它的简称“栈”,但是不能说人家讲“堆栈”是错的。














