程序员的自我经营之道第三层

(5) 笔试没有60分及格线这么一说
应聘职位的"笔试"和我们在学校的"考试"完全不同,不存在"及格"与"不及格"的问题,
也许你某一个道题回答的很精彩,但是总分并不是很理想也会被录用。
1.2.3.3 笔试技巧
我挑了几道笔试题,曾经给入职程序员出过的几个测试题,大家看看应该怎么作答,我
们再看看需要注意什么,题目如下:
1.2.3.3.1 例题1:请说出这个程序的目的是什么?返回结果是什么?
public Station(URL urla){
try
{
String a="",b="";
InputStream ins = urla.openStream();
BufferedReader bReader = new BufferedReader(new
InputStreamReader(ins));
String info = bReader.readLine();
int i=1;
info=bReader.readLine();
while(info!=null){
a=info.substring(0,info.indexOf("@"));
b=info.substring(info.indexOf("@")+1,info.length());
if (i==1){
this.X1=Integer.parseInt(a);
this.Y1=Integer.parseInt(b);
}
if (i==2){
this.X2=Integer.parseInt(a);
this.Y2=Integer.parseInt(b);
}
if (i==3){
this.X3=Integer.parseInt(a);
this.Y3=Integer.parseInt(b);
}
if (i==4){
this.X4=Integer.parseInt(a);
this.Y4=Integer.parseInt(b);
}
i++;
info=bReader.readLine();
}
}
catch(MalformedURLException e){
System.out.println(e);
该题解释:
第二问,返回值是什么?
总有人直接回答,说"没有返回值",这说明没有弄明白构造函数的声明,如果是普通函
数没有返回值的话,应该用"void"而不是没有写任何东西。
第一问,这个程序的目的是什么?
这个程序乍一看确实不太明白,其实,这正是在考察应聘者的想象力和理解能力,这个
程序一看就应该知道这是一个构造函数,这个构造函数里有四对变量分别是"X"和"Y"作为开
头的,让人直接联想到坐标,另外这个构造函数的名字是Station,说明这个类的名字是
Station,因此,可以想见,这个确实是这个Station 的四个点的坐标,是用http 协议到一
个Web 上去取得一个字符串,再去解出这个字符串中的每一个数字,赋值给相应的属性。
某君的比较精彩回答:
该函数是一个构造函数,他的目的是构造一个Station 类,根据他的名字和属性判断,
这个类有可能是描述一个物体的位置信息,这个信息可以解出四个变量分别赋值给不同的属
性。疑问,感觉用substring 和indexOf 的方法解析出数据比较麻烦,为什么本程序不用
String 的split 方法呢?那会更省事点。另外这个程序是采用URL 类的openStream()方法
得到远端某一个网页上的数据,那网页可能是一个JSP,可以直接从数据库中取得数据,这
个方法,省去了一个自建的Server 程序,这种用法我是第一次看到,感觉学习到了一个新
的应用方法的知识。
1.2.3.3.2 例题2:请写一段html,完成下列表格的样子。注意:是单线边框
}
catch(IOException e){
System.out.println(e);
}
}
A B C
D E F
该题解释:
陷阱一:这道题初看起来很简单,似乎就是在考一个简单的"
"标记,于是有很多人都直接画出了一个table,至于单线边框的问题,他们总是用
"border="1""来描述table。
这样的话,画出来的图一定是这样的如图1 1所示。
还是一个双线表格,并没有像上图一样的单线边框。
陷阱二:本题表格中的文字是大小写不同的,有的用的是小写,有的用的是大写,一定
要按照要求回答问题,这主要考察的是按照要求完成任务的能力。
正确答案:
如果你做过网页中的表格,一定知道应该用这个方法获得单线边框的表格,因为这是一个典
型的单线表格设计方法。当然,有的人用CSS 来回答这个问题,也可以算对,只是方法比较
复杂了。
图1 1
A
b C
D e F
1.2.3.3.3 例题3:一个算法题
再给大家一道据说是难倒很多人的题,这道题曾经有50 人接受过提问,但是,只有3 个人
答对,请大家试试如何回答。
要求:有两个数组一个N 个元素,另一个M 个元素,这两个数组中有些元素是相同的,希
望通过编写一段程序将两个数组中的相同元素找出来,请用最少的循环次数完成需求,请问
需要用什么方法?
一般程序员马上会想到类似如下的程序:
for (int j=1;jfor(int i=1;i……}}
那么,这个方法的循环次数是多少呢?
答:M*N 个。
但是,要注意这个题的要求是,最少的循环次数完成需求,这时候只要想想一共有几种方法
完成这个任务即可,然后从中选择一个最快的就行了。
正确的答案是,用哈希表的方法,这个方法的循环次数是M+N,一个是将M 装入哈希表的
循环,一个是将N 逐个放倒M 哈希表中去查询的次数。
这道题有两个陷阱,第一个,"算法题",一般有些程序员只要听到"算法"这个词,马上晕了,
从而影响合理的思考。第二个陷阱是"最少",用最少的循环次数的方法,而不是普通的,但
就是这么两个陷阱使很多应聘程序员落马。
1.2.3.3.4 例题总结
大家看看,上面的笔试题其实从技术方面来说都不难,但是陷阱比较多,而且,需要你
能够有想象力,与出题者形成互动。从这几个例题可以看出,招聘单位最需要的人是实践能
力强的人,因此,我们要从这个方面多下功夫,这些功夫获取途径仍然是加强日常的积累,
本书的后面章节中也会涉及更多的类似经验,读者可以循序阅读。
1.2.4 回答这个问题
言归此问,"大学毕业生找不到职业入口",为什么找不到职业入口?
我们的回答是--没有搞清楚什么是职业的入口!
何谓"入口"?
"入口"就是找到自己如何面对用人单位的需求找到自己的突破点,而这个"入口"有代表
一种自身完善的方向和方法,当你符合用人单位的需求时,自然就找到了进入职业的途径。
1.3 问题3:跨行业真的这么难吗?
我遇到有很多在别的行业或职业发展的朋友,通过自己的努力实现了程序员的梦。在很
多朋友看来,跨行业的发展是非常难的事情,然而,这个跨行业真的那么难吗?
我在本节中仍然要强调的是,"三百六十行,行行出状元"这句"陈芝麻,烂谷子"的话,
如果想成功,任何行业都可以发展。如果你现在还不是程序员,甚至是现在只是一个从事其
他工作的人,但是你真心的热爱"软件开发"这个职业,并希望"软件开发"将成为你毕生奋斗
的一个伟大事业,那么你可以阅读本书内容,如果不是,那么把本书放回书架,打消"跨行
业"这个念头吧。
进入软件开发领域需要的是:
真心的热爱,并且有为之奋斗毕生的心愿。
1.3.1 跨行业最难的是什么
跨行业发展的困难之处在于"你是否愿意放弃"。
我曾经看到过原来从事很多别的职业的朋友转到程序开发中来,有学财务的、学商业管
理的、学建筑工程的,还有原来从事技术支持的,做网管的,以及做系统集成的,其中我看
到跨度最大的是一位"厨师"加入到程序开发中来,这恐怕是跨度最大的了。
虽然我们看到了很多人成功跨越了行业,但是,这个过程确实是很痛苦的,因为,他们
必须学会放弃原有的已经从事一段时间的工作,甚至暂时没有收入来源,仅仅凭借着的是一
颗热忱的心,和一种孜孜不倦的学习精神去支撑着自己。
跨行业最难的就是,在最初先是"不务正业",然后发展到"在家待业",跨行业成功了倒
还好说,一旦失败会落一个"好高骛远"的名声从而"身败名裂"。
这说的有些夸张,但实际上确实要放弃很多。
想跨行业发展?让我们找到入口!
1.3.2 跨行业的入口--原来从事行业的业务知识
跨行业的入口,就是你原来从事的行业的业务知识!
找到你原来职业和程序员职业相通的点,找到事业的发展路径才是关键。前期从事的职
业经历,有很多业务知识是从学校门出来就搞开发工作的所不具备的,因此,跨行业的入口
就是你前期从事职业的知识,这些知识可以是你在软件开发行业中迅速成长。
例如这些情况:
学财务的--搞财务软件将得心应手,因为你的财务方面的知识恰恰是帮助你的法宝。
学商业管理的--商业管理知识帮助你理解ERP、SCM、BOSS 等系统的原理。
从事技术支持的、做网管、以及做系统集成的--更方面的了解用户的某些方面的开发需
求。
至于作"厨师"的那位,如果开发餐饮行业方面的软件你一定非常熟悉。
1.3.3 农民造出了飞机,为什么他还是农民
我们在不久前看到这样一则新闻:《张斗三:会造飞机的中国农民》
新闻中这样说的:
普通农民造飞机本身就是一件新鲜事,一件大难事,张斗三平日的职业是广州的一家建
筑公司的项目经理,说白了就是一个建筑队的包工头儿。整天与他打交道的不是盖高楼的钢
筋与水泥,就是修路、架桥。至于他自己的文化水平,小学三年级,仅限于此。因为儿时家
里穷,为了讨生活谋生,13岁的他就背井离乡出门打工,开始了他做劳工砸石头的人生之路。
再说,造飞机真不是一件容易的事,它涉及到一大堆的专业理论,物理,数学等等知识都得
会,这事可真不是一般的人可以做的。但张斗三愣是凭自己的执着做到了。厂地,他选自家
天台。飞机设计,他全凭自己脑瓜儿里冒灵感。至于这工具嘛,老张也有高招,这不他把家
用的工具,全都派上了阵,叮叮当当的敲打起来了……
1998年12月18日,张斗三制造出了自己的第一架飞机"斗强三号"。
……
乍看起来,这是一个非常令人振奋的消息,"我们国家的农民就是厉害",但仔细想想我
们却发现这则新闻中隐藏这一点点的"悲哀",那就是"造出飞机也还是农民"的"悲哀"。
这看起来是"张斗三"的个人"悲哀",但其实这是我们整个社会的一个问题--"出身"。
因为,"张斗三"出生时是一个"农民",所以,他即使是做建筑工程的"项目经理"他也是
"农民",即使是把飞机制造上天他还是"农民",即使最后将其称为"科学家"也要冠以"农民
科学家"的称谓。
虽然,在这个事情的背后,存在媒体炒作的需要,但这是我们国内社会面临的一个现实
问题,科技进步的投入重点始终是在"科班"出身的科学家身上。同时也反映出,我们的"民
间科学家"在作跨行业研究工作时面临的窘境。
这一社会现象对于我们跨行业的广大"非科班出身"的求职者有什么启示呢?
这是很值得我们去思考的一个问题。
1.3.4 回答这个问题
言归此问,"跨行业真的那么难吗?"
跨行业发展和"科班"出身的人相比之下,当然会面临一定的困难,这些困难,有的来自
于自身,有的来自于家庭,有的来自于社会。你能否看淡这些困难并坚持自己的目标?这是
成功的关键,一旦突破自我以后,你会发现:被你认为应该放弃的,你原来的另一个行业的
经验,在新的事业中成为你的优势。
这里我们用一句话来结尾:鹰击长空万里阔,壮心上下勇求索。
1.4 秘诀:经营自己的优势
问了那么多个问题,其实秘诀只有一个那就是"经营自我"!
前面说的"大学生入职问题"和"跨行业入职问题",不管你现在身处于哪种情况,你都要
面对同一个问题--"销售自己"。
有几个名词前面一直在提到,如"战场"和"供求"等,这些名词都无疑表露出在这个社会
中的现实性,在入职这个问题上我们觉得他更像是一个"市场"。我们每一个人都在经营一个
"小店",这个"小店"中销售的不是别的东西,销售的就是你自己。
1.4.1 善于发掘和积累自己的优势
经营的故事:
世界商业报道:
麦当劳,可谓人所尽知。可又有谁知道,在当时有一家快餐公司和比麦当劳同时起步。
麦当劳很傻,接管餐厅只做快餐,其他的统统外包,钱都让别人赚去了。另一家快餐公
司呢,则很精明,想肥水不流外人田,什么钱都不想让别人赚,做面包要用到面粉,就自己
包了块地种植大麦;要用到牛奶,就自己养了几头奶牛,生产线急剧扩大。
若干年后,麦当劳成了世界头号快餐公司,分店遍布全世界。而另一家快餐店则不见踪
影。后来,人们在荷兰的一个小农场里找到了他,他早已不开快餐公司了,就养着几头奶牛。
一个企业的成功,首先要弄清楚自己是干什么的,自己的核心是什么。如果不弄清楚这
一点,盲目跟风,见什么赚钱就上什么项目,最终必将一事无成。如果,你想把自己成功的
销售出去,也要像经营一个公司一样,从自己的优势和特长出发,弄清楚自己为企业提供什
么方面的服务,自己的核心竞争力是什么。
俗话说"一招鲜,吃遍天",依靠一技之长,走遍天下。而这个"一招鲜"不可能是学校培
养出来的,如果学校能够培养出来"一招鲜",那么他就不是"优势"了,因为大家都会。
真正的"一招鲜"是自我发掘和积累的过程,并依靠勤奋得来的,要用敏锐的眼光发掘"
市场",依靠自身积累切入某些市场领域,形成自己的一套"一招鲜"。
在技术积累的过程中,要"有的放矢",不能眉毛胡子一把抓。程序员要做到"低头做事,
抬头看路",所谓看准"市场",就是抬头看路的过程,看准路在何方后,并坚实的迈好向这
个路前进的每一步,这就是我们程序员们要进行的优势积累过程。
在开发业界,存在很多名词和知识点,这些知识点不需要各个都去研究,有些东西只要
知道他们的大概原理即可,对于我们程序员,切忌"什么都会,什么都不精",要做到"一门
灵",要掌握一个知识就要深入的挖掘它,最终成为自己的特长。
1.4.2 善于展示与利用自己的优势
通过技术积累将自己的优势和特长逐步沉淀,同时,我们还需要学会去展示与利用自己
的优势,去争取机会。
曾经有这样一句话"机会只光顾有准备的人",我们技术优势的发掘和积累就是在时刻"
准备"。但是,有时候"机会"不是那么容易自己找到你的,还需要每个人去展示优势去吸引
机会。
在简历中要突出自己的优势,展示自己"精深"的特长。
我们看看这个简历,这个简历是截取的一段内容,看看他的简历有什么问题:
1.4.2.1 首先,我们看一下他的"自我评价":
"本人是一个工作认真负责、为人诚恳、积极主动、适应能力强、善于团队工作的人;
思维严谨、乐于学习新的技术知识、适合做技术类的工作。"
这个"自我评价",你是否觉得似曾相识?
没错,估计在学校每学期写自我评价的时候,都是这样糊弄老师的。
要知道,这个简历是给你未来老板看的,如果你是在经营自己,你这份简历就是你的"
产品简介",要给你的"客户"看,来让"客户"决定是否要花钱购买你。
这个"自我评价"非常的平淡无奇,过于"大众化",他的"优势"根本没有任何体现,这样
的"产品简介"根本不会引起"客户"更多的兴趣,肯定没有人"买"。
如果,我是你的一个比较挑剔的"客户",针对这个"自我评价",面试的时候会问你这些
问题:
自我评价1"认真负责":
认真负责的是怎么界定的,什么叫认真负责,认真负责到什么程度?
自我评价2"善于团队工作":
善于团队工作指的是什么?团队是一个什么样的团队?你跟团队是如何配合的?你怎
么那么肯定你善于团队工作呢?
自我评价3"思维严谨":
什么是思维严谨?如何体现出思维严谨?
很显然,这个"自我评价"比较不负责任,用一些比较"高、大、全"的语言来涵盖"自我
评价"。需要告诉你,你未来的老板不像你的老师那么好糊弄的,要拿出"真本事"人家才会
买你的帐。
1.4.2.2 我们再看看他的专业技能:
"熟练掌握Java、JSP、Servlet、C/C++、HTML/JavaScript;熟悉JBuilder 开发工具、
能够基于JSP、Servlet 进行Web 的应用开发; 熟悉J2EE 规范、了解MVC 架构、XML; 熟
悉Weblogic、Tomcat 等应用服务器的配置、开发;熟练掌握关系数据库Oracle、SQL
Server2000等; 熟悉软件测试的流程与方法。"
这个"专业技能"更是平淡无奇了,几乎所有Java 程序员都会这些技能,没有任何特点,
而且我们发现他这个"专业技能"中出现最多的是"熟悉",要注意"熟悉"和"精通"可是两个概
念,"熟悉"只能说明你知道这个技术,"熟悉"这个技术和真正拿它来开发更是不能同日而语
啦。
那么这意味着,他的这个"专业技能"在明明白白的告诉未来的老板:"我所有概念都'
熟悉',就是没有具体开发过!"。
如果,咱们换位思考一下,你是这个公司的老板,你愿意要这个员工吗?
这样的简历中有没有你的影子呢?
如果有,那么应该避免这些问题的出现,重新审视自己的特长,努力完善吧。
1.5 点评"经营自我"
你是精品店?还是杂货店?不管是什么商店,都需要用心去经营,你认真对待你的顾客,
你的顾客也会给你相应的回
人生就是这样:
把自己交给市场,用心去经营。

你可能感兴趣的:(程序员)