浅谈大学计算机专业该如何选择方向

在这个互联网的大背景下,计算机行业真的是一个很幸运的行业,中国的计算机行业搭上了世界潮流的顺风车。而计算机专业也成了热门专业,为何清华称计算机系为贵系,不是没有道理的。
许多刚入大学的计算机系的小伙伴可能对于计算机专业没有特别多的了解,或许只是知道计算机专业毕业后能拿到高薪水,许多人会看到这么一张图
浅谈大学计算机专业该如何选择方向
浅谈大学计算机专业该如何选择方向
其实现实真的很残酷,想要到达如图所说的的平均工资根本没有这么容易。
浅谈大学计算机专业该如何选择方向
如果你是一个普通的人,上的是一所普通的大学,读的是一个普通的计算机专业,如果你在大学没有做好自己的职业规划,计算机专业出来的你或许真的会找不到工作。

下面我简单介绍下我理解的计算机系有哪几个大的方向

互联网相关行业

这里就是其实就是指各类程序员,包括开发、测试、运维等。下面我简单说说开发。

web前端开发

web前端估计很多的妹子会考虑,在我所在的公司确实前端会有许多的妹子,反观后端开发。。。。。。
HTML+CSS 直接学习HTML5+CSS3,它们是HTML+CSS的新标准,虽然有些浏览器(例如ie,前端开发者永远不可避免的浏览器)不兼容新的标准,但是随着时间的推移,新的标准必然会取代旧的标准,尤其是HTML的canvas标签要深入的学习,没有一个网页出来效果是单纯的文字。

JavsScript 前端三剑客除了HTML+CSS,当然还有JavaScript,初学者迷惑JavaScript与Java的关系,这里告诉你,它们的关系就和雷锋与雷峰塔,张三与张三丰的关系一样!!!一点关系没有。当然JavaScript也有新的标准那就是ECMAScript6(ES6),JavaScript本身并不是严格的面型对象编程的语言,但是新的标准能够更适应面型对象编程,能够提高开发者的工作效率,当然也是有部分浏览器不能实现完全支持ES6标准。当然学JS的同时要顺便把Jquery学了,它们大多数是相通的。
前端水很深,不是简单几段文字能够描述清楚的,像vue、react框架的使用,这些都需要在基础学会了之后再去学习,如果真心想学前端,不如认真的把上面的内容百度一翻,虽然仅仅是了解,但是你已经做到先人一步了。

web后端开发

后端开发有很多种形式,Java、Python、Go、PHP都能做。而笔者也是个Java后端程序员。
浅谈大学计算机专业该如何选择方向
Java全家桶 这里以Java为例,毕竟现在大学教育都主要以Java为主要课程,授课流程基本都是从Java SE 到Java Web,再到Java EE、Java ME。小白估计又懵了,这里说的Java SE就是我们平时说的Java,它的英文是Standard Edition,这也是后面所有java技术的基础,同样,如果你要做Java后台开发,Java SE的基础一定要打牢。而Java Web是Web后端的基础,Java Web工程师现在也是就业的热门岗位,是后端开发的重要内容。Jsp+Servlet+Javabean是Java Web的基本组成,这也是MVC的一种基本框架,它能帮助你做出一个简单的系统项目,但是不得不说的是,没有HTML+CSS的前端技术,做出来的东西是在是太丑了。致力于做Web后端的同学,前端的知识也要有所了解才行。

操作系统与计算机网络 这两个课程是计算机专业的基础课程,java开发的一个主要特点就是多线程,而对于操作系统的整体认知都要来源于这门课程,你需要知道什么是并发运行,IO设备到底是如何管理的,计算机到底是如何运行的。Java的工程大多规模较大,需要应对高并发的一些情况,一个后端开发者应熟练的使用stream APi控制对象集合,掌握RxJava这种具有函数编程风格的库或者框架。在Java网络编程领域,哈诺德 (Elliotte Rusty Harold) 的那本《Java网络编程》是非常经典的书籍,非常有必要去踏实的学习这一部分的内容。网络开发的经典框架是Netty,它是一种异步的、事件驱动的网络应用框架,能够快速开发高性能的网络服务器和客户端。JVM的底层机制在很多情况下都有非常重要的作用,这时候你一定会接触到Vert.x,这里不需要过深的研究,只要掌握其核心组件就可以了。

后端框架 后端框架的基础就是MVC,也就是之前说的Java Web的三大组成,但现在需要掌握的是Spring全家桶,Java框架的发展虽然赶不上前端的速度,但也是不断变化的,自然是要不断学习。

你以为学这些就行了吗,如果你想找到一份体面的工作,这些知识远远不够!!!
如果说前端要的是广度,那么后端开发要的就是深度。除了基础的知识,你还需要学会数据库的相关知识,一些中间件的使用、原理。并且需要一定的开发经验,这里笔者再列几个自我学习的途径:

  1. 大学有机会参加下ACM,这算是对你的编程一个启蒙,并且ACM的奖项对于以后找工作也有许多帮助
  2. 对参加竞赛,电商,服务外包,互联网+如果以后想做开发,那么就在这些项目里对积累开发经验
  3. 如果以上都没有参加,自学也是可以的,推荐学习地:b站,github(最大的同性交友网站),各类博客
  4. 自己租个服务器做个项目部署上去,有钱再买个域名,写在简历里,让面试官看看

大数据开发

大数据开发,笔者也有段时间接触过不少,当时的岗位也是叫大数据开发工程师
Scala 现在的大数据人才大多还是以Java语言为主,之所以写Scala是因为在后端开发部分写了Java的相关内容,这里想讨论点别的。这门语言因为有Spark的存在,被使用的概率多了不少。它是一门非常适合函数式编程的语言,而且这种语言兼容Java,能够运行在JVM上,也可以调用Java的类库,是大数据方向的学生不可不学的一门语言。

Hadoop Hadoop是Apache公司下的一个大数据通用处理平台,它是大数据方向的必修课,学习Hadoop不仅仅是学会搭建集群,还要掌握使用Hive(Hadoop架构之上的数据仓库)对数据进行精炼、查询、分析,通过HDFS(Hadoop分布式文件系统)来处理大规模的数据集等等。

MongoDB 大数据方向的学生不能局限于结构化的数据库,像MongoDB这样的非结构化数据库才是将来工作使用的主流数据库。

除了以上这些,还有许多有关互联的方向:数字媒体(音视频剪辑),网络安全,测试,还有最近特别火的人工智能。这些笔者没有太多的接触,就不一一介绍了。

非互联网行业

许多小伙伴对于代码编程可能确实不喜欢,那么考研,考编,考教资将会是你的选择。对于计算机专业是应该考研还是入海工作,许多人都有自己的见解,在我看来如果你现有的知识储备能够让你找到一份好的工作,或者对于目前的处境比较满意的话,就不需要走考研这条路。相反,如果你觉得你现有的知识无法支撑你找到一份好的工作,那么你就去考研深造。
以上观点,皆为个人观点,不喜勿喷。。。
谨以此文献给仍然迷失在大学生活中的计算机专业学子!!!愿各位年入百万,前程似锦,我们人海相见