文
林小道
排版
yiyin姐
本文笔者来自中山大学软件工程专业
正文
Q1:软件工程学什么?
学计算机,写程序,做软件,当程序员。
Q2:软件工程(SoftwareEngineering)跟计算机科学(ComputerScience)是什么关系?
两个专业的课程安排相近。CS专业会更深入地学习计算机理论和原理,SE更注重编程实践能力。专业选择上,看分数线选。
Q3:听说学计算机很辛苦?
是的,IT行业加班现象严重。在计算机世界里,技术日新月异,自学能力是程序员最重要的能力之一。选了这个专业,就要时刻保持好奇心和技术嗅觉,不能只满足于完成课内作业。
Q4:软件工程学习哪些专业课程?
?编程类:编程语言、设计模式、web开发、移动端开发、桌面端开发、Unix环境编程等等
?原理类:数据结构、算法、操作系统、数据库、计算机网络、数字逻辑电路、计算机组成原理、编译原理、软件工程等等
?数学类:离散数学、高等数学、线性代数、概率统计、数值计算等等
不知道这些课程到底学的是什么?我来举个栗子吧。
假设你用浏览器打开了豆瓣,搜索“周星驰”,在这个过程中计算机帮你做了什么事情呢?
(图片来源:豆瓣网)
玩过游戏的同学肯定听说过“客户端”和“服务器”这两个词,在这里你的浏览器就是客户端,它把这个搜索请求提交给豆瓣的一台服务器(服务器是另一台计算机),服务器处理完后,返回结果给你的浏览器。
你可能会问,浏览器去找哪台服务器呢?它和服务器之间怎么通信呢?这就是计算机网络课程学习的知识,这个过程中会涉及到DNS,HTTP等网络协议,协议定义了两台计算机间传递的信息的表示方法等。
(DNS和”存储-转发“技术
图片来源:《图解HTTP》)
好了,现在浏览器拿到了结果,这是一些文件,浏览器又是怎么让你看到这样一个界面的呢?这是因为浏览器按着文件上写的东西干活,把一个个文字一张张图片画了出来。
那么,“画了出来”是什么意思?
这个问题其实有些复杂。你的电脑上有一块叫做”显卡“的设备,它接收一堆0和1的电信号,执行指令,最终显示器把电信号转化成光信号。这里的显卡和CPU类似,都按照收到的指令完成任务。不同厂家生产的显卡、CPU的接受的指令可能不同,但结构上往往相似。研究CPU内部的结构,以及CPU怎么执行指令,就是计算机组成原理课程的内容。
浏览器和底层的设备之间,还有操作系统在干活,简单来讲,操作系统接受浏览器的差遣,去和底层的硬件打交道。操作系统对上层软件(例如浏览器)屏蔽了底层硬件的细节。
现在我们把北京中科医院忽悠北京治疗白癜风最好的医生