怎样才算一个计算机知识体系完整的毕业生?

为什么突然想写这个话题呢?

最近有不少新关注的读者,在后台问:大学学 Java 和 C++ 哪个好找工作,学前端好还是后端好,该学 Vue 还是 React。。。

仿佛看到了自己当年的模样,所以觉得有必要单独写一篇文章,单纯以一个计算机应届毕业生的身份聊聊,我认为大学四年,计算机科班学生应该学些什么,哪些才是重点。

同样大学四年,为什么有些同学毕业就能成为大厂 Offer 收割机,各种 SP、SSP 拿到手软,有的同学明明在学校写了好多网站,项目经历满满,经历春秋招,却找到一份工作都很难。

不能说后者没认真学习,或许是用力的方向不对。

话不多说,直接进正题吧。

人类的知识边界一直在不断的扩张,俗话说学无止境,这放在计算机领域也同样适用,计算机本身是一个人造科学,不属于自然科学。

每年,甚至每个月都不断有新的编程框架推出,学到头秃你也学不完,也没有必要去挨个学。

并且你会发现,很多一二线大厂内部用的东西基本都是自己搞一套的,比如服务发现、RPC、KV、DB、消息队列、日志、监控等等。

所以一般这些大厂招聘的时候基本不会因没学过某种框架而挂你,反正很多东西都是要进来重新学的。他们会更加关注你的基础知识、解决问题的经验以及聪明度这种更加通用的能力上。反而是一些小公司,可能会要求你必须会 Spring、Vue、Redis… 这些框架或者组件。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面分别是腾讯、阿里、某外包公司的招聘 JD(job description),显然,腾讯阿里看中的是扎实的编程基本功和快速学习能力,这意味着有培养潜力。

而外包公司就要求你会 xx 数据库、Spring 之类。不去评价哪个好,但是如果你想去 BAT,那是不是至少对照着它们的 JD 来提高自己的能力,不失为一种捷径。

在这里,我粗浅的把计算机编程领域的知识分为三个部分:

基础知识
特定领域知识
框架和开发技能
基础知识是指不管从事任何方向的软件工程师都应该掌握的,比如数据结构、算法、操作系统。

特定领域知识就是你从事某个细分方向时需要掌握的知识,比如做游戏引擎的需要掌握图形学;做前端的需要掌握浏览器渲染原理、前端三大件;算法工程师需要更多的数学知识。

毕竟计算机各种门类挺多的,需要选个细分方向专研下去,什么都学只会什么都不精(大佬除外啦。

想说的太多说点总结吧。千万不要大一、大二一上来就扎进 Java Web、Python 爬虫这种东西,这些可以学,但不是重点。

我也曾深刻体会过留学压力。回想刚踏上他国之时,操着不太熟练的外文,却要努力听懂着带口音的教授俚语发音,学习着晦涩难懂的CS,Math,Economic。独自漂泊海外,深夜赶due的苦楚却无人能助,多希望有个学长能点拨相助。
所以毕业后我成立了三洋公司,三洋工作室团队由最初的三人,经过9年发展,已经形成了4000人的导师团队规模。导师团队由FLAG工程师、在美高GPA硕博士、国内985已发SCI论文的硕博、大陆阿里腾讯等头部互联网工程师组成。

编程真的是一门需要靠兴趣和一点点天赋才能学好的技能。初学者难免对编程思路有困惑无从下手。我最初学习之时,发现读大牛写的代码都会受益颇多,这也是为什么即使在职的工程师,公司也推荐他们在github读开源系统的代码。我们的服务也是给大家提供一个读代码的平台,专业的导师为您的课业写了优质的代码,您一定要认真去看,最好能动手调试,这样体会更深。

如果您已经能基本完成课业了,也可以来这里让导师写出更优质的代码,针对自己的作品查缺补漏,一份代码一个思路,多一个思路就更优秀一些, 冲击更高的GPA ➕Danny_9922 我希望团队提供的服务,能真真切切教会大家coding,提高GPA。