面试中注意的问题。

  最近面试了好几家公司,大部分都是面试正规的大企业,所以感想挺多的,下面就几个问题谈谈面试的问题。通常注重基础也就比较多,当然面试的问题也就相当基础。比较有体会。由于本人有六七年工作经验,大部分时间面试基本就是面谈,很少有笔试,但还是有一些公司要求笔试。要求笔试的公司职位基本是程序员和软件工程师,部分高级程序员,程序分析员和少部分公司系统分析员职位。下面就本人碰到的问题和大家交流交流(本人只专一ERP,MRP,MIS系统的开发与设计,只能碰到这方面的问题)。

  第一点:程序问题。

        此问往往考的都是基础问题,同时考你对这个问题的理解是否会考虑全面(这种问题往往比较简单,但要做好,得有一些生活常识)。更多的不会考你对哪个组件很了解,就这个问题。我曾经问过一些招聘面试人(本人面试别人也是这样的主张),答案基本一样:基础才是根本,组件的东西,看看Window的MSDN在线文档很快就可以解决了。给个台湾一大型企业面试高级程序员C#试题来说明:

  下表是台北市下列十年的天气变化状况,请用你所熟悉的语言程序求出十年平均气温的平均值,十年最低气温的最低值及年份,十年最高汽温的最高值及年份。

  台北近十年气温变化表

年份平均气温最低气温最高气温
199141.19.3
199232.25.1
199373.18.2
199451.57.4
199532.17.1
199644.38.9
199722.99.1
199831.29.2
199952.79.4
200053.59.5

  :数值是大概的,但记住基规律,最低气温乱,最高气温都是乱的,但没有重复值。. 

这个问题需要注意几点:

  第一、平均气温没得说,只一个值,这个没得说。

  第二、如果你只看其最低气温和最高气温没有重复值,很多人会想只会有一个最高、最低值,这样用两个循环就可以求得。这样往往出来的结果有错,因为最高气温和最低气温可能不只一条记录(这点大家最容易出错,很多人都只有一个值,以前本人招人时经常碰到这样的事)。

  第三、就是考数据对象创建。主要用来存储表的值。

  第四、考程序语言。所以一定要用程序语言,而不是用SQL语句,也不是存储过程(用SQL语句和在座过程太简单了,没那么容易考你),所以本人在前面加了粗体。

  考查知识点:对象、数组、集合类、循环、算法(就本人理解是这样)

  就这样问题,写了一个小示例,不是最简的,但能说明问题就OK。大家可以简化。

 

using  System;
using
 System.Collections;

namespace
 TestSample
...
{
    
class
 Sample
    
...
{
        
static void Main(string
[] args)
        
...
{
            
//定义数组用来存储数据

            T[] t= ...{new T("1991",1,1,32),
                    
new T("1992",3,5,31
),
                    
new T("1993",2,3,33
),
                    
new T("1994",3,2,32
),
                    
new T("1995",4,21,31
),
                    
new T("1996",9,2,38
),
                    
new T("1997",3,1,38
),
                    
new T("1998",4,24,37
),
                    
new T("1999",1,21,38)}
;

            
//定义变量

            double temperatureTempSum=0;
            
double
 MaxTemperature;
            
double
 MinTemperature;
            
string
 MaxYear;
            
string
 MinYear;
            
//将数组第一个值赋给各变量

            MaxTemperature=t[0].MaxT;
            MinTemperature
=t[0
].MinT;
            MaxYear
=t[0
].Year;
            MinYear
=t[0
].Year;

            
int minOrder=0;//定义最低气温最小值的序号

            int maxOrder=0;//定义最高气温最大值的序号

            
int[] inm=new int[t.Length];

            
for(int i=0;i<t.Length;i++
)
            
...
{
                temperatureTempSum
=temperatureTempSum+
t[i].AT;
                
for(int j=i;j<t.Length;j++
)
                
...
{
                    
//取得最大值的序号

                    if(MaxTemperature<t[j].MaxT)
                    
...
{
                        maxOrder
=
j;
                    }

                    
//取得最小值的序号
                    if(MinTemperature>t[j].MinT)
                    
...
{
                        minOrder
=
j;
                    }

                }

            }

            
            
//定义最低气温最小值的存储重复的值
            ArrayList minTAL=new ArrayList();

            
//定义最高气温最大值的存储重复的值

            ArrayList maxTAL=new ArrayList();

            
for(int i=0;i<t.Length;i++
)
            
...
{
                
                
if(t[i].MaxT==
t[maxOrder].MaxT)
                
...
{
                    maxTAL.Add(
new
 T(t[i].Year,t[i].AT,t[i].MinT,t[i].MaxT));
                }

                
                
if(t[i].MinT==t[minOrder].MinT)
                
...
{
                    minTAL.Add(
new
 T(t[i].Year,t[i].AT,t[i].MinT,t[i].MaxT));
                }

                
            }


            Console.WriteLine(
"Sum of Average Temperature is "+temperatureTempSum+" ,Array of T is "+t.Length);
            Console.WriteLine(
"Average temperature is "+(temperatureTempSum/
t.Length));

            T tt
=new
 T();

            
foreach(Object ttt in
 minTAL)
            
...
{
                tt
=
(T)ttt;
                Console.WriteLine(
"Min temperature is "+tt.MinT+"    Year "+
tt.Year);
            }

            
            tt
=null;
            
foreach(Object ttt in
 maxTAL)
            
...
{
                tt
=
(T)ttt;
                Console.WriteLine(
"Max temperature is "+tt.MaxT+"    Year "+
tt.Year);
            }


            Console.Read();
        }

    }


    
//定义年气温对象T----Temperature
    public class T
    
...
{
        
public string
 Year;
        
public double
 AT;
        
public double
 MinT;
        
public double
 MaxT;

        
public T()...{}

        
public T(string year,double at,double mint,double maxt)
        
...
{
            
this.Year=
year;
            
this.MaxT=
maxt;
            
this.MinT=
mint;
            
this.AT=
at;
        }

    }

}

  另就具体的语言会有不同的问题,如C#中委托概念关实现,相关线程示例,Remoting简单输出Hello world等等。

