程序员怎么获得高工资

4,306 阅读11分钟

    经常听见朋友抱怨自己水平和同事不相上下,甚至更强,工资却没有别人的高,主要原因有两个:

            1、技术面试:没有表现出来自己的能力

            2、人力面试:没有与人资谈薪资的技巧

    下面我们一起来分析一下这两个问题。

    在技术面试中一般会从3个方面考核个人能力,项目的开发能力,技术能力的广度和技术能力的深度。

    1、项目开发能力,面试中在个人的开场白后面试官会选择一个简历中的项目或者让面试人自己选择项目描述,这里主要是检验面试人的项目能力,包括项目理解力,沟通能力和思维能力等。选择哪个项目比较合适?描述和公司的业务或者和这个职位的业务相关的项目是一个更好的选择,因为相关面试官会更了解业务,所以就要求面试人对项目的描述要更有条理。介绍整个项目的时候最好围绕以下几点描述:

        1、项目的目标,项目主要解决了什么问题,是否能讲明白这点非常重要,只有说明白了问题域,才能使项目的实现更合情合理。

        2、项目是怎么实现的,采用了什么技术,框架,有哪些困难,又是采用什么办法解决了?这个阶段面试人要仔细的思考一下,是主要体现能力的地方。最忌讳简单的描述实现方式是增删改查,没有难点和亮点。有句老话叫:“会者不难,难着不会”,所以当开发完成一个项目后总是发现项目没有什么难度,找不出亮点,其实是已解决的问题都会感觉到比较简单。所以做完项目后总结一下,回顾一下项目开发过程中设计的优点和缺点,挖掘一下项目的亮点,使项目更饱满。也不用回避项目中的缺点,项目没有一蹴而就的,不是所有问题都可以完美解决的,所以不妨说出项目的缺点,如果能给出一个补救措施会更好。

        3、自己在团队中是什么角色,做了哪些贡献?有哪些收获?重点是哪些收获,因为以前的都是过去式,将来能在新项目做多少贡献才是重要的。所以项目中使用到的技术,框架,技巧等,如果能深入研究一下对以后的工作和面试会有比较好的帮助。

    2、技术广度

            如果上一条是考察项目开发能力,后面考察的就是技术点了。关于技术考察,听过太多的人抱怨,网上看的帖子或者同事朋友的聊天,XXX公司傻叉问我堆排序/堆排序的时间复杂度/ArrayList和LinkedList优势和劣势/HashMap和HashTable的区别等,项目中也不使用,问这些没有任何用处,纯粹是刁难。工作过一段时间的程序员面试比较讨厌回答基础知识点,首先是工作中用不到,问这些没有意义;其次是大学学的那点基础知识早还给老师了,或者就没学会。但是牢固的基础知识是程序员职业能更好发展的推动力。

            1、二八理论,程序中80%的代码是为了解决20%的场景,所以怎么优雅的解决开发中那20%的场景就需要我们有超出常用知识以外的技术。

            2、性能优化,使用合适的技术可以更高效的实现产品功能,积少成多性能就会有明显的性能差别。

            3、写而优则架,随着工作经验的累积,大部分人会逐渐走上架构师或者技术经理的管理岗位,项目的架构,技术选型等都需要更多非代码的技术才能更好的完成。

            所以良好的技术广度会使程序员走的更远。那么作为程序员的我们需要学习哪些知识呢?

            1、计算机基础:操作系统,编辑原理,数据结构,算法设计与分析,这些知识可以有助于我们了解计算机软件基本的运行原理和运行效率。

            2、应用运行环境:linux,apache/nginx web服务器,mysql/oracle等db,redis/memcache缓存等,hadoop,mango等nosql数据存储

            3、开发语言:Java语法,JVM,系统框架(spring系列, struts系列,ibatis/hibernate),各种封装工具类:apache下的commons系列,常用场景开发工具包,HttpClient,JSON包,XML解析类,日志输出工具Log4j等;

            备注:因为我是Java开发出身所以这里只列举Java相关知识

            4、开发环境和项目管理:eclipse/idea等,maven/ant项目管理,svn/git等代码库等

            5、设计思想:面向对象设计思想,OOP七原则,测试驱动开发等

            看的这里估计会有很多人犯嘀咕了,完全学会这些要到猴年马月(哈哈,明年就是猴年了,快了哈)了。虽然这里列举了很多,但是大家可以选择性的学习,当然也可以超出这个范围学习,艺多不压身。天道酬勤,功不唐捐;日拱一卒,功不唐捐,每天一点进步,面试的时候就会有收获。

    3、技术深度

      回想一下,当几个程序员在一起讨论问题的时候,若一个人讲某个知识点的的深度和自己了解的差不多,就会感觉不过尔尔;当讲的内容有部分没有了解过的,就会感觉不错有料;当这个人讲出从来没有想过或者没有接触到的时候是不是有点大牛的感觉。所以推己及人,当面对面试官的时候就某个知识点能讲出足够的深度会给面试官留下深刻的印象,对个人的评价,定级以及入职后的合作都有很大的帮助,因为人会更尊重能力强的人。

      怎么达到给面试官留下深刻印象的技术深度呢?

      1、一个取巧的方式是在准备面试的阶段,研究一个技术点,尽量深的挖掘,面试时如果有机会聊这个点,会有一定的效果。其实这种也不算一种取巧,技术深度的考察就是考察候选人是否有专研的能力,学习能力。研究的知识点尽量是以往项目中用到的,至于原因好好想想就明白了。

      2、平常多积累,项目中使用到的技术点,向深层次挖掘,在使用的时候才能更好的应用。学习的时候最好能形成文档,看一遍和写一遍是完全不同的效果。

            看到这里,很多人已经明白了,这不是面试技巧,是平时的学习技巧。是的,技术没有捷径可走,不经风雨无法见彩虹。没有良好的基础在面试中是无法获得更多的认可的,所以需要平常要多积累。虽然没有捷径,但是如果真的按照上面介绍的3个方面整理一下项目的经验,巩固一下基础知识,然后在找1-2个点重点突破一下,1个月的时间技术面试应该会有比较大的提高。不积跬步无以至千里,不积小流无以至江河,所以要想走的更远,飞的更高,需要平时的积累和学习才是最重要的。

    技术面试通过,只是拿到offer的第一步,是不是自己满意的offer,人资面试是非常关键的一环。一般公司的人资是没有拒绝面试人的权利,当然也存在一些公司的人资会审核候选人的资格,如果资格不过就不会谈薪资了,所以谈薪资的时候不要有那么多顾虑。很多候选人会把面试官作为对立面的人去考虑,其实他们可以是面试人的伙伴战友,是面试人进入公司的推荐人。社招时公司一般是有人力需求,甚至需求比较急迫,所以人资这时的压力比较大,它非常想尽快把“坑”填上,经过几十上百份简历的筛选,一个个的电话通知,又沟通面试官面试,能通过的基本上也算百里挑一了,所以人资不会故意设置障碍阻挡面试人进入公司,只是从公司的角度出发,压缩成本,过滤南郭先生。当然能不能获得人资的“助攻”,也要掌握沟通技巧,面试的时候做到不骄不燥,有理有据。

    1、沟通中个人素质的表现:人资也是人,也会有好恶,体面的穿着,礼貌的谈吐会给人资更好的印象。见多了不修边幅的程序员,一副老子技术牛逼工作随便挑的表情,这种表现很难获得人资的认可,所以在谈薪资的时候人资也不会给多大的助力。

            人资面试时注意事项:

    1、人靠衣裳马靠鞍,虽然不用为了面试买西服套装,但是也尽量让自己职业化,服装干净整洁。

    2、伸手不打笑脸人,面试时候要有礼貌,礼貌不是谦卑,而是对彼此的尊重。也不要太客套了容易产生距离,不经意间谈一下天气,开个无伤大雅的玩笑,试试找找朋友的感觉。这个度需要好好把握,如果把握不好,就尽量不说脏话口头语,谢谢长挂嘴边,多微笑,这些也不会掉分的。

    2、准备评估个人价值:很多人没有拿到满意的薪水都是因为没有准确评估的自己的价值,入职了偶然打听到同事的工资,或者朋友聚会了解对方的工资,才发现自己低了一大截,本来非常满意的工作岗位瞬间成了鸡肋,所以一定要评估好自己的价值。

            1、首先要给自己定位,初级开发,中级开发,高级开发或者架构师,自己有一个准确的评估才能准确判断职位是否适合自己;

            2、其次摸底行情,咨询最近换过工作的朋友,他们的工资有一定的参考价值,一些招聘网站上的职位也会有工资区间,都可以做参考;

            3、最后给自己定价,建议定在职位工资区间的高段,万一实现了呢。确定完价格之后,把自己的价值点列一下,为什么自己值这样的工资,这样才能和人资沟通的时候去展示或者描述这些价值点,说服人资认可自己的定位,做到有理有据,这样他们才能尽力去争取。

    3、正确判定职位薪资的区间:一般公司对职位会有一个工资区间,所以准确的判定薪资空间才能更好的谈判,因为在谈薪资的阶段,只要没有超过职位薪资区间人资都是可以谈的,所以面对心仪的公司或者职位准确的薪资区间可以使自己处于更加有利的地位。人资一般都会问一下期望的薪水,获得回答后,再次确认最低接受薪水,这个时候一定不要准确回答,说一个数字或者说不能降低了,可以描述说差不多就这样啦,或者说自己根据目前的薪资水平或者自己的能力值这个价格等迂回回答是更好的方式。如果人资给了一个数字,自己不满意,不拒绝也不接受,找理由先考虑一下,然再请它帮忙争取一下自己满意的薪资,过段实际(最好要求一周左右的时间)再答复。一方面自己可以试试其他的职位,增加一下谈判的砝码,另外比较紧急的职位人资也会为了尽快办理入职而为候选人争取调整一下工资待遇。

    面试是进入公司的第一步,进入公司面试官就是要并肩作战的伙伴、战友,所以他们是应该是队友而不是对手。诚以待人,以技服人,获得面试官的认可,才能收获满意的职位。

            跳槽有风险,换工作需谨慎。怎么跳槽才合适,请欣赏我的另外一篇文章:前事不忘后事之师,it人员应该怎么跳槽

    转载请注明:孙豪杰的博客 » 程序员怎么获得高工资