zoukankan      html  css  js  c++  java
  • 【北京之旅】--程序猿应聘技巧之笔试

    

           对于怎样招聘还不是我们这些程序猿该考虑的事情,可是对于应聘须要我们好好的进行思考。应聘也是须要非常多技巧的,就在昨天笔者也进行了一次应聘,经历了应聘的全过程,这里就来谈谈对于应聘的一些感悟。对于一些应聘的问题进行讨论剖析。


    一、应聘过程


           对于应聘正如我们所了解的可能会分为非常多步骤。当中最基本的分为三步,首先是投递简历。其次是笔试,接下来进行面试,当然假设我们被应聘上了最后的一步就是讨论薪资和户口等问题。


           简历投递技巧就不在详述,网上类似的文章内容会有非常多,具体的技巧请上网查阅吧。应聘过程中须要注意的一些问题这里也不再详述,能够去网上下载一本《程序猿面试宝典》这本书已经出到第四版了。里面具体说明了有关应聘的非常多问题。


    二、说说笔试


           笔试的内容来详述下,对于开发者不管是大公司还是小公司,笔试是不可缺少的一项内容,就在昨天笔者面试的公司也进行了笔试,但最后去的时候却忘记了带上纸和笔。不要说我孤陋寡闻,或者是沽名钓誉,稍稍解释下在通知进行面试的时候仅仅是提了有可能进行笔试的内容,结果因为一时高兴忘记了带上笔试工具,在此也告诫大家不管是不是进行笔试,在进行面试的时候一定要带上工具,做好充足的准备。
           谈到了笔试那就来说说笔试之前的准备工作,有开发经验的程序猿笔试就会相当的简单。但对于没有开发经验的程序猿那笔试无疑是一场硬仗。

    尽管是硬仗但也是有获胜的机会的。事实上非常easy那就是充足的准备。接下来就来看看该准备哪些东西。


          在笔试之前充足的准备不可缺少。可是须要准备的内容会非常多所以须要找些技巧。针对性的进行准备。


          1、针对面试的公司
           此话怎讲。难道公司面试也有敲门?这是当然的。从笔试的内容及难度看。每一个公司每年的笔试题的难度是类似的,并且笔试的内容可能也会非常相似,假设特别想要进入某一公司的话最好还是针对性的练习下那个公司往年的笔试题,把握住方向这样笔试会变的简单。


          2、针对项目
           这里所说的项目可能是和外包有关,也可能它们公司所用的技术是固定的,如:.NET或者Java。某一个项目特别须要人手,这时笔试题往往会和它们项目的技术有关。在准备笔试的时候最好还是也考虑下它们的项目需求。拿笔者昨天笔试的公司来说。公司开发使用的是.NET的B/S项目。所以在笔试时非常多有关Vs的使用及Asp.NET的内容。


          

             对于笔试的内容无非是技术的相关内容,针对昨天面试的内容进行了总结,上图为技术的大致内容。以下逐个进行说明。


    三、IDE


           首先从IDE说起。IDE是程序开发不可缺少的工具,所以有关它的使用也是笔试时常考的内容,就在昨天的面试过程中,相同也考到了有关IDE使用的技巧。尽管不是非常困难。但也没能拿到满分。
            这部分可能会考到有关的开发工具的快捷键,快捷键是高手必备的素养,作为程序开发者仅仅要是有经验的开发者在进行开发时都会用到快捷键,灵活的掌握和使用快捷键可以提高程序开发的效率,真正的高手要脱离鼠标仅仅使用快捷键就行掌控全局。快捷键的使用须要进行长期的培养,首先是要熟悉经常使用的快捷键,其次是使用。多多积累,当然最基本的是每次在使用新工具时都要有意识的去查看和使用快捷键。

           另外还有就是调试工具的使用技巧,并且也是笔试的重点,这类题是检验是否是高手的利器。在程序开发过程中调试是不可缺少的,即使是高手也免不了对程序进行调试。那么怎样使用调试工具高速的找到程序的bug就是高手们须要思考的问题了。

    想要了解一个开发者是否是高手仅仅须要问他程序出错时怎样进行调试就可以,是高手还是菜鸟仅仅要通过这个问题一验便知。

    通过上面的讨论也能够看出想要在面试的时候进入高手的行列。就必须掌握调试的高级技巧,类似于我们经常使用的加入断点、逐句、逐段的调试方法都是最低级的,在遇到了多层循环、死循环、几千次甚至几万次循环的时候上面的方法就不适用了。
            还有是在循环过程中。怎样在达到指定的条件时循环停止进入调试的状态。这个问题有没有思考过?当遇到运行几千次设置几万次循环的时候,我们不能在使用简单的调试方法了。

    真正的高手可以在循环中指定调试的进入状态。并可以灵活的运用IntelliTrace。

    (下篇博客将会着重讨论调试的技巧)

            有关IDE的笔试内容还有很多其它,这里不再详述,能够在网上查找些有关IDE笔试的题目。针对性的练习。


    四、面向对象


            面向对象是如今编程中最主流的编程方法学,所以对面向对象的理解程度也是笔试过程中常会考到的内容。相信仅仅要是程序猿都採用过面向对象的思想开发过程程序,那问个问题您对面向对象理解多少?仅仅知道类和对象。这是菜鸟级的水平。高手理解的面向对象远非这些。面向对象是老生常谈,程序猿天天进行面向对象编程。有没有反问过自己对面向对象理解到了什么程序?面向对象的三大性质封装、继承、多态有没有深刻思考过,尤其对于多态,是面向对象最复杂的内容,有没有进行思考过?假设没有。那是时候再好好温习以下向对象了。这是基础也是非常重要的理论。
           笔者针对昨天面试的内容进行了一些总结。这些内容尽管非常基础非常easy。但真正考起来您还未必能拿高分。以下的内容是基于C#语言的,笔者进行了实測,其他类型的语言须要自測。
          1、虚函数:使用virtual标示,没有限定的使用条件,可是不可以在接口中出现。由于接口中的方法本身属于抽象方法;虚方法中可以有详细的实现;假设父类中包括虚方法的声明,在子类中可以不重写。
          2、接口:一个类能够实现多个接口,一个接口能够由多个类来实现;接口之间也能够进行继承。可是接口不能继承类;能够声明接口。但不能实例化接口,接口仅仅能用来被实现。
          3、抽象类:可以声明,不能被实例化;类中的方法可以具有详细的实现;抽象类可以继承其他类。也可以继承抽象类,相同可以实现接口。
          4、抽象方法:接口中的方法是抽象方法。抽象方法仅仅能出如今抽象类及接口中,假设出如今抽象类中须要使用abstract标示出某一个方法为抽象方法;抽象方法必须在子类中进行重写;抽象方法没有详细的实现。
          5、重写/重载/覆盖
          6、类之间的关系,依赖、继承、关联、聚合、组合
          面向对象的内容还有非常多须要我们复习的地方。不再详述请翻阅其他书籍。


    五、数据库


            谈到程序设计就不得不说说数据库了。它是程序设计中至关重要的一部分,数据库设计的好坏旺旺决定了程序设计的难易程度。所以数据库也是笔试必考的内容。


    从昨天的笔试内容和面试的问题来看,数据库主要从三个方面来考察。

    1.表设计,2、查询语句。3、Linq。

       1、表设计

            数据库表的设计至关重要,在笔试的时候可能会涉及到表的主外键的考察。确定表的主键,这里一定要注意陷阱。有经验的开发者在设计表结构的时候会让主键唯一,并且选择字段最少的候选键,假设一张表的主键包括的字段超过一个那建议将这张表进行拆分,建立关系表。
           如题:有一个关系,员工(员工号。姓名。性别。爱好)。员工号能唯一确定一条记录。可是一个员工有多个爱好,请问在设计表时主键应为()
                      A、员工号+爱好    B、姓名    C、员工号

           这道题应该选C。仅仅能是员工号,在建表的时候至少须要创建两张表。由于假设一张表的话数据会冗余。

      2、SQL语句

           SQL语句在程序设计中相当重要,好的SQL语句可以大大提高程序执行效率,非常大程度上降低程序代码的编写,SQL语句的优化也是高手的体现。不要以为能写几个连接查询、分组查询、用几个数据库函数就非常牛了。SQL还有非常多你不知道的内容。另外还有就是函数的使用。使用SQL函数能简化查询语句。所以要多掌握些SQL函数。

    在笔试的时候可能会问到一些查询问题。如查询一张表中从20行到30行的内容,数据库的行转列问题等等。

       3、Linq

            这个名词不是非常新了,非常早曾经就接触过,当时没有对它进行深入的了解,昨天面试的时候考察了这个问题。那来看看它是什么意思。Linq是Language-Intergate Query。语言集成查询。它是从vs2008后開始有的强大的查询语句,可以在C#和Vb.net上使用。可以对 Sql和XML等进行操作。(有关很多其它Linq的内容将会在下篇博客中讨论)


    六、Asp.net


           Asp.net的页面生命周期是面试.NET的B/S开发的时候常常会问的问题,菜鸟级的开发者仅仅知道使用Load、DataBinding事件,真正的高手要熟悉整个页面的生命周期。笔者昨天面试的公司相同也问到了这个问题。扪心自问下我们对页面生命周期知道多少?亡羊补牢为时未晚。笔者对页面生命周期的事件进行了一些整理,以下详述下。

    PreInit

    在启动阶段完毕之后、初始化阶段開始之前引发。

    注意假设请求是回发请求,则控件的值尚未从视图状态还原。假设在此阶段设置控件属性,则其值可能会在下一事件中被覆盖。

    Init

    在全部控件都已初始化且已应用全部外观设置后引发。 各个控件的Init事件在页的Init事件之前发生。

    使用该事件来读取或初始化控件属性。

    InitComplete

    在页的初始化阶段结束时引发。

    使用此事件对要在下一个回发后务必保留的视图状态进行更改。

    PreLoad

    在页为自身和全部控件载入视图状态之后以及处理Request实例包含的回发数据之后引发。

    Load

    Page对象对Page对象调用OnLoad方法,然后以递归方式对每一个子控件运行同样操作。直到载入完本页和全部控件为止。

    各个控件的Load事件在页的Load事件之后发生。

    控件事件

    使用这些事件来处理特定控件事件。如Button控件的Click事件或TextBox控件的TextChanged事件。

    LoadComplete

    在事件处理阶段结束时引发。对须要载入页上的全部其它控件的任务使用该事件。

    PreRender

    Page对象创建呈现页所需的全部控件(包含组合控件的子控件)之后引发。

    在呈现阶段開始之前,使用该事件对页或其控件的内容进行最后更改。

    PreRenderComplete

    在设置了 DataSourceID 属性的每一个数据绑定控件调用其 DataBind 方法之后引发。

    SaveStateComplete

    在为页和全部控件保存视图状态和控件状态之后发生。

    Unload

    首先针对每一个控件引发,继而针对该页引发。

     

        有关很多其它页面生命周期的内容请翻阅:http://msdn.microsoft.com/zh-cn/library/ms178472.aspx


    结语


            笔试部分的内容还有非常多,本文主要是针对面试的主要问题进行了一些整理。希望能帮助面试.NET开发的程序猿。在笔试时注意上面的一些问题。拿到期望的offer还是相当easy的。最重要的是准备,即使是非常有经验的程序猿參加笔试也不一定可以拿到高分,相反的经过准备的外行人可能在笔试的时候脱颖而出。所以须要针对性的去准备。


  • 相关阅读:
    golang 多个worker正常关闭的示例
    golang调试工具Delve
    Golang & GitLab-CI 详细实例步骤
    [git] 能在关键时刻救命的git指令
    高效实时数据排行榜实现
    [Golang] 编译程序时打上git提交信息标记
    [Golang] 开源一个帧同步服务器
    Golang etcd服务注册与发现
    Golang pprof详解
    shell 递归枚举文件并操作
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6768370.html
Copyright © 2011-2022 走看看