在开始求职之前,需要做一些准备工作。比方说要知道自己喜欢什么东西而去求职,否则是没有意义的。仅仅成为一名好的编码人员是不够的,你必须理解市场想要的是什么,如何提高自己的应试技能,以找到适合自己的工作。知己知彼百战百胜,在主考官提问你之前,我们首先可以自问如下问题:
1、您是一名系统程序员还是一名应用程序员?
系统程序员与保持计算机系统运行的代码打交道,这些代码包括框架、工具、编译器、驱动程序、服务器等。另一些程序员是他们自己的主要听众,他们很少与非程序员打交道。应用程序开发者与此不同,他们所编写的程序被非程序员用来完成其工作,他们与非技术人员的互动更为频繁。
2、您喜欢编写用户界面吗?
如果是这样,而且如果您拥有这方面的技能,那就要恭喜自己的好运气了。用户界面设计是极为讲究的工作,容易被批评,很难做好,特别是在要考虑国际化和易用性问题的时候。
3、您善于除错吗?
如果您认为在自己的代码中除错已经是够麻烦了,请想像一下替别人的代码除错是怎样的感觉。这需要很强的分析能力和解决问题的能力。找到并消除缺陷可能是很有价值的,但肯定不是每个人都适合这项工作。
4、您喜欢测试吗?
测试也称为品质保证,或缩写为QA,常常遭到缺乏经验的程序员的诋毁,但那些有经验的程序员非常看重独立测试的价值。好的测试人员很难找到。编写工具和自动化的测试用例常常需要编程技能。
5、您是一名架构师还是一名编码人员?
每一个编码职位都需要某方面的设计能力,但某些工作比其他工作更需要设计能力。如果您喜欢设计甚于喜欢编码,软件架构师的职位可能更有吸引力。也就是说,架构师的职位可能涉及许多与他人的互动,较少涉及编码或根本不涉及编码,尽管您需要很好地理解如何进行编码才能有效地进行架构设计。除非您接受软件架构方面的正规培训,否则成为一名架构师的一般途径就是先参加编码工作,然后展示出您在设计和项目各部分集成方面的才能。
前面这些问题涉及您对哪一种类型的工作感兴趣,下面的问题与编程无关,但也是需要考虑的:
6、您对管理有兴趣吗?
某些程序员的长期目标是成为一名经理,但另一些程序员对这个想法会产生恐惧。但如果您的目标是成为管理者,就需要培养自己的领导才能,并展示出您在处理技术问题的同时,也能够管理软件开发中人的问题。如果您的目标不是成为管理者,请寻找那些提供良好的技术职业发展途径的公司,这样在提升时就不需要被迫去管理人。
在大的公司中工作既有好的一面也有不利的一面。例如,大的公司通常能够提供更大的工作稳定性,以及某种类型的职业发展途径。它也可能拥有非技术人员知道的品牌。但在另一方面,您也可能对大公司中常常发生的繁文缛节、要求严格和公司内部斗争感到窒息。
薪水可能少一些,但随着公司的发展和成功,从底层进入一个新公司肯定对将来有好处(可能会带来相当大的报酬)。当然,不好的一面是大部分新的尝试都会失败,您可能在一两年内失去这份工作。
9、您更喜欢开放源码项目吗?
绝大部分编程工作通常都涉及知识产权,封闭源代码的项目,某些程序员是反对这一点的。现在有一些向更开放的软件开发转变的倾向,为像您这样的人提供了更多的机会,可以参与开放源码项目并同时获得报酬。
10、您希望参加长期的项目还是短期的项目?
某些程序员渴望改变,最多在每个项目上花上几个月的时间。如果您喜欢短期的项目,而且不介意出差,那么成为一名咨询公司的雇员可能比成为一名传统公司的雇员要更好一些。重要的是您必须明白,这些问题没有标准答案,没有正确或错误的答题方式。但是,您在这些问题上对自己越诚实,就越有可能找到真正喜欢的编程工作。