程序猿、码农、搬砖……这些新潮词随着计算机科学这一革命性发明的蓬勃发展流行起来。程序猿甚至被笑称为“钱多话少死得早”的职业。其中死得早是对其工作辛勤度的夸张说法。反观身边的码农,确实“搬砖”到凌晨的数不胜数,尤其是互联网科技公司,传言过着九九六的生活,也就是朝九晚九、一周六天,全部在工作。
因为过度繁忙,程序员给人留下的典型印象就是宅、邋遢,因为长期熬夜写代码一坐就是大半天、导致视力下降、生活不规律、甚至只能吃外卖度日。但与此同时,IT男又是最受女性欢迎的十大职业之一,在某婚恋网站调查中近乎赢得50%的首选票。可能的原因之一是因为他们普遍收入高,而且前途无量。
新公布的世界五百强公司里,互联网公司雄踞前五。一些我们耳熟能详的国际公司,比如谷歌、微软、、IBM、脸书,还有文明远洋的中国公司百度、腾讯、阿里巴巴、网易等,都是当今最令年轻人向往的工作场所。这也展示了计算机产业的巨大潜力和极高含金量。
与此同时,人工智能、大数据、虚拟现实、物联网相关的创业公司如雨后春笋般冒出,他们以意料不到的方式尝试着将传统行业和科技结合,比如在传统火锅店里安装自动点餐系统、在房地产公司利用虚拟现实帮助客人足不出户就看到房子的全貌、装修公司和家具公司利用增强现实科技让客人在虚拟幻境里看到不同家具在不同房型摆放后的样子、而跑步也不单单是单调无聊的锻炼内容,而在跑步app的帮助下成了社交工具。计算机产业改变着人们的生活点滴。
这种强势发展也带来了大量人才缺口。在千禧年之后,中国宽带开始普及,人们对计算机行业的关注度和报考度每年成倍增长。这现象海内外皆是。比如我们新加坡国立大学,2018年计算机专业招生300人,2019年就瞬间扩招到800人。
在中国,很多中小学课程大纲都设立了计算机编程课程,甚至还设立了编程奥林匹克大赛。编程是什么?就像我在电子工程专业介绍中所说那样,编程就是把人类语言转变成机器听得懂的“电子语言”。用这种语言人们可以命令机器做不同事情。有人语言能力强,指令发出得精准,机器更听话。有人表达不清,那么机器就表现不佳。而编程就是教你甚至用不同语言和不同机器对话,并且把话说明白。
1. 计算机更适合外向的人?
有人说,你说到对话?那计算机是不是特适合性格外向、能说会道的人学习?
其实不然,与机器打交道、和与人打交道所需技能很不同。其实,相对内向的人对这行业更容易产生兴趣。
2. 什么是计算机?
有人又要问,计算机是不是会计算的机器,那不是计算器嘛?其实计算机不只是电脑,任何电子设备都在进行大量运算,都算是计算机。哪怕是小小的电子运动手表,也是计算机领域中的一员。
那么计算机专业究竟教什么?而你的性格又适不适合加入这个潮流呢?如果你热爱这个行业、却不想过上九九六的劳累工作方式,你又能以什么其他方式进入这一领域呢?欢迎来到这一期的计算机科学专业课堂。
3. 答疑
3.1 计算机科学和软件工程的区别
首先,软件工程原先为计算机科学(computer science,计算机科学)旗下的一个大方向,后来为了顺应时代发展,教育部于2002年新开设了软件工程专业,以计算机科学为基础,帮助学生进行用户需求分析、产品设计和开发、测试和维护,以及学习项目管理知识。
软件工程被称之为工程,是因为它和其他的工科项目有异曲同工之处,其中也会有工程理论、质量控制等课程。它的实用性更强,课程评估中编程能力更受重视,学生们可能会利用编程开发一个APP,或者软件。
计算机科学更注重理论学习,比如计算机发展史啊、计算机运作原理等。软件工程则专注于解决问题、比如怎么通过编程让计算机解决人类烦恼。
拿软件工程中的质量控制课举个例子,不同公司的软件开发过程不规范,比如程序员a开发过程中没有写明白开发日志,等他离职了,程序员b接着a的工作内容继续写,就发现很难读懂,那么项目就难以继续。又或者在发展项目时是因为没有彻底研究法律法规,导致软件不能用,比如现在的叫车软件、或者租房软件,在一些不准许打黑车、短租房的国家是不能使用的,那么设计出来就浪费了。这种情况多了,就大大降低公司盈利效率、造成人力浪费。于是人们就想方设法去治理,并发明各类管理方法、规范软件设计流程。比如测试人员要和开发人员一起对代码测评保证一致性、在软件开发完结开发前准备好测评环境让项目进展更快等等。这和大工程的规范化同一套流程。
软件工程,美其名曰,和硬件接触不多,相关课程有:计算机组成原理、数据结构和数据库等。它的基础研究课比较少。北京理工大学的软件工程在09年之后才开设计机组成原理课程。但软件工程包含有大量编程课程,对于找工作更实用。
计算机科学更偏向理论、适合读博读研,其中软硬件都会接触。所以同学们如果对学术没兴趣,想走应用性路线,想做个有趣的APP、甚至创业,那么软件工程可能更实用。如果同学们对知识充满好奇,未来想去科研界,那么就去选择计算机科学吧。
4. 计算机工程上什么课
4.1 基础课
计算机科学的基础课和其他专业差不多,高等数学、大学英语、线性代数、大学物理等。
它的专业课程主要是C语言程序设计、数据库原理、计算机网络、操作系统、算法分析与计算机组织与结构、编译原理、软件工程等。
大一大二主攻基础课和专业课教学,到了大三同学就可以根据个人兴趣选择专业研究方向,比如计算机科学与技术、网络工程、信息安全、数字图像处理、虚拟现实、机器学习等等。
4.2计算机导论
计算机导论是计算机科学入门级的课程,从里到外地介绍计算机的各个原件,能够让你对计算机有个整体、系统的认识,为学习其他专业课程打下良好的基础。课程的主要内容包括:计算机基础知识、计算机硬件系统、计算机软件系统、数据库与信息系统、多媒体技术基础、通信与网络基础、信息安全与道德规范等。
4.3 计算机组成原理
等基础铺垫好后,我们开始从计算机硬件开始学。计算机组成原理是一门核心硬件课程。大学计算机专业的学生都要学习这门课程。它还是国家研究生入学统考科目,大部分自主命题学校也会把它列为研究生入学考试科目。
在修这门课之前,学生需要修以下三门课,《数字逻辑电路》,《微机接口技术》、《计算机系统结构》。
计算机原理主要讲解计算机五大部件的组成及工作原理,逻辑设计与实现方法,整机互连技术……简单来说,这门课从计算机内部最简单的数字元件讲起。课程结束后,学生可以掌握单台计算极的组成和工作原理,加深对先修课程的理解和应用,甚至可以像搭积木一样用电脑原件零件做出一个计算机。
除了计算机配件,这门课也会教授操作系统。什么叫操作系统?电脑里我们有苹果电脑的IOS操作系统,还有Windows系统,手机还有安卓系统。其实计算机类似一个大型计算器,为了方便人机互动,才发明操作系统这个大型软件。所以,这门课不但教授电脑作为机器如何运转,还详细讲解电脑作为人类的朋友、一个有效的工具,是怎么接受人类智力操作、这些操作又反过来怎么调动计算机内部的原件,帮助人类达成目标。
4.4 计算机组成原理的先修课一:数字逻辑电路
计算机组成原理这一课有三个先修课,我们先讲述数字逻辑电路。电路传递的是脉冲。脉冲是什么,是电子技术中运用的脉搏一样短暂起伏的电压。比如我们把脉,脉动一下,我们算作1,脉停了我们就算作0,那么高电流是1,低电流是0。于是就有了由1和0组成的一串数,这串数字可以表达不同意思。比如数学选择题,a是000,b是111,c是101,那么000111101就是abc,信息就这样被传输了。这也是为什么这种传输途径被称之为数字电路。
这种电路同时又被叫做逻辑电路,因为电路中的“ 1 ”和“ 0 ”还具有逻辑意义,比如1是真,是yes,是行动,那么0就是假,是no,是停止。比如电灯的开和关,等。这类电路由晶体管和电阻组成。期间还有诸多逻辑学、数学。比如一辆汽车不断地扫描周围环境,如果下雨了,那么湿度感应器就会发一个yes给雨刷,雨刷便开始行动。期间汽车依旧不停读取湿度感应器的数据,等湿度下降到某个值以下,湿度感应器就会发送no,雨刷停止。这只是个最简单的例子。学习过程中,学生被要求设计一个与我们日常生活密切相关的实际电路,如:抢答器、数字钟、交通灯等。
4.5计算机组成原理的先修课二:微机接口技术
先修课之二,微机接口技术。在工业生产中,计算机的主要应用方向之一是过程控制,而控制的都是一些非电物理量,比如表征过程的主要参量有温度、压力、流量、液位、成分、浓度。举个最简单的例子。调制药品,要是浓度过高就自动控制机器加点水。通过对过程参量的控制,可使生产过程中产品的产量增加、质量提高、能耗减少。一般的过程控制系统通常采用反馈控制的形式,这是过程控制的主要方式。那么测量浓度、压力的仪器都是单片机,也就是最简单的那种计算机,那么这些单片机的接口就是他们相互沟通的渠道。这些接口规格不同、甚至用的编程语言不同,怎么让这些单片机合作愉快便是这门课的核心之一。这就是这门课比较简单易懂的解释了。需要强调的是,这是门设计课,所以除了理论学习外同学们还需要一定的动手能力。
4.5计算机组成原理的先修课三:数学
计算机科学,之所以是科学,和数学有很大关联。线性代数,概率与统计和离散数学,如果想在这个领域走稳了,这三门课比大学必修的高等数学更重要。离散数学是计算机科学与技术专业的必修课程,主要教授命题逻辑、关系和映射,培养学生的抽象思维和逻辑脱离,为后续计算机课程提供理论支持、也为软件开发设计打好数学基础。其实数学对计算机科学非常重要。如果不满足于只是敲代码、想做高层次点的东西,就必须学好数学。研究软件的人,需要先对软件建模,然后透过模型来研究问题本质,这会涉及到代数概率论、随机过程等。
4.6算法导论
算法导论也称为数据结构。数据结构是算法的一部分。有些章节夹杂着让人讨厌的“数学”,但却能从本质上带你领略这门十分必要而且有趣儿的课。这门课难度适中,而且需要认真学习。当同学们有了一些语言基础之后,就需要学习结构知识和算法,了解算法的思想和架构。这门课主要是用C语言来学习。
4.7 操作系统与编译原理
如刚才介绍,操作系统就是我们用来操作电脑的人机交互界界面。比如苹果IOS系统和Windows系统。这门课教授操作软件设计、开发、操作系统控制计算机的原理和设计方式、CPU管理、存储器管理、作业管理、设备管理和文件管理。
这些基本原理告诉人们作为计算机系统中各种资源的管理者和各种活动的组织者、指挥者,操作系统是如何使整个计算机系统有条不率地高效工作,以及它为用户使用计算机系统提供了哪些便利。
课程最后,学生们会对计算机系统的总体框架、工作流程和使用方法认识更为深刻,帮助他们能带着大局观学习后续课程,不仅便于理解后续课程内容,而且帮助学生们把计算机的各部分知识有机联系。学生会需要设计制作系统,或者重新开发市面上已有的成功系统。这算是难度较高的课程,却也是成为软件专家的基础。
4.8 数据结构
数据结构是计算机程序设计的重要理论技术基础,是计算机科学与技术专业的必修课。数据结构,顾名思义,就是整理、储存、处理数据的结构。
举个例子,怎么让电脑帮你计算数据呢?
1+2*3+(4+5)=?
现在我们考虑的不是直接输入电脑内部的计算机去计算,而是以电脑的角度去思考,我输入的12345去了哪里,加减乘除等于号去了哪里,电脑如何识别,又是如何计算这一切的呢?电脑收到一个12345,还有加号和乘号,便一一把它们都储存起来。加号进来后,计算机等待下一个,发现是乘号,于是就根据先乘除后加减的原则先计算乘号……以此类推。这些字符怎么存、怎么计算符合运算规则、怎样提高运算速度,都是能帮助程序员完善、优化设计程序的必要知识。
4.9 计算机网络
计算机网络的核心内容就是网络协议的学习,是为计算机网络中进行数据交换而建立的规则。不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。简单来说,两台型号不一样、生产厂商不一样和运用编程语言不一样的电脑,需要一套标准化的程式进行交流。这就好像是人类语言,中国地大物博方言多,于是大家用普通话进行基础交流,那么以英文作为国际语言,也相对应地解决了每个个体交流方式不一致的问题。
计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(NetworkLayer)、传输层(Transport Layer)、会话层(SessionLayer)、表示层(Presentation Layer)、应用层(ApplicationLayer)。每一层都是在历史发展中发现问题解决问题的过程中添加的。
接下来我从七层中挑出三层做一个简单描述:
- 传输层: 如果你只想和你的邻居小a联系,你们就拿个绳子、两个杯子传话就好,称为传输层;
- 数据联络层:如果想和多人对话,那么就需要一个控制中心,大家都对它说话,它再把你们的话分给接收人。所以在传输层上面加了数据联络层;
- 物理层:如果你的死党小d在外国,那么他到处搬家,没有准确地址那么你就给全世界的每个房子一个地址,那么他去了哪个酒店、哪家餐厅,你就用他和酒店或餐厅的相对位置给他定位,这就多了物理层。这就好比你用手机连上某个地点的网络,那么你发朋友圈时就可以给自己的消息加上定位。
4.10 编程
除了以上这些科目,最重要的就是编程。不同的领域应用不同的编程语言。同学们最后都要根据喜好和市场需求做出选择,如果要进入数据挖掘、智能和分析领域,请采用Python和R语言,如果需要进入移动应用程序开发领域,就采用JavaScript以及Android和Swift等原生平台……语言的更新换代相对较快,所以程序员的自学能力要求比其他行业更高。好在语言变幻万变不离其宗,只要逻辑在,学习新的编程语言并不是极难的事情。而且随着计算机技术发展以及编程的普及,新的编程语言的难度可能会降低。
大学编程语言课程设定也按照市场需求改变。比如15年左右各大高校引入了安卓语言课程,却也因为市场浮动在两年后取消该课程。所以,整日埋头敲代码或许会让你成为一个合格的程序员,但是一个成功的程序员也需要时刻注意市场需求,调整学习方向,避免被时代淘汰。
大学期间学生需要掌握至少C、C++和JAVA三门编程语言。编程高手需要有极强的逻辑思维、缜密的数据结构和算法设计理念、还有快速准确高效的编程速度。同学们会在大一大二主攻逻辑和算法。在大三大四通过,同学们通过做大型编程项目,编程速度也会大大提升。
那么还有一些选修课程,像是图像处理用的PHOTOSHOP、办公软件EXCEL……都是实用又简单的科目。
5. 就业
根据计算机专业的就业,大家众说纷坛。有些谣言并非准确,让我们在此一一揭秘。当然,同学们也应该自己课下做相关调查,争取以职业为导向进行学习,以始为终。
5.1计算机人才市场饱和了吗?
随着高校持续扩招,甚至社会上的计算机补习学校层出不穷,有些学校因为太受欢迎甚至做到上市。这其中包括2002年成立、2014年美国上市的达内教育、还有大家耳熟能详的1999年起步的北大青鸟。这些学校偏重点不一样,很多学校甚至从教学到就业提供一条龙服务。由此可见,计算机领域专业人士数量的大幅度上升很容易让人联想到人才市场的饱和。与此同时,随着人工智能的发明,甚至有人预测码农这个天天和机器打交道的职业,总有一天会被替代。其实2017年,英特尔实验室就已经发明了能自动生成完整软件程序的机器人“AIprogrammer”。不过目前这个机器人还处于初级阶段,难以替代中高端位的程序员,而且这机器人用的是面对人类的编程语言,而不是机器学习语言。同年谷歌研制AutoML产生了一系列机器学习代码,工作效率比它的发明人员还高,而且可以进行自主学习,运行模拟程式来决定如何改进。这个AutMLl在某个图像识别任务中创造了82%的准确率,其自创的软件的图像识别率高达42%,而人类最多只有39%。
这一切都让人感到担忧。但是先停止沉迷在科幻片场景,毕竟科技的发展和普及还没那么快,更何况我谈及的还是大洋彼岸的最尖端科技。其实人才有没有饱和由多重因素决定。
首先,所在地。中国开发者所在城市大多分布在北京(中关村)、杭州(阿里巴巴)、上海深圳、广州成都南京先,那么开发者少一点的城市有郑州武汉……不同城市竞争力不一样,大家可以自行调查。
其次,如刚才所说,计算机行业新科技层出不穷、因此总需要有人才的及时投入。据国内权威数据统计,自2017年后的五年,我国IT人才总需求量高达1500万到2000万,其中团建开发、网络工程和电脑美术缺口最为突出。软件开发的人才需求每年以20%速度增长,新增缺口近百万。那么市场饱和了吗?根据世界银行估计,发展中国家有四分之一的项目因为专业人士的缺失而失败。这种情况在亚太地区尤为严重,信息技术专业毕业生供不应求、工业界和科学界培养出的程序员、管理人员和顾问满足不了信息产业高速发展的需求,大大影响了各大公司对于软件产品的选择和实施的速度的成功率。那么亚太地区的信息技术厂家和用户单位的头号问题就是发现和培养该领域的人才。其实从20世纪90年代起,信息技术人才一直是人才市场上最活跃的群体,需求供给和价格都大幅上涨。
5.2码农是不是一个枯燥的工作
首先,编程不枯燥。当然,各行各业的编程目的和方式不一样,编写游戏可能比编写文件处理程序要有意思些。但是我身边做码农的同学都说编程虽然难,但是确实很有趣。
其次,码农绝对不是计算机专业毕业后的唯一选择。想想吧,设计一个产品并推入市场需要几个角色的推动:
- 市场:市场调查明白需求、设计产品并确保该产品在大环境下(比如经济、技术和法律各方面下)是否可行
- 产品岗位:确保设计的产品能够满足客户需求(在满足基本需求下怎么做能提高客户满意度。比如一个跑步的APP,除了记录数据、是不是能增加社交功能、是不是能推销运动产品、广告太多了会不会让用户厌烦?设计一个英文新闻阅读的APP真的可以高中生学英文吗?还是说设计一款英文游戏更有帮助呢?)
- 开发、测试:等一切设计妥当,就要开始开发、测试。这个过程要严格参照公司设定好的流程,大家要开会决定用什么语言编程、预算多少、开发时长、需要哪些技术专家参与。
- 美工:美工需要考虑这个app怎么设计好看,某种设计在技术上可行不可行。比如之前的新闻有提到一个产品经理要求程序员能够做一个APP,APP的颜色能根据手机壳的颜色发生改变,后来因为产品经理不懂技术、低估了任务难度,只是一味地提要求,被程序员胖揍一顿,所以和不同的工作人员的沟通交流也很重要,不然也会出现最后成品和最初设计不是一码事的情况。
- 维护:产品做好了,还有维护。客户用APP出现问题,就要有人会修。
- 运营:产品生产好了、技术都没问题了,那么怎么吸引更多的用户来使用呢?怎样有技巧地让顾客接受产品的技术限制呢?
这些都是信息技术行业中必备的工作岗位。有一定计算机科学背景的同学相比计算机小白而言去高科技公司面试相关岗位会有绝对优势。
5.3 程序员是不是吃青春饭。
其实一定程度上在我看来,是这样的。就连61岁的JAVA之父James Gosling也曾面临过年龄歧视。他在面试谷歌时被告知,“通常我们不招聘你这个年龄的程序员,但因为你是JAVA之父,所以对你特殊考虑。”他在谷歌工作后,偶尔会听到30多岁的人在考虑通过整容让自己看上去更年轻。其实这有情可原,因为程序员需要大量加班,而中年人需要兼顾家庭、容易体力不足。而且工作资历久的年长程序员需要更高的工资,所以不如薪水低、更有体力去拼命的年轻人吃香。
然而, 也有别的原因。根据搜狐科技网《中国互联网发展简史》显示,中国1994年正式接入国际互联网,而最近一次中国互联网大浪潮发生在2009年,PC端互联网转移到移动互联网,中国程序员数量呈井喷式发展。根据2015-2016年IT行业职场薪资报告显示:程序员的从业年龄在25-40之间占据一半以上。而90年代入行的程序员,现在大多40多岁,也占据21.03%的码农岗位。其实第一批程序员大多已经转行,很多人三十多岁专项管理岗位、也就是升职带人,那些持续走技术路线的大拿也成了首席科学家、首席技术官,因此不再是一线的程序员。根据北卡罗莱纳州立大学计算机科学系就程序员编程能力和年龄关系的统计来看,编程能力普遍从25岁开始上升,50岁后才会下降,所以理论上应该是年纪越大技术越强的趋势。
6. 就业方向
6.1 网络工程师
网络工程方向就业前景良好。学生毕业后可以到国内外大型电信服务商、大型通信设备制造企业进行技术开发工作,也可以到其他企事业单位从事网络工程领域的设计、维护、教育培训等工作。
6.2 软件工程师
软件工程方向的就业前景十分广阔。学生毕业后可以到国内外众多软件企业、国家机关以及各大、中型企、事业单位的信息技术部门、教育部门等单位从事软件工程领域的技术开发、教学、科研及管理等工作。也可以继续攻读计算机科学与技术类专业的研究生和软件工程硕士。
6.3网络与信息安全方向
这是个宽口径的专业方向。主干学科为信息安全和网络工程。学生毕业后可为政府、国防、军队、电信、电力、金融、铁路等部门的计算机网络系统和信息安全领域进行管理和服务的高级专业工程技术人才。
6.4 机器学习,人工智能
最近最热门的专业发展方向就是机器学习、人工智能。2018年,媒体热传“人工智能人才缺口500万”,但北京工业大学的副校长乔俊飞预言不止500万。北京邮电大学的副校长郭军发现以往通信工程分数线最高,但是近两年人工智能相关专业极受欢迎,于是扩大了智能科学和技术专业的招生,同时设立了数据科学和大数据技术专业。无论本科还是研究生,这方面的录取分数要求是最高的。所以推荐大家多多关注。
6. 你适合计算机专业吗?
计算机一般最初接触总会有些无趣,但很快当学生意识到可以通过编程和其他手段操纵机器时,就会被这伟大的科学迷住,尝试着用这技术创造出更多工具。
计算机科学有一下几点特性,导致这学科难度更高。
6.1 抽象思维
首先,计算机科学是学不完的。它有众多编程语言,每种语言都有各自特性,而且和机器对话很复杂,解决问题的编程方法数不胜数,所以程序员需要有很强的抽象思维和数学思维,以及锲而不舍的精神。
6.2 自律
其次,计算机的世界就是互联网的世界,所以存在诱惑。写着写着作业可能学生就容易玩起游戏了,所以需要有自律性。
6.3 终生学习
第三,计算机知识更新速度极快,比如,从《浪潮之巅》这本书给的例子,我们得知,2007年的时候,世界上最快的计算机是IBM出的蓝色基因,它的速度是每秒钟365万亿次运算。到2010年,我们国家的天河1A计算机计算速度每秒高达2570万亿次。到2012年,IBM的红杉计算机速度是1.6亿亿次。例子二,苹果一代的存储容量只能存一个文档,现在一个手机的存储容量就是200多G。而1994年的时候上网下载速度是每秒2.4KB,下载一个谷歌输入法得8个小时,那么现在会怎样?眨眼之间就能搞定。技术更新速度之快可想而知。所以同学们需要终生保持学习、紧跟科技、永不止步。
7. 你能学好计算机吗?
说完几点学习态度的关键后,再说说在高中阶段,怎样评估自己在计算机科学这个专业的表现呢?
7.1 数学
首先,数学很重要。这本来就有些枯燥难学,但却很锻炼逻辑思维。而逻辑思维是编程的基础。锻炼逻辑思维的方式很多,参加辩论队、多练习编程,都有帮助。学习编程其实是学习的一种思维,一种解决问题的思想方法,也可以称之为机器思维。这种思维的培养,需要很强的数学基础。
7.2 英语
按理来说,英文和计算机科学没有必要联系,而且英文好不一定计算机强。为什么还要强调英语的重要性呢?
这是因为计算机是美国发明的,所以很多术语都是用英文表达,很多中国教科书上的术语都是英文翻译。所以最前端的技术都是用英文写作。国内经常要等一段时间才能看到翻译版本,而翻译版本甚至可能因为翻译失误导致知识变性。所以经常阅读国外技术文档是学好这科目的捷径。不懂英文可能会限制能力扩展和知识层面。除此之外,就连技术文档,也都是英文编写,哪怕编程出现问题,提示信息都是英文,所以同学们要好好学英语,要是英语底子不好,以后就要可能会花费更长时间学习。事倍功半。
8. 小建议
在大学学习计算机科学期间,同学们最好尽快确定未来发展方向。因为不同方向所钻研的知识领域大相径庭、所用编程语言可能也不一样,尽快确定方向、多花时间研究该领域特定的知识,省得毕业后不同行业兜兜转转走弯路。比如通信行业、语音视频、信道信源都在用不同的编解码算法。不过如果能利用数学总结算法思路,那么学生便能快速掌握任何编程语言。
计算机是个需要大量练习的学科,但锻炼技术的同时,学生也要尽可能将其和现实生活相连。毕竟技术是工具,服务于生活。这让人不由想起2013年的电影《实习大叔》,一行人在喝醉酒相互玩闹中想出一个好点子,就是制造一个APP,随机抽选题目,喝酒的人可以通过自己的答题正确率判断自己是否清醒,以防喝醉做傻事。诸如此类的小应用又有趣又实用、还能锻炼技术,何乐而不为