还有一点,C#有不少公司会叫你定义一个对象:比如Person、或Customer等等,其中有一方法是ToString(),小心,这是要override,别忘记了,好多人就因为这而中招,导致错误。

  第二点:操作系统问题。

         这样的问题在网上比较多。大家可以看看。但比较多公司基本都有如下问题:

  线程概念,进程概念,进程与线程关系,死锁(Deadlock)概念,死锁产生的原因,死锁怎样避免。这些东西主要是台湾、香港的公司可能名称叫法不太一样,一般都会给出英文单词,美资或其他国家投资的公司基本都用英文。所以大家别怕这样的问题。看看操作系统就OK了。

        第三点:数据库问题。

        数据库的问题注意两点,我想就差不多了。

  A:SQL语句问题,这样的问题多种多样,基本都会有GROUP BY语句,一定要会GROUP BY。形式基本就是给出一些表,然后写出SQL语句或输出结果(特别记住:时间有限输出的结果很简单。两种方式:一条记录或一个值。如果你输出结果一般超过二条记录,可以说绝大部分是错误的)。

Oracle P/L SQL语句,SQL Server Transact SQL语句。注意:有些比较BT的公司会让你一个问题用两种方式写出来,两种SQL语句有点不太一样,大家注意点。如果你不懂的别自以为是,写出来了错的,人家说你没水平,导致面试失败。不懂就说我不懂。但大部分都一样。

  B:概念问题(大部分公司都有如下两个问题)。

  事务(Transaction,台湾和香港不叫事务,叫什么本人忘记了,其他国家的用英文Transaction)。概念及几大特性。

  范式(一、二、三)都得给我搞懂了。

第四点:网络问题。这种问题,一般都有两种情况

  A、画一图,问你看看哪个点必须。

  B、配置IP或求出最多能用多少台机,

  以上这两个问题特别多。

  第五点:图表问题。不外乎几种:程序流程图,系统业务流程图,还有UML图等。

  A、程序流程图:基本会给出一个小问题,然后用语言描述出来(考语言理解能力),用图描述出来(理解并说明能力),用伪代码描述出来(理解并说明能力)。

  B、系统业务流程图:老实说这种问题比较难举例,但部分公司会叫画ERP系统流程图。这东西比较麻烦,为什么?因为每家公司ERP系统流程图都不太一样,所以我建议是画自已以前做过的或看过的。这样简单,书上的基本大部分功能很全的不要全记,记住关键的几大块我个人觉得比较合适。比如PO(采购),SO(销售),IC(库存),Cost(成本),AP(应付),AR(应收),FA(固定资产),HR(人力资源),MRP(MRP模块),BOM(物料清单),Plan(计划)等等,这些主要的基本体现在上面,箭头方向千万不能错,否则人家说你不了解。搞定这些我想就行了,其实没有几家公司面试人会很注意这个问题,最主要是看你的关键地点有没有错。箭头方向有没有错。

  C、UML图问题,基本都是面谈。问一下用过哪些Design工具:如比较多的IBM Rational Rose,Microsoft Visio,Sybase Power Design等。就这些。介绍一下就OK了。

 

  除上面几点外,会增加一些软件工程方面的问题。比如,软件开发的流程,测试中什么白盒测试等等,软件生命周期,维护方面的问题,看一下软件工程方面的书,记住多少谈多少,不会有人太在意。记住一点:招你的人要的是能干活,不是要吹的,所以注意前面的比较实际的,面试人就已经很满意了。

  总之,面试职位越高,题就越难,量上基本差不多两个小时做的时间,再多的时间可能不会让你做。想做满分,基本不可能(一般原则:如果能做满分的人多,说明出题人没水平,做不及格的人多,说明出题人是做理论的,不是做实际工作的。结果:及格以上就OK了,个人80分以上算不错的高手。还有招聘还有很多人为的因素。比如ERP流程图,各家的都不一样,不可能给到你满分,只要关键的给出来算你这图合格)。 

  老实说,如果你真的能做到满分,除非你面试很高的职位,否则。基本不会要你,因为你会威胁到面试人的地位。如果你的上司是香港或台湾,或者外国的,那可能问题不大,如果不是,是大陆的,应该你不是考虑的范围。如果是老总亲自招,那你进去一定着你上司排挤(老总除外)。

       还有一些其他的问题:比如说你应聘的职位要与你的面试能力而定,不能超出你的职位,否则你进不去。比如说因为某种原因你离职,经前是做主管或经理的,面试程序员,那你就在面试时只做好程序员的部分就对了,一般有分析的部分,做到还差不多看得过去。这样你进去的机会比较多。否则进不了(原因你进去会威胁到你上司,国内人做上司经常这样,不只一家公司,是绝大多数公司都这样)。

       经验总结,切记!切记! 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值