一、个人总结
类型 | 具体技能和面试问题 | 现在的回答 |
---|---|---|
语言 | 最拿手的计算机语言之一(偏前端),代码量是多少 | JAVE,代码量1000左右 |
语言 | 最拿手的计算机语言之二(偏后端),代码量是多少 | C语言,代表量1000左右 |
软件实现 | 有没有在别人的代码基础上进行改进,你是怎么读懂别人的代码,你采取什么方法不影响原来的功能?开发中遇到的bug是什么,怎么解决,bug出现的原因 | 没有改进过别人的代码,遇到BUG的话先分析原因,之后尝试,如果解决不了的话再求助他人 |
测试软件 | 你是怎么测试自己的代码,怎么测试别人的代码 | 测试自己的代码先看看是不是如自己预料中想要的样子,之后在测试集中特殊的情况,看看有没有错误,别人的代码的话就把自己当作一个使用者去用他的程序 |
效能分析 | 你写过的最复杂的代码是什么?你是如何测试和改进它的效能的,用了什么工具,如何分析? | 课设的时候写了一个成绩查询系统,测试直接运行代码,看有没有错误 |
需求分析 | 你做过多少个有实际用户的项目,用户人数多少,你的项目有什么创新之处 | 没做过有实际用户的项目 |
行业洞察力 | 你最感兴趣的领域是什么,这个领域过去十年有什么创新,你分析过这个领域前十的产品吗,请分析一下他们的优劣,你要进入这个领域,如何创新 | 最感兴趣的是游戏设计,但是还不是特别了解,感觉创新的话需要往VR方面发展 |
项目管理 | 你参加过项目管理吗,如何决定各个任务的优先顺序,如果项目不能及时完成,你要怎么办 | 没有参加过,但了解过,一般是先市场调查,再计划、分工、调试、测试,不能及时完成的话要请求他人帮助 |
软件设计 | 你做过架构设计,模块化设计,接口设什么?请说明一下你为何是这样设计,你比较过什么不同的设计方式,你的设计取得什么结果? | 没有接触过 |
工具/社区 | 你在各种开发平台都使用过什么工具,自己写过什么工具来改进工作效率?给社区贡献过什么工具和代码?Github有分享代码么?你写的技术博客坚持了多久,读者最多的是那一篇? | 有用过码云,其他没有 |
团队协作 | 描述你在项目中如何说服同伴采取你更好的方案,或是听取别人的意见改进自己的方案,如何说服懒惰的同伴加紧工作 | 首先应该以身作则,然后以理性的方法来解决 |
理论素养 | 你上过什么数学,计算机或是理论课,举出具体的例子,如何帮你解决问题 | 高等数学、离散数学、计算机组成与原理、C程序设计、数据结构、Java等,这些课程锻炼了逻辑思维,能更好的理解 |
二、回答问题
问题1:第三章讲了对软件工程师水平的评估,我想明白对于基础比较差的同学,首先应着手提升自己哪方面的能力,哪项指标最重要,有没有一个优先级?
我觉得应先提升自己的技术技能,技术技能才是一切的基础
问题2:第四章谈到了结对编程,但看书上写到似乎需要两个人的编程实力相当,那两个水平有些差距的人能否一起结对编程呢?
不一定需要实力相当,在结对编程时,水平好的人能充当老师的身份从而领悟到一些在平时可能悟不到知识,而水平低的同学自然能学到很多
问题3:第五章谈到了软件团队的模式,我了解了许多种不同的模式,那我想知道在这么多的模式中,哪种是一般团队中最常用的,哪种比较适合我们学生?
学校里最常用的一般是主治医生模式,但是对于学生来说最好的应该是业余剧团模式,这样每个人都能学到很多
问题4:在我看了书后对PM的理解就是一名领袖,但书中对此的解释我觉得有些勉强,是否有更详细的一点解释。
真正的PM是在构思出一款产品/一个功能点之后,整合公司与外部的各种资源,把一款产品从0到1,再把产品推向市场的整个过程,并对产品的整个生命周期负责。
问题5:我们作为网络工程的学生为何要学习软件工程这门课程,这门课程是否和我们的专业有特别大的关系呢?那么其中作为网络工程专业学生所需要掌握的重点又是哪些?
有很大的关系,我感觉一学期下来最大的收获就是学会如何在一个团队下完成一个项目的开发,如何与他人协作。