您的位置:首页 > 职场人生

程序员面试攻略(第二版) Programming Interviews Exposed-Secrets to Landing Your Next Job,Second Edition

2008-09-04 22:30 357 查看
对本书作个简略的翻译,顺便学习英文。

第一章 准备

1.了解你自己

    与编程相关的问题:

    你是系统程序员还是应用程序开发者?

    你喜欢编写用户界面吗?

    你是一个好的调试员吗?

    你喜欢测试吗?

    你是一个系统架构师还是一个程序员?

 

    与编程无关的问题:

    你喜欢管理吗?

    你想进大公司吗?

    你想进小公司吗?

    你更喜欢开源的项目吗?

    你喜欢长期的还是短期的项目?

 

2、了解市场

    基本的市场信息:

    在线投简历

    去书店

    社会关系网和特定的网站

    专业开发课程

 

    关于外包:

    为软件开发公司工作

    为外包公司工作

    提升程序员的食物链

    进入管理层

 

3、培养市场导向的技能

    提升你的信任度

    得到认证

    多了解和参与一些项目

    学好学校的课程

    不断学习

    去公司实习

 

4、定制化你的简历

 

第二章 应聘过程

1、找到和联系公司

    通过网络

    通过猎头

    通过直接联系公司

    公平和广告

 

2、面试过程

    电话面试

    面试

    衣着

    面试时关掉手机

 

3、一个招聘者的角色

    招聘者可能引导你关注职位的利益而不提负面影响

    一旦决定给你offer,他会尽量提供你最低的工资

    一些面值官可能不会给你联系方式(名片)

 

4、offer和讨价还价

    如何对方招聘者施加的压力

    对工资讨价还价

        先弄清楚你自己要多少

        与招聘者约个合适的时间聊聊

        解释你的理由

        感谢对方

    接受和拒绝offer

 

第三章 如何解决编程问题

1、过程

    场景

    问题

    使用什么编程语言

    交互很重要

 

2、解决问题

    基本步骤

        懂得问题

        对问题举例进一步理解

        注重解决问题的算法

        将算法解释给面试官

        边编码边解释

        该提问时就提问

        对代码进行验证并用测试实例进行测试

        对特殊情况进行考虑,尤其是边界问题

    

    当你被卡住时

        回到之前那个例子

        换一种数据结构

        考虑该编程语言的高级用法

    

 3、分析你的解答

    分析两个例子

    大O表示法/* Returns the largest integer in the array */
int CompareToMax(int array[], int n)
{
int curMax, i;

/* Make sure that there is at least one element in the array. */
if (n <= 0)
return -1;

/* Set the largest number so far to the first array value. */
curMax = array[0];

/* Compare every number with the largest number so far. */
for (i = 1; i < n; i++) {
if (array[i] > curMax) {
curMax = array[i];
}
}
return curMax;
}
   /* Returns the largest integer in the array */
int CompareToAll(int array[], int n)
{
int i, j;
bool isMax;

/* Make sure that there is at least one element in the array. */
if (n <= 0)
return -1;

for (i = n-1; i > 0; i--) {
isMax = true;
for (j = 0; j < n; j++) {
/* See if any value is greater. */
if (array[j] > array[i])
isMax = false; /* array[i] is not the largest value. */
}
/* If isMax is true, no larger value exists; array[i] is max. */
if (isMax) break;
}

return array[i];
}
    同样是找出最大数,想想上面两个例子哪个更有效?
    大O表示法
    最好情况、平均情况、最坏情况
    怎么用大O表示法来分析
    优化
        

 

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息