计算机专业参考指南
2024.04.02 阅读量次计算机知识结构
计算机知识结构组成大致分为学科基础知识和应用编程技能。 学科基础知识包括:数据结构、计算机网络、操作系统、数学、计算机组成原理等等; 应用编程包括:编程语言、数据库、设计模式等等。
编程技能理解为招式,学科基础可以理解为内功,能极大提高编程技能。 大部分自学或者是培训班出来的人,都是围绕着编程技能开始学习的,没有结合底层学科知识进行学习,导致未来发展和提升有限。这两部分内容就是普遍提到的科班生与非科班生的差距。
如果想从计算机专业找一份好工作来说,从专业知识储备上来说,需要在掌握一套编程技能的前提下,学习数据结构,计算机组成,计算机底层的一些知识。
从学习顺序来说,因为计算机专业是一门实践的学科,初学者可以从掌握一门编程语言开始,然后再跟着学习一些计算机底层的一些基础知识。
计算机方向
根据计算机的知识结构,可以讲计算机大致分两个方向:偏向底层学科知识的研发方向和偏向编程技能的开发方向。 研发方向包括:人工智能、算法、数据、系统研发等;开发方向包括:后端开发、前端开发、嵌入式开发、游戏开发、移动开发等。 除了上述两种计算机专业还可以作为一个辅助的工具来辅助其他学科,这也是一个方向。
研发方向
研发就是学习现有技术,研究新技术的突破和解决方案,重点在于研究科研。比如研发一种编程语言,编译器等。 计算机专业目前薪资最高的方向。它的核心是数学和计算机基础知识,编程技能和开发经验都可以稍微弱化,这个专业更适合数学强,对计算机底层有兴趣的,打算读研的人。 这个方向比较吃学历,如果选择就要做好读研甚至读博的准备。研发方向能避开中低端岗位的竞争,学历已经筛选掉很多人了,在中国还是比较缺乏研发方向的人才,研发肯定是国家未来几年的重重之重,所以就业和钱肯定是少不了。 但是坏处就是研发方向的成本巨大,收益来的很慢,所以选择的时候想清楚自己是不是真正的喜欢。除了外在的学历,论文职称,研发方向最终落地的是专利和版权。
开发方向
一般说的程序员指的就是从事这个方向的技术人员。简单理解就是学习现有的技术,运用已有的技术实现需求和解决问题,这个方向对比研发方向非常强调实践能力和解决问题的能力。 重点在于业务和实践的结合,强调解决问题的实践能力。用的App,小程序,浏览器中的网站都属于这个方向。
这个岗位的要求能掌握一门语言和相关技术体系,有拿得出手的项目,其次是学校或者平台211/985/大厂和一些计算机基础知识的掌握情况,最后是竞赛实习加分项。应届生薪资从5-6k到三四十万不等。 这个岗位的人员可能来自各个岗位鱼龙混杂,包容性比较强,门槛低,但是竞争压力大。学历从专科到本硕985都有,中小型公司更要求编程技能的熟练,看重直接上手做事,对底层要求比较低;而大公司以及一些大厂更加看重计算机底层的知识。 在校生可根据自己想去或者能去的公司,应注意学习的侧重点。如果学历没有优势还可以通过考研或者参加竞赛作为跳板都是可以的。
开发方向真正能决定薪资的,是能去一家什么体量的公司,而不是编程语言,所以不需要过多的在意编程语言还是前后端之分。找一个主体的语言并结合自己的兴趣选择即可。 比如说只学会Python是不能找到工作的,但是学会Java是能找到工作的。后续学习一门主体+几门辅助开发语言即可。(主体开发语言:Java、C++等;辅助开发语言:Python,R)
编程语言的核心区别在于特性的设计及领域的不同和学习成本不同。比如,Java跨平台特性和虚拟机机制和成熟的框架,能够快速的开发程序,对比C++就更加适合普遍应用开发,学习成本相对较小,所以跟适合入门;而C++因为非常接近计算机底层,它的运算效率更高,所以更加适合游戏开发,服务器开发等场景,学习成本相对较高。 具体的开发方向是在编程语言基础上衍生出来针对某个领域的解决方案。对于初学者来说,不用着急确定方向,以打好基础为主。
最近这两年,这个行业里面的竞争压力愈发增大,很多时候我们不要跟别人去比较,不是学生只有拿第一才叫争气,不是所有创业者公司都要上市才叫成功,一定要放平心态。 作为普通人能够通过我们自己的努力给身边人更好的生活条件,我们已经是很了不起的英雄了。很多人问数学不好能学开发吗?英语不好能学计算机吗?这些东西谁又是天生就会的呢? 开发的过程本来就是逢山开路遇水搭桥的过程,就是不断学习提升的过程。学历不高,可以先通过学习一门语言,再慢慢专升本甚至读研,只要保持提升总能一天比一天值钱。
开发方向最终的落地成长方向是工作经验,项目经验,设计能力,统筹协调能力。开发方向的成长是一个“T”型的结构,纵要深,要懂得计算机底层知识和优化,横要广,能做到顶层设计和团队统筹。 开发方向的核心是实现需求和解决问题的能力,能组织多少人实现多大需求就是最终的成长方向。 初学者在学习编程的时候,可以尝试用计算机去解决生活中的问题,尝试理解需求,理解业务,理解团队,而不仅仅是盯着技术不放,这会限制你的成长。 我们要做的就是把各个领域的知识交给计算机,从而解决我们的问题。从大方向来说不存在什么技术壁垒,只存在如何把技术和业务更好的结合起来。
交叉方向
对比前两个方向来说,这个方向比较小众。目前只有大公司和少数高校有相关投入,很多交叉学科还处于探索阶段,没有形成成熟的商业模式和上下游产业链。 从个人角度来说,不算是好的选择。
建议
根据个人自身学历、能力和兴趣以及一些其他实际客观因素来选择适合的方向,没有最好的专业,适合自己的就是最好的。比如,学历较高,学习能力比较强尤其数学比较好,又对计算机方向有兴趣而且家里比较富裕不是很着急赚钱,能接受收益慢的情况,就可以选择研发方向,从而提前做好准备。 如果不是很适合研发方向,可以考虑开发方向,交叉方向是不推荐的。研发方向比较重视学历和实践能力,开发方向更看重的是实践上手解决问题的能力,如果学校差,平台差,或者是想继续深造可以考虑考个研。无论哪个方向都要持续的进行学习,要提早做好这方面打算。
网络上有很多信息鱼龙混杂,有很多极端的论调,说很多985的找不到工作。 在我看来各行有各行的难,生化环材的专业肯定也有一肚子苦水要吐,计算机专业只要坐住了去学,不管二本还是双非,找个过的去的工作总归是没问题的。