大家好,我是鱼皮,有个朋友们一直很关心的问题:学编程到底要不要考证?
今天就结合我的个人考证经历,聊聊我的看法。
本文大纲:
考证经历
大学期间,我总共考了 6 个和编程沾边儿的证,其中有 5 个证是我主动考的,1 个证是学校安排考的。
Java OCA 8
考的第一个和编程有关的证书是 OCA 8(Oracle Certified Associate),是 Oracle 公司推出的面向全球 IT 人员的权威认证。
OCA 考试分为 3 个级别:OCA 认证专员、OCP 认证专家、OCM 认证大师,还有很多技术分类,比如 Java、数据库、中间件等。
我相信很多同学此前根本没听说过这个认证,那我是怎么了解到的呢?
在大二的时候,我刚刚系统地复习一遍 Java 知识点,但担心掌握的还不够牢固,就想着看看有没有什么 Java 的证书,通过考试来检验一下自己的水平,查漏补缺。
于是就在网上各种搜,起初搜不到什么,然后我一想,Oracle 公司不是收购了 Java 么?那不妨去他们官网看看有什么证可以考,他们的官方认证应该也更专业权威。然后就搜到了 OCA Java 8 认证:
仔细看了看认证要求和考试内容,发现和自己的预期完全一致,于是决定报名。
但考证的报名费还是挺贵的,我当时的价格大概是 1200 元,基本远超国内大部分考证费了。而且必须用美元支付,所以我当时还特地办了一个 VISA 卡,当然大家也可以直接去某宝找代付。
既然交了报名费,肯定要好好准备,我就在寒假阅读了专门应对这个考试的复习资料,包括官方教程、其他同学整理的考点等等。因为考试题目是纯英文,所以看的大部分复习资料也是英文的。
大概复习了 20 天左右,感觉就像是重新学习了一遍 Java 基础知识,但学到了更多的细节。
现在网上也有专门面向这个考试出版的书籍,比如下面这个:
最后的考试是在国内的代理考点,考试的环境非常棒,就是把你关在一个独立的小房间里机试,总共有几十道题目,有一些概念题,也有一些代码阅读题目。如果认认真真复习过的话,其实通过并不难,但因为还是有些又坑又绕的题目,所以拿满分还是有难度的,我当时自信满满,但也只考了近 90 分吧(满分 100,及格 65)。
软件设计师
软件设计师是 软考 中级的一个分支,是由工信部颁发的计算机技术和软件技术资格证。
按说,我又不想进国企,考这个证干嘛呢?
我是在大三上学期报考的,因为大一和大二学了很多计算机基础知识,所以我想整体复习一下。正好看到了软件设计师的证书,到网上了解了一下,发现它考查的范围正好都是学校教过的课,那不就是不考白不考么!
于是交了 100 多元的报名费,去某宝花 1 元钱买了一整套软考复习视频和历年试卷,大概复习了 3 周,把视频课看完并且做了 10 套卷子吧,知识点包括:编程语言、数据结构和算法、密码学、软件项目管理、设计模式、数据库设计、操作系统、软件工程等。
最后去考试的时候,我发现其他考生基本都已经工作了,没看到像我一样的学生。不过这也合理,主动去考证书的人还是少,大家基本都是需要用的时候再去考。
考试分为上下两个半场,上半场选择题多,更注重基础知识点;下半场设计题多,更注重软件设计和分析能力。
给大家看一道下半场的题目,就是给你一个场景,让你用专业方法(比如 ER 图)去分析和设计数据库系统:
不准备的话,题目还是有一定难度的,尤其是下半场,有代码分析题和让你手写代码的题目。代码分析题一般是给你一段运用了某种算法的代码,让你人工指出错误(找 Bug)和填空,如果你不了解这个算法,基本就凉了。手写代码题一般是结合了某个设计模式,如果你正好没用过这个设计模式,或者写不出来,那基本也凉了。
最后我的分数也没有很高,但证书也是拿到了哈哈,还是挺有成就感的(请忽略我的照片):
PAT 乙级 & 甲级
PAT(Programming Ability Test)是近几年逐渐流行的计算机程序设计能力考试,分为四个等级:
一般来讲,基础级不要考,直接从乙级或者甲级考起,顶级也完全没有必要。
我是在大二暑假才听说了这个考试,看了下考试内容,有点像 ACM,主要是锻炼数据结构和算法能力。正好我当时找第一份实习的时候被算法虐的体无完肤,正在坚持刷算法题目,所以就想通过参加这个考试来激励自己学习算法,顺便检验一下水平。
我的算法能力一般,其实比较没自信,反正报名费也就几十块钱,那不妨先从乙级试试水。
报名之后,我准备了 2 个多月,除了坚持刷 LeetCode 之外,还特地去 PAT 的官网刷了他们提供的练习题,顺便把牛客的简单题目也刷了个遍,保持手感。
考点是在上海大学,考试内容简单粗暴,就像 OJ(Online Judge),总共 4 - 5 道题目吧,每道题目给你一个场景、示例输入和目标输出,让你设计算法、编写代码来解决问题,并根据通过用例数得分。
乙级的题目难度还是比较简单的,基本是一半以上的 LeetCode 简单题加上 1 道中等题,参与的同学算法水平一般也不高(能力强的都从甲级考起了)。我当时乙级得了 88 分,就排名前 5% 了:
考完乙级之后,我又去报考了甲级,甲级的题目难度和大厂面试的算法题难度相当,总共 4 道题,基本是 1 道简单题 + 3 道中等题。我当时只完全做对了 2 道题,剩下两道虽然有思路,但时间没有把握好,也是含泪收场吧。
虽然考试的结果并不理想,但起码又让我意识到了自己的不足,回学校继续卷。
网络工程师
这个证说来尴尬,不是我自己去考的,而是我们学校的网络工程专业有一门课叫 “企业 IT 实训”。
这个课的内容就是请外面的培训机构来给我们讲一些网络方面的知识,最后以成功考取证书来换取学分。
记得当时还得坐 1 - 2 个小时的地铁去他们公司上课,内容水就不说了,关键是最后的考试贼牛逼,先给我们讲一遍考点,然后立刻就开始考试,全部是原题,也不存在监考!甚至是当时那个准考证还打错了,叫什么 “网络工程师 证证 考试”,贼有意思。
通常,一个证的价值和难度是成正比的,所以这个网络工程师的证书就是意思意思,不是华为思科那种专业认证,没任何用。
值得一提的是,学校的这个课还让我们考了一个创业能力证书,也水的不行,那个创业沙盘系统还全是 Bug。
CET 6
最后,再提一下大学生基本都会考的 全国大学英语四六级考试 ,我是在大一下学期的时候跟着学校的第一梯队一起考过的(大一上考四级),成绩不高也不低。
说实话,这个证对计算机求职的作用不大,并不能对你的简历有加成。但如果今后要从事国际化或对英语有一定要求的工作,如果没过四六级,反而是减分项。再说,真正对英语要求高的工作,你一个小小的英语六级证书也没多大用。
不过无论如何,建议大家还是好好学英语、日常多背背单词。虽说英语不好也能学编程,但英语好可以帮助你更快地阅读代码和英文技术文档,不要依赖自动翻译工具,否则很有可能得到错误的内容!
我应该考证么?
扯完了自己的考证经历,回答下大家的问题:我应该考证么?
做事要有目的对吧,我在选择是否要考证前,会先思考 两个问题 :
- 考证能给我带来什么价值?
- 考证的性价比是否高?
考证的价值
回顾我自己考证的初衷,基本都不是因为这个证书含金量很高才去刻意地考,而是通过考证 激励自己学习、帮助自己复习、检验自己的学习成果 。考证通过了呢可以收获成就感,考证失败也不可怕,能发现自己的不足,查漏补缺。还能把证书写在简历上,填充一点内容,体现自主性。
但说实话,我考的这些证书难度都不大、认可度一般,所以对以后找工作的 直接帮助并不大 ,面试也基本没被问到过;但备考过程中,激励我自主学习和巩固了知识点,意义还是很大的。毕竟交了报名费,浪费了也不好对吧。
考证性价比
有同学说了,要多考证,肯定不会亏的,证书多一个在手里有什么坏处呢?
但别忘了,考证过程中,你要付出很多时间,这些时间拿来做别的事情,比如参加竞赛、做项目,会不会带来更大的价值呢?
我建议大家仔细考虑这两点,再决定是否考证。
哪些证书值得考?
我考的证书其实也不多,没办法给大家列举值得考的证书。
但总结下来,考证书首选要 结合自己的职业目标 ,考取对未来发展有帮助的,而不是别人考我也考、或者为了考证而考证。还有就是一定要选正规的、有一定规模的证书和考点,不要考了一些黑机构自己虚构的假证,谨防被骗。
不过,打算从事开发工作的同学可以试试我考过的那些证书,感觉对我的帮助还是很大的。
还有很多大学生比较关心的计算机二级等级考试,对非科班(计算机相关专业)的同学来说,是有用处的,能学到一些计算机技能,有些企业招聘也可能会有这个要求,还能给上海落户加分。但如果你本来就是科班的话,毕业就相当于达到计算机 4 级的水平了,完全没必要考这个证。
以上就是本期分享,最后再送大家一些 帮助我拿到大厂 offer 的学习资料:
我是如何从零开始通过自学,拿到腾讯、字节等大厂 offer 的,可以看这篇文章,不再迷茫!
我是鱼皮,点赞 还是要求一下的,祝大家都能心想事成、发大财、行大运。