nowcoder 面经考试结束会自动提交吗

首先,其实题主的问题还是很实诚的,我刚开始做测试的时候其实也是这个心态,想转开发,也学习了很多的语言,个人觉得这是职业危机感的表现,挺好的,也相信题主不管去做开发和测试都会去不断的学习和进步。&br&好吧,正文来了,先回答第一个问题:测试究竟是做什么的?以下是我不久前分享过的一篇文章,我直接拿过来回答第一个问题吧(还顺便解决了测试人员的发展问题)&br&—————————————————&br&测试可以做什么&br&&p&谈到&strong&测试&/strong&人员的发展,首先再回过头来看看整个项目期间测试人员做的事情或者说能够做的事情吧以及需要具备的对应的能力吧!&br&1、版本或者产品的规划阶段:&/p&&p&作为一个测试人员,这个时候可以从一个更高的角度对产品的规划提出自己的想法,来更好的帮助产品取得成功。&/p&&p&需要具备的能力或者知识:对于产品的商业理解以及整个行业和市场的理解都比较深入,实际上这个时候我们可以将自己看成是一个产品经理。&/p&&p&&br&2、版本的需求阶段:&/p&&p&测试人员已经能够开始做需求阶段的缺陷预防,保证需求是能够满足用户的原始需求,并且整个需求都是非常清晰和合理的,版本后期没有需求不合理或者需求不清晰的问题。&br&需要具备的能力或者知识:对于客户的使用场景非常清楚,能够在客户角度上面思考问题;有自己的一套需求分析的方法,最好是模型或者checklist之类的;非常好的分析能力,能够通过需求文档分析到可能潜在的问题。&/p&&p&3、设计阶段:&/p&&p&测试人员开始做设计阶段的缺陷预防,能够对于研发的整个设计方案非常清楚,能够根据研发设计文档里面的业务逻辑图自己能够站在测试的角度来画出一份让测试人员更加容易理解的业务逻辑图,并且能够发现研发在设计方案上存在的一些问题,并且指导研发进行修改。&br&需要具备的能力或者知识:比较深入的业务背景知识;熟悉开发使用的语言;业务分析和转换的能力;&/p&&p&&br&4、编码阶段:&/p&&p&测试人员开始编写&strong&单元测试&/strong&、&strong&接口测试&/strong&用例、测试工具或者&strong&自动化测试&/strong&用例,并且开始思考后面如何去更好的测试(更高的效率,更好的保证质量),并且帮助研发提前做好编码阶段的缺陷预防,甚至做得测试驱动开发。&br&需要具备的能力或者技能:熟悉开发使用的编码语言、能够对开发的代码进行静态走读、熟悉开发使用的编码语言的单元或者接口测试方法和框架、具备测试工具开发的能力、具备自动化的能力,良好的代码分析能力和&strong&用例设计&/strong&能力。&/p&&p&&br&5、测试阶段:&/p&&p&测试人员开始制定测试策略和测试计划、执行&strong&测试用例&/strong&、发现和定位bug、跟踪和回归bug,质量分析,有效的探索性测试等等,目的是花更短的时间来更好的保证质量。&br&具备的能力或者技能:制定策略和计划的能力、执行能力、分析和排查问题的能力,业务的理解能力,对代码的熟悉程度,模块的质量分析能力等等!&/p&&p&&br&ok,总结下上面用到的一些能力和技能,以及每种能力对自己的帮助&/p&&p&1、产品的商业理解能力--产品经理(马云、马化腾、周鸿祎等都是这样的人)&br&2、需求的分析能力和市场的理解能力--也是向产品经理方向发展&br&3、业务背景知识--能够让自己在该领域走的更远&br&4、开发使用的编程语言--这个应该是自己深入到代码级别一个比较基础的东西,对于自己对代码进行测试是非常有帮助的&br&5、业务的分析能力---养成这样的习惯后会有一套自己的分析方法,对于自己在测试领域的发展的很有帮助的,现在测试界的一些公共测试技术里面就有包含这些&br&6、单元测试能力--这个让自己走向&strong&白盒测试&/strong&工程师是很有帮助的,也是能够让自己跟开发走的更紧点&br&7、接口测试能力--应该是向单元测试的一个过渡,能够让自己更好的接触到业务逻辑&br&8、自动化开发能力和工具开发能力--这个就不用说了,现在已经有专门的自动化人员和工具开发人员了&br&9、用例设计和测试分析能力--测试人员一个很基本的能力,但是真正做好的其实比较少,如果用例设计的质量很高的人其他方面的能力肯定很不错,而且有了自己的一套方法后对于自己在测试领域的发展是很有帮助的,需要不断的总结和分析,将经验抽象为方法或者模型&br&10、执行能力--测试人员(应该是所有的&strong&工作&/strong&)都需要具备的一个能力吧,如果做好的话其实对自己的帮助也是比较大的&br&11、发现bug的能力--这个时候对于测试人员的发散思维很重要(个人觉得是衡量真正的测试人员一个比较最重要因素,没有之一),有些测试人员就是能够沉迷于此&br&12、定位bug的能力--其实这应该是测试人员一个很基本的技能,但是我们都是交给研发去做了,如果将前期的工作做起来的话,我们是应该具备这样的能力的&br&13、分析和排查问题的能力--分析能力是测试人员一个非常重要的能力,一个好的测试人员总是能够根据目前的一些现象发现一些本质上面的东西,并且有自己的解决问题的方法&br&14、制定策略和计划的能力--这个发展方向应该是项目经理或者管理方向吧,但是对于测试人员也是很有帮助的,对于自己从一个整理上面理解问题很有帮助&/p&&p&当然,以上这些能力测试人员不用每一项都掌握的非常熟练,可以根据职业发展方向归纳为如下几项:&br&1、产品经理&br&2、白盒测试工程师(叫开发测试工程师其实更加合适)&br&3、自动化开发工程师&br&4、资深的测试工程师或者测试专家(可能需要包括以上超过10个技能并且能力都要达到一定级别)&br&5、项目经理&/p&&p&其他的几点就不说了,这里重点说下达到资深的测试工程师或者测试专家(其实就是测试界的大牛)级别需要的一些条件吧!这个也是笔者一直比较欣赏的一个职业,可是目前这方面的人确实比较少,很多人半路走上了管理岗位!&/p&&p&&br&1、看下自己是否真的适合这样的职业(很享受去发现一些bug,特别是经过自己思考后发现的一些别人没有发现的bug),这个可以在刚进入测试行业就看出来&br&2、一个好的平台:从目前来看,很多公司是没有办法给一个测试人员提供&strong&学习&/strong&以上能力的机会的,建议是能够尽量找到这样的一个平台(当然也需要不断的证明自己是一个人才)&br&3、在一线测试呆尽量长的时间,并且反复磨练自己上面的一些能力(没有最高只有更高),这就是所谓的十年磨一剑,这样需要很大的勇气,但是在这个浮躁的行业里面做到坚持实际上是很难的,很多人都是耐不住寂寞的。如果你做到了你就赢了&br&4、不断的积累的和总结(总结是自己获得经验一个非常宝贵的方法,也是让自己进步更快的一个方法)&br&5、开始将自己的一些方法抽象出来,形成一些比较通用的方法,并且不断的尝试运用到实践中,证明这个方法是ok的,形成一些理论&br&6、完善,实践,推广,再完善,再实践,再推广.....相信这个时候,你已经是数一数二的高手了,再加上自己的一些推销自己的方法,提升自己的品牌意识,剩下的就不用说了,当然,学习无止境.........&/p&&p&————————————————&/p&&p&第二个问题,关于测试转开发的问题,这个其实不是问题,只要你从来没有放弃过写代码。&/p&
首先,其实题主的问题还是很实诚的,我刚开始做测试的时候其实也是这个心态,想转开发,也学习了很多的语言,个人觉得这是职业危机感的表现,挺好的,也相信题主不管去做开发和测试都会去不断的学习和进步。 好吧,正文来了,先回答第一个问题:测试究竟是…
谢邀,09年写过的一篇文章,希望对你有帮助。&br&&br&首先对于软件测试和软件开发的关系问题,首先要说明的是测试需要懂一些软件开发方面的知识,而这些软件开发知识里面最重要的又是数据库和SQL,结构化编程和脚本语言,这些是测试人员上升到一个新高度的重要内容。可以是软件开发转入测试,这个时候强的是软件开发方面的知识,但是若的是对业务和需求本身的理解,同时也容易卷入程序员的固有思维而不能从客户的角度来看待问题;也可以是先从测试和业务熟悉做起,后面逐渐需求一些开发方面的知识,包括数据库SQL和脚本语言,但是往往没有真正做过开发又很难理解结构化编程的一些基本规则。这里面都存在一个转换问题,都需要自己在这个转换的环节多去思考,转变思维,多多总结。&br&&br&其次测试最核心的内容是什么?做软件测试需要时刻的提醒自己来思考这个最重要的问题。软件工程书里面我们学过来,测试最重要的就是找出至今为止别人没有发现的Bug,找出尽可能多的有价值的问题,以最大限度的降低的缺陷泄露和现场故障。&br&&br&这个回答本身没有问题,不过我们还需要做一些更加深测试的思考,特别是做了测试一两年后更需要不断思考,测试的核心和关键点究竟在哪里?在这里我想谈两个比较重要的核心内容,一个就是拿到一个大的系统或复杂的业务功能后,这个时候第一个核心就是根据需求规格说明书进行测试分析,而不是一下切入到了测试用例和测试设计,测试分析的目的是让测试人员真正的理解需求和业务场景本身,测试有个重要的概念是测试场景,而测试场景则来源于需求场景。&br&&br&做测试分析的目的就是根据需求和业务流程梳理清楚我对整个测试流程的总体规划,搞清楚对于复杂的功能如何按一定的方法系统性的开展测试,如何更加有效的设计测试用例,如果加强测试用例和测试数据的复用,测试用例对需求和业务场景的覆盖等诸多问题。如果你还不能去考试测试分析,说明还在测试的一种初级阶段,完全照搬着需求规格说明书的测试用例是无法带来很好的测试效果和效率的。第二个重要内容要谈的是测试用例的设计问题,一条测试用例涉及到编号,名称,对应的需求点和业务规则,前置条件,测试步骤和预期输出和优先级等诸多内容,那带来的一个重要问题就是测试用例本身的核心是什么?其实这里我想指出的则是通过前期的测试需求分析后所规划的测试数据的准备问题,而测试数据准备的方法则来源于我们常说的黑盒测试场景方法,如等价类划分,边界值设定,因果分析等,这些都是为测试数据准备服务的,没有准备的测试数据预期的测试输出往往是一句空话,有了预先准备的测试数据测试的过程才是有计划和有目的的,真正准备了测试数据的人才谈得上在真正系统的使用各种黑盒测试方法。&br&&br&系统的规划和准备测试数据是系统化的进行测试用例的灵魂,你考虑了这点才会发现到,需求里面啰嗦了半天的内容往往仅仅需要1-2条测试用例概括即可,而需求里面只有一句话的业务规则往往则需要准备上十条甚至更多的测试用例来进行测试。如果在测试用例的设计上考虑到了这些问题,基本表示对业务深入理解和对测试方法已经灵活应用了。&br&&br&最后谈下成为一个优秀的测试工程师,首先你要转变思维,你代表的是用户,你是整个软件产品或系统版本发布的最后一关,对你的评价只有一个就是从你手出去的产品到了用户现场的缺陷情况,这是唯一的一个有价值的目标。如果连对自己的工作绩效如何衡量都还不清楚,更谈不上如何做好测试,因此对于测试我们会谈到一个重要的外延就是质量管理方面知识的学习,质量管理基础理论,质量管理七工具,6Sigma等都可能是测试中需要时常用到的方法和工具,需要去拓展这个外延知识,加深对测试工作本身意义的理解。同时优秀的测试工作师不仅仅是测试方法和各种测试工具的熟悉,更重要的一点需要意识到的是对某个业务领域业务的深入理解,没有理解无法做好测试,理解一些可以做单个功能模块的测试,全面理解才可能做集成测试和系统测试,你对业务理解的越深,就越容易测试出各种业务规则方面和数据方面的问题,到了这种层次后SQL和后台数据的查询就必不可少的,基于业务规则的数据校验测试是测试人员上一个新台阶的重要内容。
谢邀,09年写过的一篇文章,希望对你有帮助。 首先对于软件测试和软件开发的关系问题,首先要说明的是测试需要懂一些软件开发方面的知识,而这些软件开发知识里面最重要的又是数据库和SQL,结构化编程和脚本语言,这些是测试人员上升到一个新高度的重要内容…
正好最近在整理这一方面的知识以及常识想分享给大家,遇到这个问题就贴上啦,希望能帮助到大家&br&&br&&br&秋招已经基本结束,虽然还有正在进行的,也是尾巴了,或者就是一些补招的信息,再一次大规模的应该就是等待春招了,牛妹来给大家送上春招备战全攻略!&br&&br&首先特意为大家建立了一个春招备战群:,到时会为大家发布招聘消息以及其他福利~&br&&br&&p&如果秋招失力,原因一般如下:&/p&&ul&&li&刚开始没想到竞争如此激烈或者其他原因,总之,投递的比较晚,机会少之又少。&/li&&li&实力还不够,有待加强&/li&&/ul&&br&不管是因为什么,备战春招攻略都要从充实自己,查找内推,补招,校招,准备笔试面试这几个环节&br&&br&在这之前解答一下好多人都迷惑的问题:&br&&br&是该实习还是好好准备春招?&br&这个问题要根据个人情况来定,先来说现实的几个真实的例子吧:&br&&ul&&li&A同学根本就没参加秋招,一直在去哪儿网实习,转正一直都比较迷茫,但是他一直在实习,等秋招都过去了,去哪网那边给的答复是不能转正,他就内推的58,通过了直接进去了,签的三方,先去实习,毕业了直接进了58同城。&/li&&li&B同学在秋招中找到了工作,但是在次年的4月份临时通知他不给转正,这个时候的他只好继续寻找工作,参加春招并被录取了、&/li&&li&C同学在秋招中一直在实习,实习公司也答应给转正,这种一般都是不签三方的,一直实习到快毕业,回学校毕业回来之后被拥抱变化了,不给转正了,只能走社招了,但是社招会比校招还难。&/li&&li&D同学在秋招中拿到了offer并且都签了三方,但是公司临时裁员,寄出的三方都给退回,只能春招继续找了。&/li&&/ul&&br&&blockquote&这里面有好的有坏的,不好的我就不说是哪个公司了,说了这几个事情其实也是想说人生充满着不确定性,只有自己真正充实自己,自己真正有实力才可能在各种环境下都能脱颖而出。每个人的路都是自己选择的路,那么真的就是跪着也要走完。&/blockquote&&br&关于毕业还没有工作的tips:&br&这里要有一个心理预防,给大家心里有个谱,实习生为何每个公司都能招,但是正式的社招就严格了呢,因为社招是毕业后的人,这个时候公司招到你你就是一份子了,还要给你缴纳五险一金等等以及其他福利,其实反而是实习生的成本要少,所以社招很看你的经历经验以及各方面,几乎没有哪个公司会通过社招要一个刚毕业的大学生,除非补招等等,所以能在毕业前找到工作就一定要在毕业前弄好,千万不要拖到毕业后。&br&通俗点说,这个时候的毕业生的身份比较尴尬,比较夹生,要么就是要18届的,要么就是要有几年经验的。&br&&br&&br&那到底该这么选择才能尽量少的避免入坑呢?&br&&br&这个问题其实特别难回答,需要根据你自己的情况来定。&br&1、我们来想每一种情况最坏的打算,如果一直实习下去,平时肯定没有时间准备春招,还要做毕业设计,可能根本没有时间进行春招的准备,春招的时候也机会甚少,因为平时都在实习,有笔试面试也没法总请假去,更何况可能还过不了,最后实习公司不给转正,只能毕业自己找工作。&br&&br&这种情况如何尽量去规避呢?&br&首先如果真的是最坏的打算,我们就拼了,就喜欢这个公司,我们努力做,最开始谈的时候肯定会说到转正的问题,常见回答是表现好就转正,不一定转正,不转正,给提供转正机会,基本都能转正&br&&ul&&li&如果是回答表现好就转正,提供转正机会,基本都能转正这种:机会就还是很大的,只要你努力做到最好,并不断的学习,进步,基本上是可以转正的,你自己肯定也清楚自己做的到底怎么样,到底用了多少心力,所以一定要努力做到更好,而不是最好。&/li&&li&如果是回答不转正:那也就不用想什么了,都说了不转正了,你还强留,当然,如果你就是为了长点经验的,那可以,你有垫底的校招offer的公司,那完全没有问题,可以去。但是如果还没有靠谱的工作,那就还是算了,别浪费应届生这么好的资源,毕业了就不好找工作了。&/li&&li&如果回答是不一定转正,转正挺困难:那这种情况就看你自己了,如果你没有别的更好的选择,只能在这里的话那没办法,或者是你就想赌一赌,因为人生真的是存在很多不缺性性因素,那也完全可以,说不定会开辟一些不一样的人生,如果你是个保守派的人,那这种情况下可以离开另寻他处了。&/li&&/ul&&br&&br&2、如果我们不找实习,全力准备春招,春招没找到,最后也只能毕业之后自己找工作。&br&&br&这种情况如何尽量规避呢?&br&现实来讲的话,如果好好准备春招,不会找不到的,因为还有一段时间的。嗯,现实确实是这样,如果好好找,真的能找到的。&br&&br&所以只是最坏的情况,现实中我们努力的话不用太过担心的。&br&&br&&b&一、充实自己-准备阶段&/b&&br&&br&&p&时间:11月-次年的2月&/p&&p&待做:这段时间的校招比较少,需要看自己是什么情况,如果是因为实力不够,那建议这段时间就别参与那些梦寐以求的大公司的补招了,不光耗费精力, 而且最后反倒什么事情都做不好,还不如专下心来去好好准备春招&/p&&br&如果你是因为错过了一些公司的招聘,感觉实力确实是够用的话就可以多留意一下 。&br&&br&强烈建议自己制定一个根据自己情况而专属的计划,并且一定要按照计划去实施!从以下几点来看:(根据自己的不足和优点结合着合理安排时间)&br&&br&项目经历+基础知识&br&&br&项目经历:&br&这段时间真的建议好好完善一下自己的项目经历,你自己肯定清楚自己的项目经历到底行不行,如果不足,推荐这个课程,如果想优惠,可以私信我要优惠码&a href=&///?target=http%3A///activity/project-courses& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&项目课程报名_牛客网&i class=&icon-external&&&/i&&/a&&br&另外可以参加这个栏目-编程之美&a href=&///?target=http%3A///discuss/19222& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&【编程之美04期】程序员怎样找到程序媛_技术交流_牛客网&i class=&icon-external&&&/i&&/a& 每周分享源码,每周一个项目,提高你的编程能力以及项目经验。&br&&br&&p&我们想做到面试前和面试中都做到百分百好,那一定是要有个这样的顺序的:&/p&&ul&&li&&p&筛选&/p&&/li&&li&&p&实践&/p&&/li&&li&&p&总结&/p&&/li&&/ul&第一步:筛选&br&&br&&p&筛选要遵循两个原则:&/p&&br&&ul&&li&&p&以终为始&/p&&/li&&li&&p&循序渐进&/p&&/li&&/ul&&br&&p&什么是以终为始呢?&/p&&br&&p&要看到你做某件事情的目的,比如,我们左项目就是要先看下我们的目的,是想练习什么?可以从以下四个方面来思考:&/p&&br&&ul&&li&&p&语言/框架&/p&&/li&&li&&p&工具&/p&&/li&&li&&p&协议/模式&/p&&/li&&li&&p&产品/职位&/p&&/li&&/ul&&br&&br&&p&很多人读书的就选择C语言,这是大学读书的时候的大多数人会选择的,然后就觉得学了c语言就只能够做c语言的项目,其实不是这样的,像java,python都是市面上比较流行的语言,而且也是都可以用的,当然我们做项目的目的性一定要明确,也就是说你做项目的这个目的,比如我做项目就是想练习c语言,那我就根据c语言去找项目,,我就是练习python,那就用python做项目,因为语言都是相通的,还有就是框架,很多人用自己会的语言写的话就很难。&/p&&br&&p&所以要找一个语言框架。还有就是不想练习语言,不想练习框架,想练习一些模式,协议这种,因为好多面试官会问协议,设计模式之类。还有很多同学练习就是练习了一些工具,比如IDE和一些其他的工具等等。还有一些同学的目的性更强了,比如有的同学就是以后想做游戏的引擎开发,那就更要根据目的来做项目,不能做那些边边角角的项目了,所以是做java工程师,还是游戏工程师,还是网络工程师等等,所以一定要针对自己的这种目的来选择项目的开启。框架有java的MVC,,工具的话git,mango,hadoop等等等等。&/p&&br&&p&可以参考的点如下:&/p&&ul&&li&&p&Spring,Flask,React&/p&&/li&&li&&p&Git,SVN&/p&&/li&&li&&p&HTTP,FTP,数据库&/p&&/li&&li&&p&运维,前端,后端&/p&&/li&&/ul&&br&&br&&p&循序渐进这个很好理解,不管做什么事情都要这样:&/p&&p&我们做项目要有这几个因素所在:&/p&&ul&&li&&p&难度&/p&&/li&&li&&p&兴趣&/p&&/li&&li&&p&造轮子&/p&&/li&&li&&p&创新&/p&&/li&&/ul&&br&&br&&p&一定要循序渐进,一步一步的走过,别想着一步登天,或者有的同学最开始是模仿的方式开始的,这也都是可以的。&/p&&br&&p&还有就是兴趣,真的喜欢就会去花很多时间去做,比如我之前一直就做的游戏,因为我喜欢游戏,做的过程中自己就可以玩,所以就会有好多时间投入在这个上面。&/p&&br&&p&轮子理论,也很好,看到别人造轮子,我也喜欢,那我也去造,其实是可以的,从这个开始起步,完全没有问题。当然,这个是刚开始的时候,如果什么都不会的情况下,如果你都已经很有基础了,还这样,就属于懒惰了,而且也不会有进步。&/p&&br&&p&创新也是必要的,任何时候没有创新就没有了动力,在原来的基础上进行创新,那也是你的东西,也会有成就感,并且学习到很多知识。&/p&&br&&p&筛选的有几个类&/p&&ul&&li&&p&游戏,编辑器&/p&&/li&&li&&p&网站,app&/p&&/li&&li&&p&爬虫,库&/p&&/li&&/ul&&br&&br&第二步:实践&br&&br&&p&在实践这部分我分为两种人:&/p&&ul&&li&&p&新手上路&/p&&/li&&li&&p&老司机&/p&&/li&&/ul&&br&&p&新手上路&/p&&ul&&li&&p&先点后面&/p&&/li&&li&&p&先模仿后改进&/p&&/li&&/ul&&br&&p&先点后面(比如给实习生一个任务,让你先做个爬虫,好多同学就会想好多,我要做个框架,我要前后分层之类的。想了好多就会不知道从哪里入手,最后的结果就是什么也做不出来。所以新手上路一定要先点后面,先看好项目需要的知识点,比如想做一个聊天的项目,先把聊天的协议自己顶起来,然后网络连接我们这边是用http还是什么先来进行拉起来。或者要做一个游戏工具,先不用想游戏怎么做,先想怎么把一个声音播出来,怎么把某个3d的东西在页面上显示出来,怎么能够在这里面用物理的引擎,先把这些点做好,如果你把各个点都做好了之后,这个时候再去思考这个面,怎么把这个点连起来。)&/p&&br&&p&先模仿后改进(先模仿有个好处就是,我做做不出来,会很郁闷,甚至找不到可以被教的一个点,这个时候我们就可以模仿别人的项目,比如别人用的是c#写的,我可以模仿它来写,这个时候模仿完,我们就可以自己改进,模仿完有了基础,之后改进会有个提升的过程。对于新手来说这些都是至关重要的,就像我之前做的FTP模式,我就是模仿,之后再改进。)&/p&&br&&p&老司机(老司机就是有一定基础了,做了好多项目了,我们要去突破好多难点。)&/p&&ul&&li&&p&核心难点&/p&&/li&&li&&p&从架构到模块(模块怎么分的,从上到下,这些就是老司机的区别)&/p&&/li&&/ul&&br&&p&我们学习和做项目的过程中查找和参考的资料的先后顺序建议为:&/p&&br&&ol&&li&&p&找资料顺序&/p&&/li&&li&&p&官方文档,PFC,权威书籍&/p&&/li&&li&&p&Google,StackOverFlow&/p&&/li&&li&&p&博客&/p&&/li&&/ol&&br&&p&最好的就是看官方文档,因为没有任何东西比这个更权威了,我们经常会去google,但是其实出来的是博客,都是别人总结出来的,如果后面有错误的话,还要重新学习,很麻烦的,好多都是自己片面的总结,容易影响大家。所以一定是优先查官方文档。有的同学说看不懂官方文档,这个困难一定要克服,不光学了英语,还能真正的学习知识。&/p&&br&&br&第三步:总结&br&&p&总结要分为三点:&/p&&br&&p&核心难点和结果&/p&&br&&ul&&li&&p&核心算法&/p&&/li&&li&&p&SDK,框架&/p&&/li&&li&&p&开发量,准确率&/p&&/li&&/ul&&br&&p&总结的过程真的是一个非常重要的过程,好多同学都会忽视这点,总结的过程是你再学习的一个过程,不光是总结给自己,在面试的过程中也是起了非常重要的作用,因为面试官经常会问你在过程中遇到了哪些困难,用了哪些框架,用了哪些算法,这些都是非常关键的,而且如果你真的很好的总结之后,到了公司,让你换语言,你可能三天就搞定,当然,要配合官方文档。&/p&&br&&p&扩展和深入&/p&&br&&ul&&li&&p&单机--》网络&/p&&/li&&li&&p&多线程&/p&&/li&&/ul&&br&&p&做的过程一定要有所拓展,比如我之前做了个单机版的俄罗斯方块,后来又做了一个网络版俄罗斯方块,之后又做了一个人工智能俄罗斯方块,最后做了一个游戏平台,把这个俄罗斯方块欠了进去。&/p&&br&&p&资料总结&/p&&ul&&li&&p&博客小日记&/p&&/li&&li&&p&总结是第二次创作&/p&&/li&&/ul&&br&&p&你写个博客小日记,还可以让大家来进行交互,可以对自己的项目进行一些修改,也是很好的。&/p&&br&&p&牛客网上面有看到好多同学投递简历的一个项目,其实在我看来好多都是玩具一样的,就是一个什么系统,还有好多就是导师的一个项目,在简历中一下就能看到,所以如果是你自己做的项目,一定要把自己做项目的时候用到的知识,和其他技术的一些比较等等,所以一般的项目在简历中很容易就看出来,所以也告诉大家一个好消息,即使是211,985的好多同学项目经历这一块其实好多水的,中国对平凡的人更多,所以所有同学都不用灰心,只要你这段时间真真正正的思考去做一个项目,你会在秋招的时候非常抢手。一分耕耘一分收获,只要你多一些努力,你就能够成为行业前端的人,当然,成为顶端的人,还要再努力。以好多人努力的程度,还没到拼天赋的资格,所以不用惧怕985,211,这个不是绝对的,当然,如果你们两个水平一样,人家一定是要985,211的而不是你,所以,努力就好。&/p&&br&&p&项目做好了,接下来我们来说一下面试中怎么讲项目经历&/p&“面试中怎么讲项目经历&p&做到两点你就赢了&/p&&ul&&li&&p&胸有成足&/p&&/li&&li&&p&差异化&/p&&/li&&/ul&&br&&p&项目面试&/p&&br&&p&准备了这么多,非常重要的也是面试环节,只有更好的跟面试官交流,你才能找到自己喜欢的工作。&/p&&br&&br&&p&差异化,就是你一定要和别人不一样,一个面试官一天面试n个人,好多人的项目其实都很水的,他已经听了一万遍了,再听你的,和别人还是一样,没有任何优势。&/p&&br&&p&胸有成足,就是让面试官觉得你很吊,就是在尊重面试官又不傲慢的同时让人觉得你很吊,这也是一门艺术。&/p&&br&项目--面试官注意点:&br&&br&&p&我作为面试官拿到你的简历,虽然我看一下,可能觉得你的项目像玩具,但是我还是会问你,因为只是表面上看起来是这样,可能你这个是有特别之处的,所以也不用担心这一块,机会会留给每一个人,抓住他才是王道。&/p&&br&&p&能力&/p&&p&你了解哪些部分(看家里是否造假,会看你用了哪些框架,用了哪些技术,所以之前的总结就是很重要了,刚刚为什么要让大家看官方网站,所以一定要了解一下各个框架,里面分别是做什么的)&/p&&br&&p&你深入了解哪些(我一定要深入了解,比如,好多人都说是用的spring,我要看你是否有深入了解,还是说知识套了一些框架,比如这里面有哪些深入了解的这种问题,怎么实现一个高效的列表等等)&/p&&br&&p&你横向了解哪些(比如有些扩展,就比如刚刚的俄罗斯方块的例子,面试官会觉得,这个小资很厉害,不光光自己去了解一些东西,还会去扩展,这个基本上就在面试官那里得到很大的加分。)&/p&&br&&p&潜力&/p&&p&你怎么解决问题(做项目的时候所有人都会遇到问题,碰到之后,怎么解决的,思路是什么,如果每一套都是差不多的,我会相信你,你这个方法论是可行的)&/p&&p&你如何举一反三(会从你的沟通里面去了解,你以前看到的点,你看到类似的是怎么解决的,遇到一个问题,让我想起了另外一个是怎么做的,怎么解决的,也就是举一反三,融会贯通)&/p&&br&&p&你怎么优化项目(和上面的深入了解是一样的其实,所有人都是金字塔形的,都是金字塔的地步,没有深入了解,不深入了解的话你和所有人都一样,没有差异化,优化的话,你是有思考力在里面,比如网络编程,功能都已经实现了,如果你跟我说我做了一些优化,让所需要的时间更少,结果不变,准确率提高就能提高公司的收入,你不光是考虑技术,还考虑一些公司的一些实际的问题,优化的点和好处,也会让面试官刮目相看)&/p&&br&&p&你如何快速学习(因为现在技术更新太快,你用多少时间快速学习了东西,你这个潜力让面试官看到,也是一个很大的加分项)&/p&&br&&br&&p&注意点&/p&&ul&&li&&p&切勿夸夸其谈&/p&&/li&&li&&p&真诚有理有据&/p&&/li&&/ul&&br&&p&一定不要吹牛,面试官虽然当面没有戳破你,但是其实他都是能看出来,少一点套路,多一点真诚,很重要&/p&&br&&p&博客网站&/p&&ul&&li&&p&权限控制管理&/p&&/li&&li&&p&数据库安全&/p&&/li&&/ul&&br&&p&(好多人都做过这样的项目,所以一定要多多思考你和别人不一样的地方)&/p&&p&从以下几点思考&/p&&ul&&li&&p&app&/p&&/li&&li&&p&SDK细节&/p&&/li&&li&&p&自定义控件优化&/p&&/li&&li&&p&方案对比&/p&&/li&&/ul&&br&&p&(一定要真的了解这些细节,这样才能真正做了这些东西,你还可以看别人怎么做的,和别人去比,去学习,看到自己的缺点,一开始会发现,自己就是个渣,这个是必经之路,也是你进步的一个过程)&/p&&br&&p&算法&/p&&ul&&li&&p&坑和解决思路&/p&&/li&&li&&p&灵感来源,融会贯通&/p&&/li&&/ul&&br&通用案例讲解&br&&br&&br&&p&这个其实是模拟了smart登录模拟做了一遍,因为是个智能聊天,他可能引入了一个新的图灵机器人进行了对接。&/p&&br&&p&对于这个项目应该怎么讲,首先说闪光点,我了解什么,了解python的网络库,bulabula,第二,因为我做的是一个smartqq,我肯定是了解他的协议嘛,比如chrome,我是通过什么工具了解到这个,又是怎么做的,最后,是用的二维码登录的,那就要说一下二维码这块怎么做的,用的什么算法解决的这个东西,包括http协议,二维码怎么传的,push是怎么用的。&/p&&br&&p&最后,qq聊天收发人消息,肯定要解析嘛,有发图片有发语音的,是怎么解析,还有跟图灵机器人对接的,那又是怎么对接的。最后,优化方面,比如说,我一台电脑同时支持10个qq,让多线程可以一个电脑跟100个人聊天,用的异步的方式,而不是同步的方式,用了什么方式处理出错等等等等,做项目的时候可能没想过这些东西,但是一定要提前想一下这些东西。&/p&&br&&p&这样在面试的时候才能口若悬河,面试官会看你什么都会,协议也会,技术也会,一个项目就搞定了,面试官就安全镇住了,就是围绕差异化和。。的这两个中心思想就可以了~&/p&&br&&br&基础知识备战列表:&br&&br&必备技能&br&&br&&p&1.扎实的计算机基础知识&/p&&br&&ul&&li&&p&操作系统&/p&&/li&&li&&p&算法和数据结构&/p&&/li&&li&&p&网络和数据库&/p&&/li&&/ul&&br&&p&这些大学课程都有涉及哦,想深入了解的可以看书做深入研究,还可通过日常的实践,做项目,比赛中参悟。&/p&&br&&br&&p&2、熟练的编码实践能力&/p&&br&&p&对于给定的技术问题,可快速通过编码来实践&/p&&br&&p&这个就必须要实践啦~打代码打到手软你就赢了!&/p&&br&&br&&br&&p&3、思维敏捷,举一反三&/p&&br&&p&以点带面,对相似问题能灵活解决&/p&&br&&p&多思考!多思考!多思考!&/p&&br&&br&&p&BAT等IT名企对人才的需求&/p&&br&&p&1、全面的计算机知识&/p&&br&&p&除了基础的知识外,还要了解正则,json等业界标准规范&/p&&br&&p&2、岗位匹配的专业技能&/p&&br&&p&了解主流的架构,框架,开源组件&/p&&br&&p&3、快速学习,快速解决问题的能力&/p&&br&&p&对业务需求抽象为代码架构的能力,复用已有组件搭建可扩展的系统的能力&/p&&br&&br&&p&命题趋势&/p&&br&&p&1、代码熟练度&/p&&p&写代码是一切开发的基础,通过简单的字符串操作来快速了解应聘者动手编码的熟练度。&/p&&br&&p&2、逻辑思考力&/p&&p&开发技术日新月异,核心是逻辑思考能力。通过博弈性的题目来考察应聘者的思考力,考察他们如何通过编程思维来解决问题&/p&&br&&p&3、代码优化技巧&/p&&p&对于互联网的产品用户数从0到亿可能就是1年的时间,面对这种海量高并发的用户请求,开发人员必须有优化代码的技能,让更少的机器做更多的事情,让自己的代码跑的更快&/p&&br&&br&&p&综上给大家些学习建议,帮你备战春招!&/p&&br&&p&初期:&/p&&p&从编码熟练度开始抓起,多写代码。通过自己掌握的编程语言去编码解决一些小问题开始,熟练编程思维的实践能力&/p&&br&&p&中期:&/p&&br&&p&根据个人爱好或者职位需求挑选特定的技能方向进行项目的开发,熟悉工程开发&/p&&br&&p&后期:&/p&&p&把工作中碰到的难点作为机会,多思考多尝试自己的解决方案,最终提高自己的优化和架构能力&/p&&br&&br&后面牛妹会根据具体的岗位来给一个技能图谱给大家更新&br&基础知识&br&&br&java&br&&br&安卓&br&&br&ios&br&&br&c++/c&br&&br&机器学习/数据挖掘&br&&br&&br&测试&br&&br&&br&&b&二、完善简历&/b&&br&时间:2月末&br&&br&这个时候正是完善简历的好时候,不要小瞧这份简历,有多少人有很大的实力却都输在了简历上了&br&&br&&p&很多人发了简历,然后就没有音讯了,根本不知道是什么原因。&/p&&br&&p&投简历的时候,尤其是技术的简历,第一个看你简历的应该是hr,并不是技术经理。这就存在一个问题,那就是我们的简历一定要把握hr的命脉。&/p&&br&&p&hr在看简历的时候一般都是看一些关键点。hr在看大家的简历的时候一般看的都是千篇一律,那如何能脱颖而出呢&/p&&br&&p&一般大家发简历都会有个封面,或者有的会放上座右铭,这个其实没有太大的意义,不要太另类就好。有的还会有推荐信和求职信,但是不一定是真正需要的,有的还会有英文简历,成绩单,荣誉证书等等等等,你弄成非常精致的传给了hr,最后就六七页了。&/p&&br&&br&&p&但是hr真的想看这些么?hr真正想看什么!&/p&&br&&p&关于简历&/p&&br&&p&彩色打印和封皮到底有没有必要?&/p&&br&&p&先说彩色打印的事情,这个一般就显示了你比较看重这个公司,你比较尊重这个岗位,但是其实hr看简历的时候都是成千上万的,容易产生色盲的感觉,根本对颜色没有什么敏感度,更看重的都是你的内容,一个简历也就看10秒,所以不用花这个金钱去非要弄成彩色的,只是说没有这个必要。&/p&&br&&p&封面的话也是完全没有必要的,精美与否也没有关系,从来不看的,而且反而增加了麻烦,hr会直接扔进垃圾桶。英文简历也是没有必要,除非是应聘外企那种,但是也不要直接翻译过来,最好让学习英语的同学帮你润色一下。&/p&&br&&br&&p&成绩单需要附在简历一起发么?&/p&&br&&p&成绩单也没有太大意义,除非你特别特别优秀那种,但是这个求职的时候没有必要的。证书之类的可以以文字的形式附在简历中。照片的话这个看你自己的情况,我说的是技术哦,如果你是非常漂亮或者帅气,你可以放照片,正常的话不放是可以得,放上还有可能会引起反感。&/p&&br&&br&&p&照片需要放么?&/p&&br&&p&艺术照更不要弄了,这样有可能在面试的时候,造成一种落差,但是如果是别的岗位还是建议放一个漂亮的照片。&/p&&br&&p&经常犯的错误&/p&&br&&p&下面就把经常犯的错误跟大家说一下,有些同学可能为了个人隐私写了张先生,这个完全没有必要的哈,对于应届生这个是一定要写自己的全称。性别上,最好是写的,女生也无需回避,不可否认,很多岗位可能对女生要的不太多,但是在简历上完全没有必要回避,这个反而会减少不必要的麻烦&/p&&br&&br&&p&年龄党员这种信息用写么?&/p&&br&&p&年龄的话也没有必要回避,学历是一定要写的,这个是考察的重点。政治面貌的话,一般企业是不在乎的,除非是去那些国企或者中央的机构这种要写,如果你不是党员,那就不用写了,不建议在简历上写对自己不利的东西,除非必填。&/p&&br&&p&身高体重需要写么?&/p&&br&&p&身高体重,健康状况都没有太多意义,教育背景,建议从大学的时候开始写,不要写高中之前的经历,没有必要。&/p&&br&&p&求职意向&/p&&br&&p&对于求职意向,毕业生就是一张白纸,所以你的求职意向和规划这个不是特别在意,主要看你的潜力,后期进行培养,但是第一份工作de性质很重要,你自己到底适合做什么,到底能做什么,这个对你一生很重要。&/p&&br&&p&我在清华做招聘的时候看到一个简历,他本科和硕士都学的计算机,当时他拒绝了我,说他觉得很枯燥,我认为这是很可惜的,学了好多年,最后没有走这个方向还是很可惜的,不能说这个对还是错,总之,要清楚你内心真正想要什么。&/p&&br&&p&工作经验和社会经验&/p&&br&&p&工作经验和社会经验这一块hr是很看重的,希望你门都能把自己实习和社会经验写下来,但是千万不要编,因为面试的时候会问你这些东西的。课程可以不写,因为大多数的同学的课程都是一样的,但是可以写与应聘职位相关的课程,这个还是有必要的&/p&&br&&p&计算机和外语水平&/p&&br&&p&关于计算机水平和外语水平,好多人都问我这个级别不高,会不会影响啊,我告诉你哦,这个不是判断你的一个依据,不代表你的真正水平。外语水平的话如果你有什么奖项你可以写上,四六级这个四级肯定是要过的哈&/p&&br&&p&爱好和专长&/p&&br&&p&爱好和专长:最好是写上与自己岗位相关的爱好和特长。我们呢hr参考的最关键的点,无关的爱好还是无所谓的&/p&&br&&p&奖励证书,科研成果&/p&&br&&p&奖励证书,科研成果:可以在简历中写,但是没有必要单拿出来&/p&&br&&p&手机号和邮箱&/p&&br&&p&手机号和邮箱,是一定要写的,手机号是公司联系你的时候必须需要的,邮箱是发offer的时候给你的,一定不要填错,另外就是你如果有自己的个人网站的话,还是希望多写上,这个是锦上添花的。&/p&&br&&p&简历的基本特点说完了,总结来说,要简单,抓住关键字,还有就是用事实说话,不要用空洞的词语,或者少写。&/p&&br&&p&应聘技巧&/p&&br&&p&招聘的途径:校园招聘,网络招聘,社会招聘,内推&/p&&br&&p&校园宣讲会或者校园招聘,如果去了的话肯定是对这个学校的同学很认可的,有的人可能会问,如果我不是这个学校的学生,可不可以投简历,这个是可以得。社会招聘这个逐渐在缩水,网络上面都是非常火热的,中华英才网等,现在很多新起之秀如牛客网,拉勾网,应届生求职网等等,你可以直接在这里进行,还有就是容易忽略的就是论坛,这里会更有针对性的发布工作岗位信息。内推也是很好的选择,可以更高效的投入给技术老大。&/p&&br&&br&&br&&br&三、招聘进行时&br&&br&时间:3月-4月&br&备战:时刻关注招聘信息&br&招聘信息来源:&br&1、靠谱但是不容易进的:各个公司的官方网站,官方微信&br&(这里往往是企业真正想找人,但是竞争也会特别激烈,也有可能是公司想搞事情,招的特别少或者有一些硬性要求只不过没有说出来,总之竞争激烈)&br&2、靠谱且更容易进的:第三方,如牛客网&br&(因为很多部门直招或者真正有需求的不是为了搞事情的一般会在论坛里面发,这种知道的人反而不多,看到了及时投递了,合格了也就被录取了 )&br&&br&3、靠谱且可能有一些反馈:师兄师姐&br&(不是那种大批量的内推,而是真正认识的师兄师姐,如果是网上的,一定是那种真正的内推,而不是大量的内推,这里要区分好。)&br&&br&4、其他基本都不太靠谱了,尤其注意的是收费的,没有任何招聘需要收费的。&br&&br&&br&春招的大概流程:&br&大致上和秋招是一样的,大规模的春招完全就是和秋招是一样的,也是要简历-笔试-面试-offer,也有一些是不笔试,简历过了直接面试的。&br&&br&笔试tips:&br&&br&A
选择题&br&选择题一般是15-40道,每个公司的情况是不一样的,考察的知识点就是根据你的岗位来定的,还有一些相关基础题,比如数据结构,操作系统,计算机网络等等。&br&&br&需要注意的问题:&br&1.时间&br&极个别的公司有专项的时间限制,比如一共120分钟,选择题必须在30分钟内完成,之后强制进入下一个题型,所以要提前看好有没有这个时间限制,方便提前分配好自己的时间。但是大多数还没有这种限制,所以要安排好的时间,自己分配好多久做选择题,多久做编程题。&br&&br&2.顺序&br&有的公司在做选择题的时候是不可返回上一题的,所以这个时候要在时间安排妥当之后确认好自己的答案是否正确,以免做过之后又想返回重新做。建议在考试之前熟悉系统,一般以模拟笔试的形式,如果不能提前熟悉系统,那就做好充分的心理准备,在时间合理的情况下,每一道题目都确定了再做下一道,没有特殊情况下,就不要返回上面的题目了,耽误时间还影响思路。&br&&br&3.题型&br&选择题可能有单选题和不定项选择题,所以一定要在答题之前看清楚,到底是不定项还是单选,以免影响笔试成绩。有的系统提示的很明显,有的不是很明显,不管怎样都要仔细看。&br&&br&B
编程题&br&编程题一般是三道,综合考察编程能力,难度也是逐渐增加的,关于系统的使用一定要提前熟悉一下(传送门:《OJ(编程在线判题)入门介绍》牛客网免费课程)&br&&br&编程题和编程系统,一般需要注意的问题如下:&br&&br&循环输入输出处理常见问题&br&&br&1、为什么需要循环输入输出:通常来说OJ对于每道题里面有.in和.out文件,分别表示测试数据的输入和输出。如果某些编程题的所有数据都只做在一个.in和一个.out中,这样就会变成多组测试了,所以需要提交的代码中循环处理。&br&2、处理方法:其实这个问题可以避免,就是编程题后台每个样例做一组对应的.in和.out文件,这样就变成单组测试,代码就不需要循环处理,但是平时练习的题目质量不一,这个问题都会出现。代码里面循环处理了即使是单组测试也会完全没问题,所以为了偷懒,可以全写成循环处理。&br&3、还有一个坑:但是这里会发生一个问题(十分常见!!!!),如果测试数据是多组的,但是恰巧你代码里面需要些标记数组,map,set等,在循环内一定记得清空,不然可能会产生前面的测试样例影响了后续数据的答案。&br&对于各种语言的一些基本知识&br&做编程题强烈建议使用C/C++,做编程题强烈建议使用C/C++,做编程题强烈建议使用C/C++,做编程题强烈建议使用C/C++&br&重要的事情比三遍再多说一遍,下面说说具体理由:1、出题人通常会使用C/C++编写标程,数据也是由标程制造的,所以使用跟出题人一样的语言会比较稳妥&br&2、C/C++效率比较高,通常来说一般OJ对于一道题目的时限限制会区分C/C++和其他语言,通常处理方式是假设C/C++时限是1s,其他语言就会给2倍时限,甚至更多。&br&&br&3、关于cin cout和scanf printf。做题的时候尽量使用scanf printf。下面告诉一个小常识,不要惊讶:cin cout比scanf printf慢20倍左右!!!!!!!&br&一旦遇到大数据量,光是读入就有可能跪掉。&br&你或许可以使用std::ios::sync_with_stdio(false); 这条语句关掉scanf和cin的同步,加快效率。但是即使这样cin还要慢5倍左右,而且一旦使用了这条语句,scanf和cin混用可能就会造成一些奇怪的错误&br&4、Java相关:Java整体效率大概比C/C++慢2~3倍,但是Java写编程题也没什么问题,主要就是处理好各种输入输出的情况。&br&5、python等等其他语言,做编程题真心不建议使用这些语言,要么效率低下,要么会有些更深的坑。&br&&br&关于输出格式&br&格式问题经常令人抓狂,其实主要都有几个常见的坑&br&1、行末空格:比如我输出需要打印多个数需要使用空格分隔的时候,我们循环使用printf(&%d &,x);这种会很方便,但是这样会导致行末多一个空格,后台系统会严格比对你的输出和.out文件,这样也会被判错误&br&&br&2、换行问题,对于每个样例,建议输出完全之后都换行一下。对于一些题目,可能就是不换行就导致了后面输入数据错位,那就肯定不可能过了。&br&关于时间复杂度分析&br&&p&通常来说一般的系统1s能跑的算法量级是不足1e8的,所以做题的时候评估算法效率很重要,直接判断你的做法能否通过,当然这是以C/C++为标准的,其他语言自己乘个时间倍数。。。&/p&&br&举个例子,比如题目n = 1e5,那么我就可以很敏感的知道我的算法需要一个 O(n) 或者 O(nlogn)。平方复杂度直接拜拜!&br&最后关于 &我本地能通过,交上去就是不对&&br&&br&这个问题很蠢!通不过就是有一些问题。一个是要累积经验,分析到底可能出现的问题在哪里。另外不要使用一些奇怪的函数和行为。之前有见过有人使用了windows和linux平台那个功能的函数名都不一样的奇葩函数。 如果你使用C/C++,最好别使用VS来写算法code,这个默认是MS的,一般OJ上面编译器都不会是这个鬼。&br&&br&C
问答题&br&问答题一般前端,测试类的考察的比较多,就按照自己掌握的回答就好。&br&需要注意的问题:1.拍照上传很多系统在问答题这块是支持拍照上传的,即你可以在纸上回答,之后用手机拍照并上传到页面上,一般不需要提前熟悉系统,能提前熟悉系统更好了,页面一般会提示的很详细,按照提示做就好。&br&2.格式问题在回答问答题的时候不管是选择拍照上传还是直接在页面上回答,都需要注意格式问题,一个好的有条理的格式会让人一目了然,也会给你很大的加分的。&br&&br&D
注意事项&br&最后,讲几个注意事项和紧急状况的处理办法&br&&br&1、一定要提前适应系统找工作的时候,好多同学心理上非常重视,但是行动上却缺乏足够的重视,不去参加模拟测试,导致了考试的时候,不会用或者不熟悉操作,出现各种使用问题。&br&2、提前熟悉考试规则如开始提到的那些问题,能不能中途上厕所,能不能本地编译,能不能退出页面,一类题型答完提交后能否修改,编程题如何判分等等,这些都是需要在参加模拟考试的时候要了解的,因为各家规则都不尽相同,所以要尽量去提前了解。&br&3、提前熟悉题目类型有些企业在发送笔试通知的时候会介绍考试类型,但是更多的是没有题。要想提前熟悉考试类型,一种方式是去参加模拟考试,还有一种方式就是去做一下往年的题目,这些题目牛客网比较多的,可以提前练练手(传送门:【IT题库】笔试练习_C++Java前端笔试面试题)&br&4、出现紧急状况了怎么办有时候因为网速原因,或者浏览器原因,或者其他原因,会出现一些突发状况,黑屏,自动提交,姓名或者电话错误等等,这时候你需要尽快联系考试方,如果客服能及时回复就可以网上求助,如果回复不及时,最好直接打电话,千万不要这时候去发邮件,效率太低。所以,在考试前,考生最好先准备好客服的联系方式,不要等到出了问题才去找。&br&&br&面试tips:&br&&p&面试的流程就是简历筛选-笔试/上机-技术面-技术二面等-hr面&/p&&br&&p&面试的注意事项&/p&&br&&p&面试的准备&/p&&br&&ol&&li&&p&了解公司发展,应聘职位要求,工作内容&/p&&/li&&li&&p&穿着得体。这里穿日常的就可以了,干净整洁就可以,对于技术人员的要求就是这样了。&/p&&/li&&li&&p&提前10分钟到场。&/p&&/li&&li&&p&带纸笔&/p&&/li&&li&&p&注意礼节&/p&&/li&&li&&p&准备好自我介绍&/p&&/li&&/ol&&br&&p&面试过程中的礼节&/p&&br&&p&进门前先敲门&/p&&p&待人从容有礼貌,不要唯唯诺诺,也不要过于傲慢。&/p&&p&眼睛平视,目光接触,面带微笑&/p&&p&神情专注,手势不宜过多&/p&&p&说话清晰,音量适中&/p&&p&前30秒第一印象很重要&/p&&br&&p&技术类招聘的常用办法&/p&&br&&p&对于hr来说,技术一般是一对一面试,分为结构化面试和非结构化面试。&/p&&br&&p&对于应届生来说,更多的会问你学校的经历等&/p&&br&&p&结构化面试&/p&&br&&p&应聘者-职位相同评价标准--相同程序/问题--既定考察:求职动机,沟通能力,交际能力,反应能力,思维方式,情绪控制能力等。&/p&&br&&p&非结构化面试&/p&&br&&p&根据:考察目的+应聘者的简历&/p&&p&特点:随意性的询问&/p&&p&提醒:可能就某个问题深入了解,会提出挑战性的问题&/p&&br&&p&大多数以结构化为主&/p&&br&&p&应届生面试考察内容&/p&&br&&ul&&li&&p&仪表风度&/p&&/li&&li&&p&专业知识&/p&&/li&&li&&p&实习实践经验&/p&&/li&&li&&p&口头表达能力&/p&&/li&&li&&p&综合分析能力&/p&&/li&&li&&p&反应能力与应变能力&/p&&/li&&li&&p&人机交往能力&/p&&/li&&li&&p&自我控制能力与情绪稳定性&/p&&/li&&li&&p&工作态度&/p&&/li&&li&&p&上进心,进取心&/p&&/li&&li&&p&求职动机&/p&&/li&&/ul&&br&&p&应届生常见面试问题&/p&&br&&p&这些都没有统一的答案,但是可以提前准备有一些,有个谱&/p&&br&&ul&&li&&p&介绍下自己&/p&&/li&&li&&p&个人优缺点&/p&&/li&&li&&p&最欣赏朋友哪些优点&/p&&/li&&li&&p&家庭成长环境&/p&&/li&&li&&p&最喜欢读的课外书&/p&&/li&&li&&p&为什么在这个城市发展&/p&&/li&&li&&p&有男/女朋友么&/p&&/li&&li&&p&兴趣爱好&/p&&/li&&/ul&&br&&p&面试之前一定要了解公司的情况和岗位的信息,和公司结合起来问你也有可能&/p&&br&&p&职业发展&/p&&br&&ul&&li&&p&为什么选择这个行业&/p&&/li&&li&&p&职业规划是什么&/p&&/li&&li&&p&找工作时,考虑的因素&/p&&/li&&li&&p&希望5年后的自己是什么样子&/p&&/li&&li&&p&是否考虑以后创业或者考研&/p&&/li&&/ul&&br&&p&教育背景/期望值&/p&&br&&ul&&li&&p&最喜欢的一门课或者最不喜欢的一门课,为什么&/p&&/li&&li&&p&实习经历,哪些让你感到困难?如何解决的&/p&&/li&&li&&p&对工资的期望值&/p&&/li&&li&&p&对户口的要求&/p&&/li&&li&&p&如何评价你的学校&/p&&/li&&/ul&&br&&p&职业素养&/p&&br&&ul&&li&&p&你与领导观点不和,怎么办&/p&&/li&&li&&p&你对跳槽如何看待&/p&&/li&&li&&p&学历比你低的人,和你起薪一样高,你怎样看待&/p&&/li&&li&&p&最让你有成就感的事情&/p&&/li&&li&&p&印象最深或者最失败的一件事&/p&&/li&&/ul&&br&&p&面试者准备的问题(就是面试官问你有没有想问我的,一定要表现出来对这份工作的期望)&/p&&br&&ul&&li&&p&我看过招聘信息了,能简单介绍着工作职责么&/p&&/li&&li&&p&能否为我介绍一下工作环境&/p&&/li&&li&&p&这个职位以后的发展道路如何&/p&&/li&&li&&p&您觉得我在哪些方面离这份工作所需要的素质还有很大差别?哪些地方我可以在近期加紧学习来弥补(这个问题可以试探一下面试官对自己的一个看法,还有一些自己的期望和上进心)&/p&&/li&&/ul&&br&&p&这里说一下,如果说问你薪资的期望值,其实这个公司都有一个评判,对你的价格是固定的,不会因为你说的就改变的,所以这个回答最好要跟公司的要求差不多。&/p&&br&&p&面试后的注意事情&/p&&br&&ul&&li&&p&面谈结束不等于面试结束(没走之前都要表现很好)&/p&&/li&&li&&p&保持状态离开&/p&&/li&&li&&p&总结面试表现,主动跟进结果(如果当你在hr那里的水平是可上可下的时候,可能你主动打一个电话hr就会觉得你很想来这个公司,可能就会给你调上去了,这个还是要看具体情况)&/p&&/li&&/ul&&br&谈offer tips:&br&&br&这个不用多说,首先要有一个保守的offer垫底,其次你就可以有底气和别家谈offer薪资,掌握常用的面试中的技巧即可。&br&四、社招流程(不希望牛友宝宝们走这一步哦)&br&&br&一般会进行2轮简历筛选,2~3轮onsite interview&br&&br&一般社招都是通过朋友推荐,简历一般会先到hr手里,先进行初步筛选,通过简历与岗位进行匹配,通过初步筛选的话,hr可能会和你沟通一下,也可能直接下一轮,如果有的信息不明确的也可能会打电话和你沟通,主要是看你的意向和岗位的确认等等。&br&&br&初步进行之后,简历会到你投递岗位的部门一线leader手中,会看你的能力和工作经验的匹配程度,如果通过,这个leader会通知hr安排面试,就是初试。&br&&br&初试结束之后,一面的面试官会将结果反馈填到系统中,流程转至hr,hr根据结果进行下一步的安排&br&如果一面通过,hr安排复试,复试一般由该部门总监+该部门HRBP&br&如果一面失败,会发送失败的通知&br&&br&复试结束后,复试面试官会将反馈写进系统,招聘HR会根据二面的结果进行下一步的安排,一般情况下,二面完事就结束了,这里也分情况&br&&ul&&ul&&li&面试结果没问题,发送OFFER&/li&&li&面试结果HRBP与部门总监产生分歧,增加一轮其他部门总监的交叉面试,再决定最后结果&/li&&li&高级职位则还会增加一轮CTO面试&/li&&li&面试结果不通过,由招聘HR发送拒信。&/li&&/ul&&/ul&
正好最近在整理这一方面的知识以及常识想分享给大家,遇到这个问题就贴上啦,希望能帮助到大家 秋招已经基本结束,虽然还有正在进行的,也是尾巴了,或者就是一些补招的信息,再一次大规模的应该就是等待春招了,牛妹来给大家送上春招备战全攻略! 首先特意…
计算机网络庞大且复杂,很难一言或几言以蔽之。因此,这里我们只考虑最一般的场景,所谓“一般”,就是...比如,没有缓存,客户机和服务器不在一个局域网,输入的是一个域名而不是IP地址,etc。我们采用自顶向下的方法,也是时间顺序的方法,来解答这个问题。浏览器是C/S架构中的客户端,通过想服务器发送请求,获取文件(html,js,css等),再通过浏览器引擎的解释和渲染,将这些文件呈现成你现在看到的样子。&br&1、TCP/IP参考模型&br&首先,我们不得不了解一下TCP/IP参考模型。&br&如下图所示,TCP/IP参考模型分为四层:应用层、运输层、网络层和接口层。浏览器所完成的工作就属于应用层的范畴。&br&&img src=&/0ff21feba7b2d61f33921d_b.jpg& data-rawwidth=&160& data-rawheight=&257& class=&content_image& width=&160&&&br&&ul&&li&应用层: 为用户提供各种服务,比如我们浏览网页时用到的HTTP,收发邮件时用的SMTP,登录远程主机用的SSH。&/li&&li&传输层:提供端到端的传输服务。更具体地讲,提供进程到进程的传输服务。&/li&&li&网络层:和传输层一样,可以概括为提供端到端的传输服务。更具体地讲,网络层提供主机到主机的传输服务。&/li&&li&网络接口层(链路层):为直接连接的设备提供传输服务,将数据帧转换为比特流,并将比特流转换为物理电路的电压高低信号。&/li&&/ul&2、往哪里发送请求?&br&假设我么输入的地址是&div class=&highlight&&&pre&&code class=&language-text&&
&/code&&/pre&&/div&浏览器看到这个域名的时候,就好像我们想去一家从没去过的餐厅吃饭,只知道名字是“黄大仙肠粉”但不知道具体地点在哪里。这个时候,我们打开地图,搜索“黄大仙肠粉”后找到一个地址:衡山路110号,于是我们便知道该去哪了。域名就像是一个餐厅的名字,而IP地址相当于一个具体的地址。浏览器必须知道所请求服务器的IP地址,发出的请求才有目的地。DNS(Domain Name System)提供的服务就是将知乎的域名转换成其服务器IP地址。&br&DNS具有两层含义:①一个由分层的DNS服务器实现的分布式数据库;②一个允许主机查询分布式数据库的应用层协议。有三种类型的DNS服务器:根DNS服务器、顶级DNS服务器和权威DNS服务器。这些服务器以下图的层次结构组织起来。&img src=&/774b521e4a69dc1efe2005_b.png& data-rawwidth=&712& data-rawheight=&278& class=&origin_image zh-lightbox-thumb& width=&712& data-original=&/774b521e4a69dc1efe2005_r.png&&除此之外,还有一类重要的DNS,称为本地DNS服务器。严格来说本地DNS服务器并不属于DNS服务器的层次结构,但它在整个查询的过程中却扮演着重要的角色。&br&首先,浏览器所在的主机向本地DNS服务器发送一个含有知乎域名的DNS查询报文。本地DNS服务器把查询报文转发到根DNS服务器,该根DNS服务器注意到其com后缀并向本地DNS服务器返回com的顶级域名服务器的IP地址。该本地DNS服务器再次向comDNS服务器发送查询请求,comDNS服务器注意到其&a href=&& class=&internal&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&/a&后缀并用负责该域名的权威DNS服务器的IP地址作为回应。最后,本地域名服务器将含有&a href=&& class=&internal&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&/a&的IP地址的响应报文发送给客户端主机。&br&&img src=&/b853ac5c77ae_b.jpg& data-rawwidth=&448& data-rawheight=&297& class=&origin_image zh-lightbox-thumb& width=&448& data-original=&/b853ac5c77ae_r.jpg&&&br&这里的查询过程是包含递归查询和迭代查询的,客户端主机发送给本地服务器的查询是递归查询,而后面的三个查询是迭代查询。最高票 @郭无心 的答案中给出的递归查询应该是迭代查询才对。&br&2、封装HTTP请求&br&其实这里主要讲HTTP报文的格式的。可以看到,这个请求里面包含了请求的方法GET,请求的路径“/”,请求的主机名,客户机的类型以及一些其他的信息。&br&&div class=&highlight&&&pre&&code class=&language-text&&GET / HTTP/1.1
User-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; WOW64;
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
&/code&&/pre&&/div&前面辛辛苦苦通过DNS获得的IP地址怎么没有用到?HTTP请求报文里根本没有这一个字段。继续往下看。&br&3、建立连接&br&在应用层和传输层之间,更准确地讲是在浏览器进程和操作系统提供的TCP服务程序之间,有一个很重要的东西叫做套接字(Socket),如下图所示。如果把一台主机比作一座房子,把进程比作房子里面的房间,Socket相当于房间的门。不管是房间的人要出来还是外面的人要去到某一个房间,都必须先通过Socket这一道门。套接字的作用是实现传输层的多路复用和多路分解。在应用层可以同时运行多个进程,每个进程都需要通过传输层来收发分组,而传输层的TCP进程只有一个,当TCP进程收到一个分组后,该怎么确定应该转发给哪个进程呢?答案是通过套接字,这就是多路分解。同样的道理,多路复用就是进程将分组通过各自的套接字转发给传输层。TCP套接字是由一个四元组(源IP地址、源端口号、目的IP地址和目的端口号)来标识的。&img src=&/ccaa295f1f_b.jpg& data-rawwidth=&254& data-rawheight=&220& class=&content_image& width=&254&&TCP是面向连接的,在实际发送数据之前,客户端和服务器需要建立起一个TCP连接。这种TCP“连接”只是逻辑上的链接,因为其状态完全保留在两个端系统中,中间路由器对TCP连接毫不知情。&br&TCP连接的建立过程如下图所示。首先,TCP先发送一个创建连接的SYN请求,告诉服务器主机“我想和你创建一条TCP连接”。当服务器主机收到SYN请求后,如果其所请求的端口号正在等待连接,则会为这一条TCP连接分配资源,并发送一个SYNACK报文段作为应答。客户主机收到SYNACK报文段后,客户机也为该连接分配资源。此时,连接已经建立起来了。客户主机还会向服务器主机发送另一个报文段,对允许连接的报文段进行确认。这就是有名的“三次握手”。&img src=&/f0d6cfc28fe892c8abfc4ad3c9c3df6c_b.png& data-rawwidth=&503& data-rawheight=&376& class=&origin_image zh-lightbox-thumb& width=&503& data-original=&/f0d6cfc28fe892c8abfc4ad3c9c3df6c_r.png&&&br&可以这样简单地认为,TCP连接创建成功的标志是:客户机和服务器都创建了一个由源IP地址、源端口号、目的IP地址和目的端口号标志的Socket。&br&4、发送请求&br&请求在“三次握手”的第三次“握手”就发送出去了。&br&TCP报文段的格式如下图所示。&img src=&/a00b4ab123e2924a8adc7f066e9ebedd_b.jpg& data-rawwidth=&640& data-rawheight=&240& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/a00b4ab123e2924a8adc7f066e9ebedd_r.jpg&&&br&目的端口和源端口号是为了在多路复用和多路分解时选择套接字时使用的。&br&数据序号和确认序号是为了传输数据的完整性和顺序而设置的。&br&用户数据这一个字段就存储了应用层生成的HTTP报文。&br&ACK、SYN和FIN是在建立连接和关闭连接时使用。&br&其他用于流量控制、拥塞管理等用途的字符就不展开了。&br&5、路由寻址&br& 现在两个端系统已经建立起了连接,请求也被传送到客户端主机的网络层。网络层是协议栈中最复杂的层次,应用层和传输层只运行在两个端系统,而网络层不仅运行在端系统,还运行在各个中间节点上。&br&我们先来看看IP数据报的格式。&br&&img src=&/dc4fb5eb99f53c98435d6abff8f3e6a6_b.jpg& data-rawwidth=&640& data-rawheight=&240& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/dc4fb5eb99f53c98435d6abff8f3e6a6_r.jpg&&网络层实现的最重要的功能是路由选择,简单地说,就是怎么把这一个IP数据报从客户端主机出发,通过网络中的若干个路由器,到达目的主机。从概念上讲,IP路由选择是简单的,特别对于主机来说,如果目的主机和源主机直接相连(如点对点链路),或都在一个共享网络上(以太网或令牌环网),那么IP数据报就直接送到目的主机上。否则,主机把数据报发送到一默认的路由器上,由路由器来转发该数据报。大多数的主机都采用这种简单机制。&br&我们把网络环境简化如下图:只包含源主机H1、目的主机H2和两个路由器R1、R2。&br&&img src=&/3afb021b043ca_b.jpg& data-rawwidth=&484& data-rawheight=&267& class=&origin_image zh-lightbox-thumb& width=&484& data-original=&/3afb021b043ca_r.jpg&&&br&IP路由选择是逐跳(hop-to-hop)进行的。IP并不知道从H1到H2的完整路径。所有的IP选择只为数据报提供下一站的IP地址。路由选择机制的基础是在每一台主机和路由器里都存储着一张路由表。路由表的每一项包含了目的主机IP地址、下一跳路由器(或主机)的IP地址、相对应的网络接口以及其他必要的信息。当一个数据报到达一个节点时,IP路由选择完成以下工作:&br&&ol&&li&搜索路由表,寻找能与目的主机IP地址完全匹配的表目。如果找到,则把报文发送给下一跳节点。&/li&&li&搜索路由表,寻找能与目标网络号相匹配的表目。如果找到,则把报文发送给下一跳节点。&/li&&li&搜索路由表,寻找“默认”的表目。如果找到,则把报文发送给下一跳节点。&/li&&/ol&如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果不能传送的数据报来自本机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。&br&在我们的例子中,H1通过搜索自己的路由表将数据报转发给R1,R1根据路由表转发给R2,最后到达H2。&br&6、关闭连接&br&目标主机收到了请求后,自底向上地对该请求进行处理。链路层把数据报传给网络层,网路层将TCP数据段通过对应的Socket传给应用程序。应用程序处理请求后产生一个应答的HTTP报文,又经过了一层层的封装、一跳跳的传输到达了源主机。&br&这样就结束了吗?那一条TCP连接还没有关闭呢,源主机和目标主机上都为它分配了资源呢,如果不释放掉的话资源很快就会耗尽(DDoS攻击就是利用这一点)。于是,当传输层收到了应答之后,就要关闭这条连接了。但是,又不能悄悄地自己关了,目标主机那边还不知道你要不要关闭呢。于是乎,就有了对应创建TCP连接“三次握手”的关闭TCP连接“四次挥手”。&br&如下图所示,客户端向服务器发出了FIN报文段,服务器收到后,回复一个ACK应答。然后,服务器也向客户端发送一个FIN报文段,随后关闭了服务器端的连接,释放了资源。当客户端收到之后,又向服务器回复一个ACK应答。过了一段计时等待,客户端也关闭了连接,释放资源。这一段计时等待的时间是为了客户端重传最后的ACK防止其丢失。&br&&img src=&/272e7e052822ffa9d6b2dd_b.png& data-rawwidth=&353& data-rawheight=&496& class=&content_image& width=&353&&&br&&br&剩下的事情,就交给浏览器了。
计算机网络庞大且复杂,很难一言或几言以蔽之。因此,这里我们只考虑最一般的场景,所谓“一般”,就是...比如,没有缓存,客户机和服务器不在一个局域网,输入的是一个域名而不是IP地址,etc。我们采用自顶向下的方法,也是时间顺序的方法,来解答这个问题…
先引用一段W3C的文档:&br&&blockquote&9.3 Positioning schemes&p&In CSS 2.1, a box may be laid out according to three positioning
schemes:&/p&&ol&&li&&a href=&///?target=http%3A//www.w3.org/TR/CSS21/visuren.html%23normal-flow& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Normal flow&i class=&icon-external&&&/i&&/a&. In CSS 2.1, normal
flow includes &a href=&///?target=http%3A//www.w3.org/TR/CSS21/visuren.html%23block-formatting& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&block formatting&i class=&icon-external&&&/i&&/a&
of block-level boxes,
&a href=&///?target=http%3A//www.w3.org/TR/CSS21/visuren.html%23inline-formatting& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&inline formatting&i class=&icon-external&&&/i&&/a&
of inline-level boxes, and &a href=&///?target=http%3A//www.w3.org/TR/CSS21/visuren.html%23relative-positioning& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&relative positioning&i class=&icon-external&&&/i&&/a& of
block-level and inline-level boxes.
&/li&&li&&a href=&///?target=http%3A//www.w3.org/TR/CSS21/visuren.html%23floats& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Floats&i class=&icon-external&&&/i&&/a&. In the float model,
a box is first laid out according to the normal flow, then
taken out of the flow and shifted
to the left or right as far as possible. Content may
flow along the side of a float.
&/li&&li&&a href=&///?target=http%3A//www.w3.org/TR/CSS21/visuren.html%23absolute-positioning& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Absolute positioning&i class=&icon-external&&&/i&&/a&.
In the absolute positioning model, a box is removed from
the normal flow entirely (it has no impact on later siblings)
and assigned a position with respect to a containing block.
&/li&&/ol&&p&An element is called out of
flow if it is floated, absolutely positioned, or is the
root element. An element is called in-flow if it is not out-of-flow. The
flow of an element
A is the set consisting of A and all in-flow
elements whose nearest out-of-flow ancestor is A. &br&&/p&&/blockquote&来源:&a class=& wrap external& href=&///?target=http%3A//www.w3.org/TR/CSS21/visuren.html& target=&_blank& rel=&nofollow noreferrer&&Visual formatting model&i class=&icon-external&&&/i&&/a&&br&&br&Q: 脱离文档流就不占据空间了吗?&br&A: 可以这么说。更准确地一点说,是一个元素脱离文档流(out of normal flow)之后,其他的元素在定位的时候会当做没看见它,两者位置重叠都是可以的。&br&&br&Q: 脱离文档流是不是指该元素从dom树中脱离?&br&A: 不是,用浏览器的审查元素就可以看到脱离文档流的元素(例如被float了)依然会出现在dom树里,下面的截图里也可以看到。&br&&br&那么脱离文档流是什么样子的呢?下面是上锤子的时间~ 以前面文档里写的三种布局方式为例&br&下文中文档的HTML代码如下:&br&&div class=&highlight&&&pre&&code class=&language-html&&&span class=&nt&&&body&&/span&
&span class=&nt&&&div&/span& &span class=&na&&id=&/span&&span class=&s&&&outofnormal&&/span&&span class=&nt&&&&/span&
Out of normal:
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sequi esse impedit autem praesentium magni culpa, amet corporis, veniam consequatur voluptates temporibus. Voluptates eius similique asperiores cupiditate fugit hic atque quisquam?
&span class=&nt&&&/div&&/span&
&span class=&nt&&&h2&&/span&Normal Content&span class=&nt&&&/h2&&/span&
&span class=&nt&&&p&&/span&Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nostrum praesentium nam tempora beatae quis nobis laboriosam alias aliquid, tenetur exercitationem. Odio, aperiam, illo! Eveniet natus dignissimos architecto velit eligendi id!&span class=&nt&&&/p&&/span&
&span class=&nt&&&p&&/span&Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rem reprehenderit velit nam delectus distinctio at unde aliquid officia illo, tempore vitae et incidunt non, ut eos nesciunt quaerat. Enim, minus.&span class=&nt&&&/p&&/span&
&span class=&nt&&&/body&&/span&
&/code&&/pre&&/div&CSS代码如下,为了看得更清楚,加一个padding&br&&div class=&highlight&&&pre&&code class=&language-css&&&span class=&nf&&#outofnormal&/span& &span class=&p&&{&/span&
&span class=&k&&width&/span&&span class=&o&&:&/span& &span class=&m&&200px&/span&&span class=&p&&;&/span&
&span class=&k&&background-color&/span&&span class=&o&&:&/span& &span class=&nb&&cyan&/span&&span class=&p&&;&/span&
&span class=&k&&padding&/span&&span class=&o&&:&/span& &span class=&m&&10px&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&br&首先普通情况下(也就是在normal flow里)是这样的&br&要被玩的div:&br&&img data-rawheight=&417& data-rawwidth=&351& src=&/e3aea2c85e15b6470460_b.jpg& class=&content_image& width=&351&&跟在后面的h2:&br&&img data-rawheight=&639& data-rawwidth=&436& src=&/cebf598eddfe950d717bda_b.jpg& class=&origin_image zh-lightbox-thumb& width=&436& data-original=&/cebf598eddfe950d717bda_r.jpg&&可以看到两者是垂直排列,padding互相顶着。3D视图的话就是这样,大家排排坐:&br&&img data-rawheight=&422& data-rawwidth=&471& src=&/3ab078cb1fef1a23b01c718e84bda53d_b.jpg& class=&origin_image zh-lightbox-thumb& width=&471& data-original=&/3ab078cb1fef1a23b01c718e84bda53d_r.jpg&&&br&&br&第二种情况:&br&加上float:left了之后,蓝色的div就脱离文档流了,变成了这样:&br&&img data-rawheight=&615& data-rawwidth=&526& src=&/df64aebe461a7968_b.jpg& class=&origin_image zh-lightbox-thumb& width=&526& data-original=&/df64aebe461a7968_r.jpg&&因为蓝色的div脱离了文档流,跟在后面的h2和p的&b&盒子&/b&都当做没看到这个div的样子去定位,所以他们都顶着浏览器左边和顶部的边框。但是有趣的是,h2和p里面的&b&文本&/b&(属于content flow)却都看到了这个被float的div,在自己的盒子里往右推,飘到了蓝色div的边上。这就是float的特性,其他盒子看不见被float的元素,但是其他盒子里的文本看得见。&br&&img data-rawheight=&627& data-rawwidth=&728& src=&/fe0ec0f33a4ac526ad32ab35d275edba_b.jpg& class=&origin_image zh-lightbox-thumb& width=&728& data-original=&/fe0ec0f33a4ac526ad32ab35d275edba_r.jpg&&3D视图的话就是这样。我插~&br&&img data-rawheight=&463& data-rawwidth=&890& src=&/b2cc846c4ae3_b.jpg& class=&origin_image zh-lightbox-thumb& width=&890& data-original=&/b2cc846c4ae3_r.jpg&&我插~&br&&img data-rawheight=&383& data-rawwidth=&758& src=&/9ffeb88b3d163caa06ff265c46822bce_b.jpg& class=&origin_image zh-lightbox-thumb& width=&758& data-original=&/9ffeb88b3d163caa06ff265c46822bce_r.jpg&&我插~&br&&img data-rawheight=&460& data-rawwidth=&424& src=&/05b3bdb24a4aaa14f1cd6ab9eabaf4a5_b.jpg& class=&origin_image zh-lightbox-thumb& width=&424& data-original=&/05b3bdb24a4aaa14f1cd6ab9eabaf4a5_r.jpg&&为什么能插呢?因为蓝色div被旁边的盒子无视了呀~&br&&br&第三种情况:absolute positioning。&br&删掉float: left,加上postion: absolute。和float一样的是,旁边的盒子无视了蓝色div的存在,也是顶着左边边框定位。但是~ &b&文本&/b&也无视了蓝色div的存在,顶着左边边框定位!&br&&img data-rawheight=&628& data-rawwidth=&714& src=&/5adf3484087_b.jpg& class=&origin_image zh-lightbox-thumb& width=&714& data-original=&/5adf3484087_r.jpg&&&img data-rawheight=&622& data-rawwidth=&797& src=&/dfcd3fc3ffa3fd_b.jpg& class=&origin_image zh-lightbox-thumb& width=&797& data-original=&/dfcd3fc3ffa3fd_r.jpg&&3D视图下也是成功无视之,插入~&br&&img data-rawheight=&426& data-rawwidth=&459& src=&/4bdcbd9783fcbc9d5e4a2c00_b.jpg& class=&origin_image zh-lightbox-thumb& width=&459& data-original=&/4bdcbd9783fcbc9d5e4a2c00_r.jpg&&&br&总结:&br&脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位。需要注意的是,使用float脱离文档流时,其他盒子会无视这个元素,但其他盒子内的文本依然会为这个元素让出位置,环绕在周围。而对于使用absolute
positioning脱离文档流的元素,其他盒子与其他盒子内的文本都会无视它。
先引用一段W3C的文档: 9.3 Positioning schemesIn CSS 2.1, a box may be laid out according to three positioning
schemes:. In CSS 2.1, normal
flow includes
of block-level boxes,
of inline-level …
BAT里因为实习时间要求只面了两家,另外面了若干比较有名的创业公司,都是前端。目前没有失败过,只有在确认发offer协商实习时间和是否能到岗的阶段因为家庭原因主动放弃了一些,感觉败了很多RP,OTZ……真的很对不起HR姐姐们和一些热情的面试官,所以来介绍一下个人经验补点RP……&br&&br&首先要明白的是,应聘实习是一个双向选择的过程。因为前端入门门槛相对于其他岗位低,所以相对而言要在候选人里挑到&b&靠谱&/b&的前端就更难,个人体会是目前要招前端的地方很多都确实非常缺人,但也怕招到不靠谱的人来创造负价值,所以如果你比较靠谱的话自然会有团队主动找你想让你加入,而如果你想进大厂的话,只要在面试的阶段尽可能表现出自己&b&靠谱&/b&,就OK了。&br&&br&个人感觉对于前端来说,靠谱的表现主要有以下几种:&b&&br&&br&1. 要有比较好的计算机基础&/b&&br&这里的计算机基础指的是数据结构与算法,操作系统,编译原理,计算机网络等等。虽然相对于其他方向而言,前端在工作中用到计算机基础的地方可能少一点,但是无论大小厂,招实习生其实都是为正式招聘做储备,所以会比较希望招将来有更大发展空间的人,就像里 &a class=&internal& href=&/question//answer/&&Web 前后端分离的意义大吗? - 知乎用户的回答&/a& 和 &a class=&internal& href=&/question//answer/&&怎样成为全栈工程师(Full Stack Developer)? - 知乎用户的回答&/a& 描述的那种。&br&如果你具备比较好的计算机基础素养,那么以后在拓展到其他领域(WebGL —— 计算机图形学,Node.js 底层 —— 操作系统,JS 引擎和各种预编译工具—— 编译原理, etc.)的时候会更快上手。另外有一些公司对前端的概念不局限于 Web 前端,也包括移动端偏前端的部分,这里也需要你有比较好的计算机基础才能做好。前端领域有很多人已经不满足于造轮子,直接跑去造语言了,如果你编程基础够好,接触过各种形形色色的编程语言和范式,再上手这些东西也会方便些(比如Ruby/Python-&CoffeeScript,Haskell-&LiveScript)。&br&虽然也有很多地方为了招到足够多能来干活的前端会降低对计算机基础的要求,但是打好这方面的基础是没有坏处的,如果面试笔试被问到且答得上来,也是能够加分的。一些大厂经常会出现“不是前端的面试官来面前端”的情况,我个人是觉得如果这类面试官问的都是计算机基础问题的话,其实真的无可厚非,毕竟人家在面“一个前端程序员”之前,是在面“一个程序员”啊……&br&&br&&b&2. 要懂得现代前端的一些新技术&/b&&br&比如:&br&&ul&&li&前端自动化工具(Gulp/Grunt等)&/li&&li&模块化(CommonJS,AMD/CMD模块加载器,各种Bundler,ES2015 Modules等)&/li&&li&前端 MV* 框架(Backbone,Angular等)&/li&&li&编译到 CSS 和 JS 的一些语言(Less/Sass/CoffeeScript等)&/li&&li&前端自动化测试工具(Karma,Mocha,Web Driver等)&/li&&li&其他&/li&&/ul&有一些同学觉得这些东西懂得越多越好,我个人是觉得这些工具不一定要都了解(毕竟它们很多也未必能火多久),但对这些东西要有大致的概念,并且每个领域的用过一两种(最好是在项目里),清楚它们的优缺点和必要程度。这是区分在前端上投入过一定精力的人和跨行来兼职前端的人的标志。&br&去大厂校招应聘前端的会有很多只是做过一些 Web 项目,但不一定对前端的技术很了解,只是看前端门槛比较低就去投简历的人。如果你对这些新技术比较了解的话,起码能够证明你是比较专注前端而且花过一定时间在上面的。&br&同时,前端现在确实是一个每天都有很多轮子冒出来的领域,也需要你有足够强的自学能力和(英文)文档阅读能力去跟上社区的这些新动态。接触过比较多的轮子,才会有自己的判断,不会老是人云亦云火一个学一个。这些工具里,确实也有很多在合适的场景下可以提高前端的生产力或者代码质量,对这些东西有一定关注,也表明你对自己的生产力和代码质量是有一定关注的,这其实是一个更广义的靠谱程序员的特性。&br&&br&&b&3. 懂得什么是 Web 标准和浏览器开发维护的流程,并且会跟进新发布的标准和主流浏览器新实现的特性&/b&&br&当然面试的时候一般不会直接问你这方面的问题,但是如果你懂这里面的水大概是怎么一回事的话,在很多问题上(特别是兼容性问题上)都能回答得比较深刻一些。最好清楚:&br&&ul&&li&HTML、CSS、DOM,ECMAScript 和一些泛 HTML5 的标准是怎么制定的&/li&&li&W3C 和 WHATWG 的区别&/li&&li&各种标准的不同版本和提交状态是怎么回事&/li&&li&知道标准和实现的差距(有些人喜欢把 W3C 标准奉为圭臬,但现实中浏览器们并不是这样的)&/li&&li&知道 ECMAScript 和 JavaScript 的区别&/li&&li&知道浏览器的一些常见做法(比如给 CSS 特性加前缀)的缘由&/li&&/ul&标准和浏览器这滩水还是很浑的,涉及到很多利益纠葛和大厂的博弈,如果你大概清楚他们的一些事情,不光自己做前端兼容的时候会容易一些(不会只抱怨“为啥XXX就是不能OOO”而是懂得他们的无奈并且认真寻找解决方案),在新特性出来的时候也更容易消化(不是“啊又出了个新东西要学好烦啊”而是“在邮件列表上争(si)论(bi)了那么久他们终于把这个搞出来了”),你自己对前端比较基础的那部分的知识体系更会有条理得多。个人觉得这也是区分比较有经验的前端和临时跨行的前端的关键之一,这些东西是需要你经过一段时间的耳濡目染才能理清楚,而且会在一定程度上影响你的工作的。&br&&br&&b&4. 多看书,多关注技术资讯&/b&&br&技术资讯的来源包括RSS、邮件订阅、比较重要的邮件列表、或者follow Twitter和微博上一些比较有影响力的开发者。个人经验是,一般在二面或者三面的时候,面试官都会问类似“你从哪里接触前端的新技术/你看过哪些书”的问题,因为前端现在技术更新很快,比较专注于前端这方面的人一般都会有自己接触新技术的渠道,他们自然也会比较关心候选人是不是有在跟进社区的一些动向。其实这也能够排除那些不太靠谱的临门跨行的人,因为他们平时一般不会特意去关注前端技术的新动态的。&br&&br&&b&5. 不仅懂得一些东西怎么写,更要懂得一些东西不要怎么写&/b&&br&Web 标准大多不是严格向后兼容的,很多几年前常用的写法,现在已经被社区的大多数人强烈建议避开了,有很多特性也随着时间的流逝被打上了 deprecated 的标签,如果你不幸拿着一本比较老的书入门,又不在网上验证上面说的每一句话,那么很有可能你就这样被误导很久,比如 &a class=&internal& href=&/question//answer/&&HTML可能会逐步被XML所取代吗?(来自《css权威指南》) - 贺师俊的回答&/a& 这样的情况……与之类似的还有:&br&&ul&&li&JavaScript 里那数量令人叹为观止的坑&/li&&li&一些在经验比较丰富的前端看来属于常识的东西(比如:为什么 CSS 大多放在 head,JavaScript 多放在 body 底端?)&/li&&li&划分各种模块、文件,添加模板的正确方式(比如错误方式是一堆脚本/样式写在一个超大文件里,或者在有替代方式的情况下在 JavaScript 里拼字符串)&/li&&li&解决一些老问题的新的best/better practice(比如不要到了 2015 年还深陷在回调地狱,去看看 promise 和 generator)&/li&&li&……&/li&&/ul&这些知识都需要你有一定的前端方面的经验,看过比较多相关的博客和书,才能慢慢积累起来,所以也能区分靠谱的前端和不靠谱的前端。&br&&br&&b&6. 不依赖某一个特定的框架或者库&/b&&br&比如很常见的“离开了jQuery就不会写前端”星人……也不是说要做原生 JavaScript/CSS 和 DOM 的原教旨主义者,但高度依赖某个框架或者某个库的话,通常意味着换了一个框架/库你的学习成本会比不依赖特定轮子的人高,因为这通常是处于还不知道前端领域“什么是什么”的阶段的表现。&br&事实上前端领域的这些轮子有一些都是其他领域早就有,或者根本不需要的东西,其中很多的实现原理也不是那么复杂,只不过是脏活累活。个人觉得对这些东西应该报以“不能知其然而不知其所以然”的态度,起码大概清楚它们的实现是怎样的套路,知道它们的优缺点,多接触几种,这样在换一个替代品的时候很快就能上手。&br&因为前端的特殊性,在开发比较大的项目的时候使用库和框架是必须的(比如遇到各种鼠标事件的前端兼容问题时,总不能全都就地写 if-else 吧,总得封装一下。遇到非常 data-driven 的项目,还用手动操作 DOM 的写法很难维护吧,用个 MV* 框架真的不纯是偷懒了),但是这些东西都是会迅速改朝换代的,死守着某个特定的库或者框架,确实不太靠谱。很多公司喜欢问候选人“原生 API 写个 Ajax 请求怎么写”这类问题

我要回帖

更多关于 top coder 的文章

 

随机推荐