挨踢行业找工作N步曲
(2010-09-09 13:20:15)
下一个
(辛苦敲的字,不想就丢了,收过来吧。)
先扫盲啊,挨踢和软件其实不是一个行业。我都是软件行业。挨踢的主要是管理公司网络,电脑维护等等。小的公司二者可能是合在一起的。
俺从2000年开始写软件,写了10年了。我个人很喜欢,但是也确实见到有的人做得很吃力,特别是女的,不知道为什么。我和一个旧老板也曾讨论过,为什么好的女程序员不多见,讨论没有结果,因为再讨论下去怕有歧视之嫌。我看到很多提出要注意是否要进这个行当。从我个人的体会来看,这是个easy money的职业。不用风吹日晒,不用天天笑脸迎和客户,程序其实容易写。诚实的说,我一天也就有个2-3个小时在干活就能和其他人持平工作进度。当然,这是前面那家公司,现在新到这家公司,还是要当小媳妇,乖一点。我这11年,主要是c#和c++。如果你善于和人打交道,干这个行业就是锦上添花了。我曾经的一个组,都是闷头干活的大老爷们,他们要求挨踢组给弄点事儿,永远要等一个月,派我出面,3天。嘻嘻。。我是女的。。。
找工作,我很有体会,不是吹牛啊,我相中的工作,十有八九我能拿到offer。不知道我的体会是否适用于其他行业。我也替公司招过人,所以还是小有体会的。今天就概述一下,没时间敲太多字,有问题问,需要我在哪个部分详述的我再补充。抛砖,抛砖,大家补充。
首先,是简历。如何让你的简历脱颖而出是第一步。现在大一点的公司,都是简历数据库,有软件自动检索简历,找出符合条件的。找法,就是检索关键字。所以,你看看招工广告上的条款,那些就是关键字了。这些关键字在你的简历里如果能有个80%,你就是非常符合这份工作了。准备几分简历,一份给程序员,一份给QA,一份给数据库。。。我是只愿意做程序,所以没写其他的。简历上把不相关的经验忽略掉,把相关的好好吹一吹。我每次写简历前,都要厚起脸皮来,把自己使劲儿的夸。如果是投给大公司的,注意使用关键字。如果能有人帮你从内部推荐是最好的,不是为了保障得到这份工作,而是保障经理能看到你的简历。要知道,很多简历都没有过HR这一关,或者根本就没能检索出来。连机会都没有了。简历的具体写法又是一篇3000字论文,我不多写了。有空再说。
然后,是电话面试。通常,第一个电话是HR的。他们打电话的目的,是确认你确有其人,而且你不疯不傻,能说话。。。通常,HR就是问问你是who,你现在干什么,如果你简历上对目前的工作保密(我的写的Information available upon request),他们这个时候会问你现在的婆家是哪一个。但是,其实,如果你把简历直接投给一家公司,这部分是不用保密的。我的简历是放到monster这样的网站上了,所以才藏着。这通电话,没有技术问题,但是有可能会问你现在的项目是什么。不要太诚实,要反复想着人家招工广告上的关键字。人家找服务器的程序员,你就说目前的项目是给一个UI的软件做后台服务器的支持。。。但是,靠的别太露骨了,除非你和新工作是同一个行业的。再有,就是要记得你自己简历上写了什么,不要简历和你好像是两个人。我通常投一份简历,我自己会留一个底,标上投给哪家了,人家一但跟我联系,我好知道自己吹嘘了什么。
第三,技术电话面试。你通过了HR那一关,就会接到电话面试了。电话面试有时候只有一个人,有时候可能是一大堆人。这次会有技术问题了,但是不会太深,太复杂。这次技术面试的目的,是看看你的技术水平是不是他们想要的范围的,是否真的是知道他们要找的技术种类。人家找JAVA,你只懂C#,这一关就不好过了。我现在的工作是服务器上的软件,所以电话面试时,都是服务器上的问题,我的超级强大的UI的经验是一点用都没有。电话面试的技巧之一:站着说。即便不是面对面,当你站着说话的时候,你的态度会积极很多,对方是能听出来的。然后,就是你也要提问题,不要以为提问是可有可无的。提问嘛,其实很简单,问问他们编程的cycle是什么样的?是water fall?还是iteration?用什么source code control?多长时间一次release?requirments谁来定?是否需要做支持?这些问题,是显示你对软件开发这一行的熟悉程度。千万不可说我没有问题。
第四,面试。on site了,就是技术大战的时候。通常,你也会见见经理,经理不大会问技术问题,但是经理会问问你通常都做些什么样的项目。你要把项目解释得和他们做的东西靠边。也会问问你为什么要换工作。经理主要看的是你能否和他沟通,是否痴傻呆孽。如果公司小,经理也会管技术,也会问技术问题了。然后,就是隆重的技术大战了。这个是要真枪实弹了。通常,问题一定要问到你不会了才算罢休,否则他们也无法知道你的技术水平到底在哪里。再有,就是性格的考验了,如果接连几个问题不会,你是否还能镇定自如就是水平了。有些问题是没有对错的,比如,如果service crash了,你会怎么办?这个其实是一个习惯和处理问题的方法的问题,仁者见仁,智者见智。熟悉service的人可能根据出事的时间就能猜出来。但是,这个问题问出来,不是让你做论述,而是看你解决问题的思路。所以,要冷静。简单的技术问题就是直接答,人家问题Debug在哪个namespace里,你就一句话答了就行了,不知道就只能说不知道,但是,可以说我从来没有需要用过,所以不熟悉。给自己辩解一下,辩解也要简单,多说无益。但是,如果你10个问题,有7个不知道,我觉得也就别辩解了。如果人家问的问题不是简单的技术问题,你就要能看出来人家到底是要考你什么。比如,service crash的那个问题,就不是一个具体的技术问题。人家问你是用interface还是abstract class,别说我习惯用interface。你要答这二者的区别。这个面试,同时也是看你是否和他们能合作,太拘谨,太激动,都不好,要侃侃而谈,自信满满,既谦恭,又自信。现在技术面试是很严的,就是说,技术问题问的很多很细。如果真的不懂,是很困难的。有些公司会有white board coding,就是上白板上手写程序,良心话讲,这是挺要命的,因为平时都是VS写,intellisense都有提示,没人需要记得所有的名字,所以,一但遇到这种考法,大家也都知道,要看的是sudo code,不是能马上运行的程序。要看的是你的逻辑流程。但是,如果让你写个recurisive从1加到10,这里面不太需要特殊的namespace,就是看你对recurisive的理解。我没遇到过当场写程序的。但是,遇到过一次,人家在白板上写了两个class,然后让我看两个的关系。逐渐演变成4个class,然后对于我不知道的一个问题,人家给我解释一下,就让我用。那是再看我的学习能力。还有过智力问题,就是那个者名的戴帽子的问题。写多了,写多了。。。
从现在的技术看,(只是从windows这边看),C++至少还有几十年的活头,c#是正当壮年,现在最热的是WPF和WCF,不懂有点落伍。但是学起来很容易。
对待面试,就算是最资深的程序员也得看书准备,很多概念问题,平时用不到的,只有面试用得到。看书(包括网),要针对对方的特点看,对方找service的程序员,你要看threading,对方找UI的,你要看UI,对方找web的,你要看asp。各个的模型要弄懂。
我个人喜欢coding,觉得做到退休应该没问题。我现在决定不了的是到底要不要向architect发展。我在原来公司做到后来开始做architect,现在的公司因为是小媳妇,只是写程序。我觉得写程序乐趣多,architect要闷一些,没程序可写。
Good job, thanks!