如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?
一、软件工程师必备的能力素质 一、具有良好的编程能力和算法基础。编程能力直接决定了项目开发的效率,软件工程师至少精通一门编程语言,熟悉基本语法、技术特点和API。 二、运用数据库和正则表达式的能力。正则表达式和数据库语言犹如两把利刃,两者结合、灵活运用可以减少代码编写量。 三、具有软件工程的概念。从项目需求分析开始到安装调试完毕,软件工程师必须清楚地理解和把握这些过程,并能胜任各种环节的具体工作。 四、培养对行业的认知。软件工程师要就市场论技术,强调面向对象的分析与设计能力。 五、软实力。除去专业技能,还要有一定的沟通交流能力、团队合作能力、学习能力,尤其是需要较强的英语阅读和写作能力。程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与编程高手交流、发布帮助请求同样离不开英文。 二、Linux下网络协议栈分析 应用层 应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的。Linux Socket 是从 BSD Socket 发展而来的,它是 Linux 操作系统的重要组成部分之一,它是网络应用程序的基础。从层次上来说,它位于应用层,是操作系统为应用程序员提供的 API,通过它,应用程序可以访问传输层协议。 socket 位于传输层协议之上