程序员面试攻略(第二版) 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];
}
第一章 准备
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表示法来分析
优化
相关文章推荐
- Programming Interviews Exposed: Secrets to Landing Your Next Job
- IT Security Interviews Exposed: Secrets to Landing Your Next Information Security Job
- Learning ROS for Robotics Programming - Second Edition(《ROS机器人编程学习-第二版》)
- C++大学教程(第二版)c++how to program Second Edition --电子工业出版社【美】harvey M.Deitel and paul James Deitel(更新中)
- 第二版前言:Preface to the Second Edition
- Programming Microcontrollers in C (Second Edition)
- Beginning ASP.NET 3.5 in VB 2008: From Novice to Professional, Second Edition
- Adding Logic Flow Control to Your Programming
- 读书笔记01 Programming Interviews Exposed 3rd ed
- below script to automate your stats job
- Initial job has not accepted any resources; check your cluster UI to ensure that workers are registe
- I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum o
- Chapter 13. Playing God: Basic Physics Modeling (Tricks.of.the.Windows.Game.Programming.Gurus,.Second.Edition)
- spark WARNTaskSchedulerImpl:Initial job has not accepted any resources; check your cluster UI to
- 12 Effective Ways To Improve Your Programming
- The C programming Language Second Edition
- Draw your Next App Idea with Ink to Code
- XML应用详解(第二版)(Special Edition Using XML, Second Edition )——1
- MIT_Press_Introduction_To_Algorithms_Second_Edition-Spellbound
- Hack Proofing Your Network (Second Edition)