类别 | 具体技能和面试问题 | 如今的回答(大三下) |
---|---|---|
语言 | 最拿手的计算机语言之一,代码量多少? (偏web前端,PC/Mobile App) | html,代码量为3000 |
语言 | 最拿手的计算机语言之二,代码量多少? (偏后端,数据处理,网站后台,机器学习 | C,代码量为4000 |
软件实现 | (阅读代码的能力,实现,单元测试) 一、你有没有在别人代码的基础上改进,你是怎么读懂别人的代码的? 二、你采起了什么办法来保证你的新功能不会影响原来的功能? 三、你在开发中碰到最复杂的bug是什么,你是如何解决的? 四、这个bug出现的缘由是什么,你在未来应该怎么去避免bug再出现? |
一、印象中没有,由于很不喜欢看别人的代码,有的是会片断的学习 二、逐字逐句的推敲研究 三、代码上要注意分块隔开,变量上的名称有意义不覆盖,在增长了一个新功能的同时要去检查一下原来的功能受到影响,避免后面堆杂 四、从后端传入的js语言的数据要进行提取并放到框架中,还要保证相同日期的日期显示只显示一条,经过慢慢调试,网上找相似的案例分析解决 五、出现的缘由是对js语言的不了解,对列表数据填充的知识了解不够深刻,未来须要多接触这些语言并结合使用,熟能生巧 |
软件测试 | (测试方法、测试工具、测试实践、代码覆盖率) 一、你如何测试你本身写的代码? 二、你如何测试别人的代码? 三、你掌握了多少种测试工具和方法? 四、你写过测试工具么? 五、你如何对一个网站进行压力测试和效能测试? 六、你如何测试一个软件的人机界面(UX/UI)? |
一、编写测试代码进行测试 二、直接运行进行大数据测试 三、微信小程序平台的测试工具,测试方法只会测试代码测试 四、没有啊 五、多人同时访问进行压力测试,效能测试主要看运行的速度和服务器的响应速度 六、主要是经过一个美观和使用操做的状况进行测试的 |
效能分析 | 效能分析,效能改进 一、你写过的最复杂的代码是什么? 二、你是如何测量和改进它的效能的,用了什么工具,如何分析的? |
一、算法课的结课代码,是一个寻找凸包的程序 二、大数据冲击,当时才不懂什么测试工具呢 |
需求分析 | (需求分析,典型用户,场景,创新) 一、你作过多少个有实际用户的项目,用户最多有多少? 二、你的项目有什么创新的地方? |
(哭泣)没有作过实际的项目 |
行业洞察 | 一、你最感兴趣的领域是什么? 二、这个领域过去10年经历了哪些创新? 三、你分析过这个领域前10名产品么?请分析一下他们的优劣 四、你要进入这个领域,应该如何创新? |
一、最感兴趣的是AR 二、这个领域算是比较新的行业,产品从早教到导航都有涉及 三、没有分析过,可是AR产品在导航方面作的比较通常,比较多的是红包和早教产品 四、创新的话能够考虑在什么方面很好的利用AR这个技术而且投入使用的可能性最大 |
项目管理 | 一、你参与过项目管理么?请描述一下两个当下流行的开发方法在你的项目中的具体应用状况 二、请问你如何决定项目中各类任务的优先次序,有什么理论来支持你的作法 三、若是你忽然发现项目不能按时完成,你做为项目领导,有什么办法? |
没有参加过项目管理 |
软件设计 | 一、你作过架构设计,模块化设计,接口设计么? 二、请说明一下你为什么是这样设计 三、你比较过什么不一样的设计方式,你的设计取得了什么结果? |
一、模块化设计 二、模块化设计不只是方便本身对代码的审核和查阅,而且对于纠错也比较容易 三、若是不使用模块化设计,你的代码看起来将会毫无逻辑性可言,杂乱无章,本身都看不下去 |
质量意识 | (代码复审/代码规范/代码质量) 一、你是怎么作代码复审的 二、你加入咱们团队后,能帮咱们提升代码质量么,请具体说怎么提升? |
一、主要是经过本身复审和同伴复审 二、能够,经过审核代码的规范性和可行性来提升代码的质量 |
工具/社区 | Software Tools (performance tool, verslon control, work item, TFS) 一、你在各类开发平台(web, linux, PC, mobile, machine learning) 都使用过什么样的工具 二、本身写过什么工具来改进工做效率? 三、给社区贡献过什么工具和代码? 四、 Github有分享代码么? 五、你写的技术博客坚持了多久,读者最多的是哪一篇? |
一、不晓得编译环境算不算得上呀 二、没有本身写过工具 三、没有给社区贡献过什么工具和代码 四、没有使用github 五、学习java时写过一学期,再次接触就是此次的软工了,读者最多的一篇不是由于质量好,而是由于提交的早 |
团队协做 | Work with others (协同工做,提供反馈, 说服别人) 一、请描述你在项目中如何说服同伴采用你提出的更好的解决方案,或者你如何听取,了别人的意见,改进了本身的方案? 二、你如何说服懒惰的同伴加紧工做,实现团队的目标? |
一、有想法的时候就会提出来,若是你们都以为好就会认同这个idea,不认同的话我会听别人的意见,肯定本身的想法确实存在不够好的地方 二、在团队中咱们是约定好时间一块儿办事的,实在没办法一块儿参与的就会自行安排时间,而且在这个团队中我发现个人同伴都是比我要勤快的 |
理论素养 | 你上过什么数学,计算机或其余理论课,请举出具体的例子,说明你学到的理论知识如何帮助你解决实际问题。 | 数学这门课好像没发如今实际中有什么用处,计算机的课程主要是教你一种编程的思想,这种思想在实际中是能够通用的,很培养人的耐心啊 |
自我管理 | 一、整年级你专业排名多少? 二、你从刚入学(大学年级)到如今的排名有变化么? 三、如何解释你的排名的变化? |
一、2030左右吧 二、没什么变化啊,都差很少 |
了解?请结合本身提出的问题进行回答html
Q1:前端
单元测试必须由最熟悉代码的人(程序的做者)来写。
测试的运行、经过、失败不依赖于别的测试,能够人为构造数据,以保持单元测试的独立性。
--引用自《构建之法-第二版》java
答:在alpha阶段的开发中,其实咱们并无精力去进行什么单元的测试,咱们直接在微信开发平台里面编写直接调试,而且没有进行什么代码的构思,固然这也是由于在此次的开发中没有用到而已,在以后的项目中我以为代码测试仍是特别有必要的,而且是在你完成一部分功能就进行测试为好,由于那样子才不会对你以后的进程有牵绊。总体的代码须要在一开始就有一个大概的构思,而后进行模块的划分,不要边写边研究,会很乱linux
Q2:git
主治医师模式:首席程序员负责处理主要模块的设计和编码,其余成员从各个角度支持他的工做(后备程序员、系统管理员、工具开发、编程语言专家、业务专家)。
业余剧团模式:团队在每个项目中,不一样的人会挑选不一样的角色,在下一个剧目中,这些人也许会换一个彻底不一样的角色类型,我的在团队中遵从一个中央指挥的指导和安排。
交响乐队模式:家伙多,门类齐全,演奏都靠谱,同时看指挥。
--引用自《构建之法-软件团队的模式》程序员
答:其实每一个团队都有他们独特的团队模式,全部几乎没有哪种特别固定的什么主治医师模式仍是交响乐队模式能够一以归纳的,而且这个和团队成员之间的协做力、调度力、执行力都有很大的关系github
Q3:web
敏捷开发的原则:
一、尽早并持续的交付有价值的软件以知足顾客需求;
...
五、以有进取心的人为项目核心,充分支持信任他们;
...
十二、时时总结如何提升团队效率,并付诸行动。
--引用自《构建之法-敏捷流程》面试
答:咱们团队在敏捷开发的原则上能够说是完美的诠释了“以有进取心的人为核心,而且充分的信任他们”这一原则,由于在一个团队中你会发现PM的带动做用是特别强大的,充分的信任是必须作到的,而且不是说一昧的苟同观点,而是对一系列任务的安排都必须严格的按她说的进行,若是有什么问题上须要商量的能够提出来你们一块儿解决算法
Q4:
功能的定位和优先级
杀手功能:OCR文字识别技术,能够在屏幕上取词解释,拥有独家权威词典;
外围功能:良好的界面设计,在各个平台上都能运行;
必要需求:单词的短语释义的准确性;
辅助需求:能够作各类皮肤;
功能分析的四个象限可让咱们决定怎么处理不一样类型的功能,重要的是,倾斜到能够产生差别化和独特用户价值的地方。
--引用自《构建之法-需求分析》
答:考虑杀手功能的前提之上自己就是创建在你肯定了用户人群了,肯定一个项目的同时就已经很天然的肯定了这个项目所面向的人群。
Q5:
分而治之
一个团队项目要在一段时间内完成诸多任务,知足用户的需求,实现团队的目标,同时还但愿项目能维持良好的技术架构,从哪里入手?
--引用自《构建之法-WBS》
答:用意是为了避免让咱们团队在项目开发的过程当中偏离轨道,从结果出发去构建WBS树能更好的创建一个好的出发点。工做包的最小的叶子节点,即便是再细小的任务也应当作为叶子节点。
敏捷流程第三步:冲刺
--引用自《构建之法P107》
两人合做:
两个工程师在一块儿,作的最多的事情就是“看代码”
--引用自《构建之法P59》
-在实际的开发过程当中,我发现课本上不少知识理论和团队理念彷佛都没有用到咱们实际的开发中去,博客是一直进行,也一直在教咱们运用书本,但是好像变成了一种交付式的任务,想问一下这个是否是咱们的课题选的不够很好的将实践与理论相结合?仍是说是咱们的时间不够充足去体会这个过程
软件测试:
-引用自《构建之法P270》
MSF
保持敏捷,预期和适应变化