个人总结
在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程;
第一部分
类别 |
具体技能和面试问题 |
现在的回答(大三) |
语言 |
最拿手的计算机语言是一?,代码量多少?(偏前端) |
前端语言只了解过HTML/CSS,代码量不多 |
语言 |
最拿手的计算机语言是二?,代码量多少?(偏后端) |
学过C ,JAVA,比较擅长的是C,代码量没有统计过 |
软件实现 |
(阅读代码的能力,实现,单元测试)你有没有在别人代码的基础上改进,你是怎么读懂别人的代码的,你采取了什么办法来保证你的新功能不会影响原来的功能?你在开发中碰到最复杂的bug是什么,你是如何解决的?这个bug出现的原因是什么,你在将来应该怎样去避免bug再出现? |
有在别人代码的基础上改进,大部分是通过阅读注释和自己的基础读懂别人的代码,出现bug大部分都是百度,再和同学讨论交流解决,记住经验教训避免bug再出现。 |
软件测试 |
(测试方法、测试工具、测试实践、代码覆盖率)你如何测试自己写的代码?你如何测试别人的代码?你掌握了多少种测试工具和方法?你写过测试工具吗?你如何对一个网站进行压力测试和效能测试?你如何测试一个软件的人机界面(UX/UI)? |
通过调试功能测试自己的代码和别人的代码,掌握了一种测试工具叫XTest,没有写过测过工具,对网站进行压力测试和效能测试可以通过百度查找步骤 |
效能分析 |
效能分析,效能改进,你写过的最复杂的代码是什么?你是如何测量和改进它的效能的,用了什么工具,如何分析? |
我写过比较复杂的代码是在数据库的课设上,通过GUI界面完成数据库的增删改查功能,通过改进代码和界面来改进它的效能,没有用到工具。 |
需求分析 |
(需求分析,典型用户,场景,创新)你做过多少个有实际用户的项目,用户最多有多少?你的项目有什么创新的地方? |
只有我们这次软件工程的项目有实际用户,目前用户最多是130个,这个项目比较创新的地方就是增加了统计分析功能 |
行业洞察力 |
你最感兴趣的领域是什么?这个领域过去十年经历了哪些创新?你分析过这个领域前10名产品么?请分析一下他们的优劣,你要进入这个领域,应如何创新? |
我比较感兴趣的是网络路由交换方面的,比如无线网的兴起,知道一些产品,但是没有具体分析的过,就我目前的能力还没办法想到创新的点。 |
项目管理 |
你参与过项目管理吗?请描述一下两个当下流行的开发方法在你的项目中的具体应用情况;请问你如何决定项目中各种任务的优先次序,有什么理论来支持你的做法?如果你突然发现项目不能按时完成,你作为项目领导,有什么办法? |
仅在本次软件工程项目中参加过项目管理,结构化方法,面向对象开发,任务的优先是根据任务主次来区分的,一些细节问题可以放在最后处理,发现项目不能按时完成就会鼓励成员能完成多少尽量完成多少,然后在下一次迭代中加把劲。 |
软件设计 |
你做过架构设计,模块化设计,接口设计吗?请说明一下你为何这样设计,你比较过什么不同的设计方式,你的设计取得了什么结果? |
没有做过架构设计,模块设计,接口化设计 |
质量意识 |
(代码复审/代码规范/代码质量)你是怎么做代码复审的,你加入我们团队后能提高我们的代码质量吗?请具体说怎么提高? |
让代码更加简洁明了,易于阅读 |
工具/社区 |
你在各种开发平台都使用过什么样的工具,自己写过什么工具来改进工作效率?给社区贡献过什么工具和代码?Git有分享代码吗?你写的技术博客坚持了多久,读者最多的是那一篇? |
没有使用过工具,博客也是作业博客,没有技术博客 |
团队协作 |
请描述你在项目中如何说服同伴采用你提出的更好的解决方案,或者你如何听取了别人的意见,改进了自己的方案?你如何说服懒惰的同伴加紧工作? |
别人通过摆事实讲道理向我提出意见,同伴懒惰的话可以向他强调责任感 |
理论素养 |
你上过什么数学,计算机或是理论课,举出具体的例子,说明你学到的理论知识如何帮你解决问题 |
学习过高等数学,概率论,计算机组成原理等课程,提高我的逻辑思维能力帮我解决问题 |
自我管理 |
全年级你专业排名多少?你从刚入学(大一)到现在排名有变化吗?如何解释这种变化? |
忘记了自己多少名,但是相对于大一来说有进步了,进步的原因是自己的学习态度更加端正了 |
回答问题
问题1 什么是软件工程?
现在我明白了软件工程是一个教人写软件的整体过程,也渐渐理解了“软件工程师把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过工程”这句话的意思。
问题2 为什么这本书的例子这么多?
例子更加能让同学们理解作者想要表达的意思,这本书要耐心阅读,就会发现其中的奥妙。
问题2 面试中首先看中的是什么?
最后我的得出结论“一个新人能加入一个团队,团队领导看中他什么呢?首先是知识” 表示同意作者的观点,其实最重要的还是看技术。
再提问题
问题1 如何做到高效的团队讨论?
在书本的P199页,有提到在团队会议中,出现的效率不高的情况,开完会成员都不满意,书上也说明了要注意的事项,但是站立的会议的时间只有十几分钟,如何能更好的利用时间来提高团队讨论的效率呢?
问题2 P124 敏捷流程的经验教训?
在书中,提到了在复杂的项目中,要让一线团队成员做决定,但是PM的作用呢?
问题3 为什么要结对编程 ?
在P84页中,讲到让我们进行结对编程,可是后面结对的结果已经发现了结对编程的效率比单人编程慢,那为什么还要继续结对编程。
问题4 P368
在看到产品生命周期的不同阶段时,我在想,一个产品到了衰落期或者终结期的时候,是不是可以用创新的方法让它重新回到成熟期。
问题5 P193
在该页中提到,PM是做开发和测试搞不定的事情,那么PM究竟要不要参与开发呢