软件工程写优雅的代码,做优雅的程序员

林小道

排版

yiyin姐

本文笔者来自中山大学软件工程专业

正文

Q1:软件工程学什么?

学计算机,写程序,做软件,当程序员。

Q2:软件工程(SoftwareEngineering)跟计算机科学(ComputerScience)是什么关系?

两个专业的课程安排相近。CS专业会更深入地学习计算机理论和原理,SE更注重编程实践能力。专业选择上,看分数线选。

Q3:听说学计算机很辛苦?

是的,IT行业加班现象严重。在计算机世界里,技术日新月异,自学能力是程序员最重要的能力之一。选了这个专业,就要时刻保持好奇心和技术嗅觉,不能只满足于完成课内作业。

Q4:软件工程学习哪些专业课程?

?编程类:编程语言、设计模式、web开发、移动端开发、桌面端开发、Unix环境编程等等

?原理类:数据结构、算法、操作系统、数据库、计算机网络、数字逻辑电路、计算机组成原理、编译原理、软件工程等等

?数学类:离散数学、高等数学、线性代数、概率统计、数值计算等等

不知道这些课程到底学的是什么?我来举个栗子吧。

假设你用浏览器打开了豆瓣,搜索“周星驰”,在这个过程中计算机帮你做了什么事情呢?

(图片来源:豆瓣网)

玩过游戏的同学肯定听说过“客户端”和“服务器”这两个词,在这里你的浏览器就是客户端,它把这个搜索请求提交给豆瓣的一台服务器(服务器是另一台计算机),服务器处理完后,返回结果给你的浏览器。

你可能会问,浏览器去找哪台服务器呢?它和服务器之间怎么通信呢?这就是计算机网络课程学习的知识,这个过程中会涉及到DNS,HTTP等网络协议,协议定义了两台计算机间传递的信息的表示方法等。

(DNS和”存储-转发“技术

图片来源:《图解HTTP》)

好了,现在浏览器拿到了结果,这是一些文件,浏览器又是怎么让你看到这样一个界面的呢?这是因为浏览器按着文件上写的东西干活,把一个个文字一张张图片画了出来。

那么,“画了出来”是什么意思?

这个问题其实有些复杂。你的电脑上有一块叫做”显卡“的设备,它接收一堆0和1的电信号,执行指令,最终显示器把电信号转化成光信号。这里的显卡和CPU类似,都按照收到的指令完成任务。不同厂家生产的显卡、CPU的接受的指令可能不同,但结构上往往相似。研究CPU内部的结构,以及CPU怎么执行指令,就是计算机组成原理课程的内容。

浏览器和底层的设备之间,还有操作系统在干活,简单来讲,操作系统接受浏览器的差遣,去和底层的硬件打交道。操作系统对上层软件(例如浏览器)屏蔽了底层硬件的细节。

现在我们把







































北京中科医院忽悠
北京治疗白癜风最好的医生



转载请注明地址:http://www.henanledxianshiping.com/fjgcjs/18936.html
  • 上一篇文章:
  • 下一篇文章: