一、个人总结

在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程;

请用自我评价表,有比较才会有进步。

类别 具体技能和面试问题 现在的回答(注明年级) 毕业后的回答
语言 最拿手的计算机语言之一,代码量多少?(偏web前端,PC/Mobile App) C++
语言 最拿手的计算机语言之二,代码量多少?(偏后端,数据处理,网站后台,机器学习,等) JAVA
软件实现 (阅读代码的能力,实现,单元测试)你有没有在别人代码的基础上改进,你是怎么读懂别人的代码的,你采取了什么办法来保证你的新功能不会影响原来的功能?你在开发中碰到最复杂的bug是什么,你是如何解决的?这个bug出现的原因是什么,你在将来应该怎么去避免bug再出现? 有改过;通过注释配合自己的理解来解读别人的代码,利用和原来功能一样的函数和变量,我感觉bug就很复杂,自己检查代码逻辑,实在不行就找同学共同解决,bug太多了说不完,尽量避免代码出现逻辑上的错误
软件测试 (测试方法、测试工具、测试实践、代码覆盖率)你如何测试你自己写的代码?你如何测试别人的代码?你掌握了多少种测试工具和方法?你写过测试工具么?你如何对一个网站进行压力测试和效能测试?你如何测试一个软件的人机界面(ux/ui)? 运行一下看看是什么样的,别人的也运行一下,没有掌握测试工具,也没有写过测试工具。没测试过
效能分析 效能分析,效能改进,你写过最复杂的代码是什么?你是如何测量和改进它的效能的,用了什么工具,如何分析的? 五子棋,通过不断的改进代码,没用工具,和同学共同分析问题
需求分析 (需求分析,典型用户,场景,创新)你做过多少个有实际用户的项目,用户最多有多少?你的项目有什么创新的地方?
行业洞察力 你最感兴趣的领域是什么?这个领域过去10年经历了哪些创新?你分析过这个领域前10名产品吗?请分析一下他们的优势,你要进入这个领域,应该如何创新?
项目管理 你参与过项目管理么?请描述一下两个当下流行的开发方法在你的项目中的具体应用情况;请问你如何决定项目中各种任务的优先次序,有什么理论来支持你的做法?如果你突然发现项目不能按时完成,你作为项目领导,有什么办法?
软件设计 你做过架构设计,模块化设计,接口设计么?请说明一下你为何是这样设计,你比较过什么不同的设计方式,你的设计取得了什么结果?
质量意识 (代码复审/代码规范/代码质量)你是怎么做代码复审的,你加入我们团队后,能帮助我们提高代码质量么,请具体说怎么提高? 浏览代码,规范格式,去除重复冗余,减少潜在bug
工具/社区 Software Tools(performance tool,version control,work item,TFS)你在各种开发平台(web,linux,PC,mobile,machine,learning)都是用过什么样的工具,自己写过什么工具来改进工作效率?你写的技术博客坚持了多久,读者最多的是哪一篇? eclipse、vc、NetBeans;没写过工具和技术博客
团队协作 Work with others(协同工作,提供反馈,说服别人)请描述你在项目中如何说服同伴采用你提出的更好的解决方案,或者你如何听取了别人的意见,改进了自己的方案?你如何说服懒惰的同伴加紧工作,实现团队的目标? 通过阐述利弊关系,做出对团队最有利的选择,懒惰的同学就通过占分比来吓他!
理论素养 你上过什么数学,计算机或其他理论课,请举出具体的例子,说明你学到的理论知识如何帮助你解决实际问题。 高等数学,离散数学,线性代数,概率论,数字逻辑,数据结构,模拟电路和数字电路
自我管理 全年级你专业排名多少?你从刚入学(大学一年级)到现在的排名有变化吗?你如何解释你的排名的变化? 90来名,没太大变化

二、回答问题

我们在课程开始之初,曾经要求大家针对软件工程提出问题:个人阅读作业2,那么在经过alpha阶段,大家是否对软件工程有了一定的了解?请结合自己提出的问题进行回答

问题一:软件工程师的思维误区——分析麻痹 P52
分析麻痹就是我经常会出现的问题,在敲代码之前就觉得各种依赖之间很复杂,逻辑可以分析出来,但代码却很难实现,所以经常会还没开始写就害怕了,书上并没有写出如何解决这个问题的方法,我应该如何解决这个问题呢?

不要想太多,just do it!遇到问题了再去解决,不要一开始就被吓倒,就算再大的问题都是化为一个个小问题可以解决的

问题二:结对编程让两个人写的代码不断处于“复审”的过程,程序员能够不断地审核,提高设计和编程质量,可以及时发现并街均为提,避免把问题拖到后面的阶段去 P86
如果一个二人团队不断的看对方的代码,处于“复审”的过程中,不会影响团队的进度吗?这样进行的团队合作有效率吗?如果两个人的对同一段代码出现分歧了怎么办?

虽然会些许影响团队进度,但是带来的好处是可以更加了解彼此的代码,同时可以及时排除双方代码里的一些逻辑bug避免后期麻烦,出现分歧的时候共同讨论最适合团队的方法即可

问题三:创新迷思三:好的想法会赢 P350
如果连好的优秀的想法都没有,怎么能够有好的创新呢,所以创新不就是应该要通过好的想法才能够获得成功吗?书上的键盘案例只是因为那个坏的案例被人所习惯了,如果第二个键盘在第一个键盘之前出来,应该会比第一个更优秀的才对。如果好的想法不一定能赢,那么什么样子的想法才可以赢呢?

适合使用者的才是好的,要配合使用这个软件的使用者的想法去做,才是好的

三、再提问题

同时,大家一定会在实践过程中产生更多问题, 结合你的读书(教材,博客,参考书), 实践, 再提出关于软件工程的 5 个问题。

1.在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文。

2.列出一些事例或资料,支持你的提问 。

3.说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?