为什么突然想写这个话题呢?
最近有不少新关注的读者,在后台问:大学学 Java 和 C++ 哪个好找工作,学前端好还是后端好,该学 Vue 还是 React。。。
仿佛看到了自己当年的模样,所以觉得有必要单独写一篇文章,单纯以一个计算机应届毕业生的身份聊聊,我认为大学四年,计算机科班学生应该学些什么,哪些才是重点。
同样大学四年,为什么有些同学毕业就能成为大厂 Offer 收割机,各种 SP、SSP 拿到手软,有的同学明明在学校写了好多网站,项目经历满满,经历春秋招,却找到一份工作都很难。
不能说后者没认真学习,或许是用力的方向不对。
话不多说,直接进正题吧。
正文
人类的知识边界一直在不断的扩张,俗话说学无止境,这放在计算机领域也同样适用,计算机本身是一个人造科学,不属于自然科学。
每年,甚至每个月都不断有新的编程框架推出,学到头秃你也学不完,也没有必要去挨个学。
并且你会发现,很多一二线大厂内部用的东西基本都是自己搞一套的,比如服务发现、RPC、KV、DB、消息队列、日志、监控等等。
所以一般这些大厂招聘的时候基本不会因没学过某种框架而挂你,反正很多东西都是要进来重新学的。
他们会更加关注你的基础知识、解决问题的经验以及聪明度这种更加通用的能力上。
反而是一些小公司,可能会要求你必须会 Spring、Vue、Redis... 这些框架或者组件。
腾讯JD
阿里JD
某家外包JD
上面分别是腾讯、阿里、某外包公司的招聘 JD(job description),显然,腾讯阿里看中的是扎实的编程基本功和快速学习能力,这意味着有培养潜力。
而外包公司就要求你会 xx 数据库、Spring 之类。不去评价哪个好,但是如果你想去 BAT,那是不是至少对照着它们的 JD 来提高自己的能力,不失为一种捷径。
在这里,我粗浅的把计算机编程领域的知识分为三个部分:
基础知识
特定领域知识
框架和开发技能
基础知识是指不管从事任何方向的软件工程师都应该掌握的,比如数据结构、算法、操作系统。
特定领域知识就是你从事某个细分方向时需要掌握的知识,比如做游戏引擎的需要掌握图形学;做前端的需要掌握浏览器渲染原理、前端三大件;算法工程师需要更多的数学知识。
毕竟计算机各种门类挺多的,需要选个细分方向专研下去,什么都学只会什么都不精(大佬除外啦。
我也曾深刻体会过留学压力。回想刚踏上他国之时,操着不太熟练的外文,却要努力听懂着带口音的教授俚语发音,学习着晦涩难懂的CS,Math,Economic。独自漂泊海外,深夜赶due的苦楚却无人能助,多希望有个学长能点拨相助。
所以毕业后我成立了三洋公司,团队由最初的三人,经过9年发展,已经形成了4000人的导师团队规模。导师团队由FLAG工程师、在美高GPA硕博士、国内985已发SCI论文的硕博、大陆阿里腾讯等头部互联网工程师组成。
编程真的是一门需要靠兴趣和一点点天赋才能学好的技能。初学者难免对编程思路有困惑无从下手。我最初学习之时,发现读大牛写的代码都会受益颇多,这也是为什么即使在职的工程师,公司也推荐他们在github读开源系统的代码。我们的服务也是给大家提供一个读代码的平台,专业的导师为您的课业写了优质的代码,您一定要认真去看,最好能动手调试,这样体会更深。
如果您已经能基本完成课业了,也可以来这里让导师写出更优质的代码,针对自己的作品查缺补漏,一份代码一个思路,多一个思路就更优秀一些, 冲击更高的GPA
我希望团队提供的服务,能真真切切教会大家coding,提高GPA。