随着人工智能和大数据时代的到来,计算机专业被推到了风口浪尖上。那么什么是计算机专业呢?
计算机专业是指计算机硬件与软件相结合、面向系统、更偏向应用的宽口径专业。通过基础教学与专业训练,培养基础知识扎实、知识面宽、工程实践能力强,具有开拓创新意识,在计算机科学与技术领域从事科学研究、教育、开发和应用的高级人才。
如果您选择的专业是计算机专业,那么恭喜您,您所选择的计算机专业很有前景。未来一段时间,社会对计算机相关产业的人才需求一直呈上升趋势,这是一个朝阳行业。
但有的学生在就读计算机专业时,想着只要跟着学校的安排走,考几个证书拿到毕业证书就算完事了,这样子读完三年后,怎么可能成为一个有前途的人呢?证书和文凭从来都不是决定一个人命运的关键因素,真正决定一个人命运的,是这个人所掌握的知识和技术以及由此构建起来的知识体系。
我个人认为,目前无论是技校还是大学,对计算机知识的教学稍显落后,有些与社会需求脱节,为了让您有更强的竞争力,建议您在学好学校专业课程的同时,充分利用课余时间,构建自己完整的知识体系和技术栈。
每个学校所开设的专业课程都有所不同,这方面我就不再赘述。我重点谈一谈,我们应该构建怎样的知识体系和技术栈。
现在计算机相关产业所用到的技术非常庞杂,比如做网站、做手机App、搞数据分析等等,用到的技术各不相同。我这里就整理两条技术栈供您参考:
- HTML5+CSS+JS\PHP\Node.js\Vue.js等(Web\App方向)
现在开发手机APP和微信小程序是非常流行的工作,要想以后成为一个手机APP工程师,就必须掌握上面的一套知识体系。可以先从做网页或者网站入手。
HTML5+CSS+JS : 网页设计的基础语言 。如果把网站比作一个人,HTML5相当于人的骨骼,CSS相当于人的肉体,而JS相当于人体的动作。在这里提到一点,很多人会把H5和HTML5混为一谈,实际上HTML5 和 H5 根本不是一个层面的东西:HTML5是一种编辑语言,而H5既不是 HTML5、也不是微信网页。从某种意义上来说,它是这些东西的母级,H5所指的就是移动网页本身,它能够包含所有这些分支!
PHP : PHP是创建动态交互性站点的强有力服务器脚本语言。可以说PHP 是一门奇葩的语言:它既不快,语法又不漂亮。还没有遵守良好的软件开发实践。但很多人还是使用它开发了很多软件。 那么问题就很明显了,为什么今天还在使用 PHP ?
- 门槛低,简单易学
- 拥有强大的面向对象包管理,可以方便地引用优质且维护良好的库,具有很高的易用性。
- 开源,且拥有足够大的社区,具备动态语言的特性
Node.js :Node.js既不是一个框架,也不是一门语言,简单来说就是一个应用编程平台。那我们为什么要学习它呢?
原因之一是效率,在一个web应用中,你的主要响应时间成本通常是执行所有数据库查询所需的时间总和。使用node的话,你可以同时执行所有查询。这样的话就可以把响应时间减少成执行最慢查询所需的时间。
另外一个原因是JavaScript,你可以使用node在前端和后端之间共享代码。JavaScript也正在成为真正的通用语言。
最后一个原因是原始速度。V8一直在致力于推动这个星球上速度最快的动态语言解释器的发展。我想不出现在还有什么语言能像JavaScript那样被迅速的推进。除此之外,Node的I/O非常轻量级,使你可以尽可能充分地利用系统的I/O容量。
Vue.js : 一套构建用户界面的渐进式框架。什么是渐进式呢? vue的核心功能就是一个视图模板引擎,包含声明式渲染以及组件系统。在核心部件的基础上添加客户端路由、大规模状态管理来构建一个完整的框架,下图就是vue包含的所有部件。这些功能是相互独立的,可以在核心部件基础上选择任意你所需要的部件。这也就是‘渐进式’的概念。在学习Vue.js之前,必须熟练掌握HTML5、CSS、JS.
- GO语言、Python语言、Java语言等(桌面\App\Web方向)
这三个编程语言都可以用来开发桌面App,功能强大。而且对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
GO语言:是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。语法和C语言相近。Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发速度和易维护性,有人形容Go语言:Go = C + Python , 说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。
GO语言的特性:
- 自动垃圾回收:C/C++最头疼的就是指针问题,一不小心就野指针了或者又越界了。在Go语言里再也不用担心,也不用考虑delete或者free,系统自动会回收。
- 函数可返回多个值:这个很神奇,大多数语言只能返回一个值,Go语言可以返回多个值。这个功能使得开发者再不用绞尽脑汁的想到底怎么返回值的设计,也不用为了传值专门定义一个结构体。
- 并发编程:Go语言天然并发,只需要关键字“go”就可以让函数并发执行,使得并发编程变得更为简单,这也是Go语言最大的优势。
Python语言:Python 是一种跨平台的、开源的、免费的、解释型的高级编程语言。它具有丰富和强大的库,能够把用其他语言制作的各种模块很轻松的联结在一起。Python的应用领域很广泛,在Web编程、图形处理、黑客编程、大数据处理、网络爬虫和科学计算等领域都能找到Python的身影
Java语言:Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统。
- 提供了对内存的自动管理,程序员无需在程序中进行分配、释放内存,那些可怕的内存分配错误不会再打扰你了;
- 去除了C++语言容易出错的“指针”,用其它方法来进行弥补;
- 避免了赋值语句(如a=3)与逻辑运算语句(如a==3)的混淆;
- 取消了多重继承这一复杂的设施。
- java语言的语法和C语言以及C++语言很接近,使得大多数程序员很容易学习和使用java。
- 跨平台性:通过java语言编写的应用程序在不同的系统平台上都可以运行。
但仅仅掌握这两条技术栈是不够的,任何编程语言都离不开数据库(数据库:就是数据的仓库,它是长期存储在计算机内,有组织的、可共享的数据的集合),只掌握编程语言而不掌握数据库会使你在成为计算机大佬的道路上寸步难行,所以我们必须要将两者结合在一起学习:
- PostgreSQL\MySQL\SQLite等
PostgreSQL:PostgreSQL是一个功能强大的开源对象关系型数据库系统,他使用和扩展了SQL语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。PostgresSQL凭借其经过验证的架构,可靠性,数据完整性,强大的功能集,可扩展性以及软件背后的开源社区的奉献精神赢得了良好的声誉,以始终如一地提供高性能和创新的解决方案。
MySQL:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
ySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
SQLite:SQLite “只是”一个库,它不是传统意义上的服务器。因此,在某些场合下,它确实不合适。但是,在相当多的其他场合,它却是最合适的选择。SQLite 号称是部署和使用最广泛的数据库引擎。我认为这很有可能,因为 SQLite 没有版权的限制。无论何时,只要开发者想使用 SQL 在文件中存储结构化的数据,SQLite 应是首选方案。
只要按照我上面所描述的方法来学习,构建完整的知识体系和技术栈,那么你就会变成一个在计算机科学与技术领域从事科学研究、开发和应用的高级人才!
推荐阅读:苹果7p和苹果8