很多php程序员觉得自己的水平不错,甚至更强,工资却没有别人的高,并一直为此郁闷,达妹认为,拿高薪还是有章可循的,本文就为大家从面试的角度分析一下,一个合格的php程序员该如何拿高薪:
技术面试
在技术面试中一般会从3个方面考核个人能力:
1、项目的开发能力
2、技术能力的广度
3、技术能力的深度
1
项目的开发能力面试中在个人的开场白后面试官会选择一个简历中的项目或者让面试人自己选择项目描述,这里主要是检验面试人的项目能力,包括项目理解力,沟通能力和思维能力等。
选择哪个项目比较合适?描述和公司的业务或者和这个职位的业务相关的项目是一个更好的选择,因为相关面试官会更了解业务,所以就要求面试人对项目的描述要更有条理。
介绍整个项目的时候 围绕以下几点描述:
1、项目的目标,项目主要解决了什么问题,是否能讲明白这点非常重要,只有说明白了问题域,才能使项目的实现更合情合理。
2、项目是怎么实现的,采用了什么技术,框架,有哪些困难,又是采用什么办法解决了?这个阶段面试人要仔细的思考一下,是主要体现能力的地方。最忌讳简单的描述实现方式是增删改查,没有难点和亮点。有句老话叫:“会者不难,难着不会”,所以当开发完成一个项目后总是发现项目没有什么难度,找不出亮点,其实是已解决的问题都会感觉到比较简单。所以做完项目后总结一下,回顾一下项目开发过程中设计的优点和缺点,挖掘一下项目的亮点,使项目更饱满。也不用回避项目中的缺点,项目没有一蹴而就的,不是所有问题都可以完美解决的,所以不妨说出项目的缺点,如果能给出一个补救措施会更好。
3、自己在团队中是什么角色,做了哪些贡献?有哪些收获?重点是哪些收获,因为以前的都是过去式,将来能在新项目做多少贡献才是重要的。所以项目中使用到的技术,框架,技巧等,如果能深入研究一下对以后的工作和面试会有比较好的帮助。
2
技术能力的广度如果上一条是考察项目开发能力,后面考察的就是技术点了。
关于技术考察,一些企业会问面试者一些基础知识点:堆排序/堆排序的时间复杂度/ArrayList和LinkedList优势和劣势/HashMap和HashTable的区别等。
有的学员觉得工作中用不到,所以没太注意这些,或者就没学会,但是拿到高薪的学员都有牢固的基础知识。
1、二八理论,程序中80%的代码是为了解决20%的场景,所以怎么优雅的解决开发中那20%的场景就需要我们有超出常用知识以外的技术。
2、性能优化,使用合适的技术可以更高效的实现产品功能,积少成多性能就会有明显的性能差别。
3、写而优则架,随着工作经验的累积,大部分人会逐渐走上架构师或者技术经理的管理岗位,项目的架构,技术选型等都需要更多非代码的技术才能更好的完成。
所以良好的技术广度会使程序员走的更远。那么作为程序员的我们需要学习哪些知识呢?
1、计算机基础:操作系统,编辑原理,数据结构,算法设计与分析,这些知识可以有助于我们了解计算机软件基本的运行原理和运行效率。
2、应用运行环境:linux,apache/nginxweb服务器,mysql/oracle等db,redis/memcache缓存等,hadoop,mango等nosql数据存储
3、开发语言:Java语法,JVM,系统框架(spring系列,struts系列,ibatis/hibernate),各种封装工具类:apache下的北京治白癜风去哪个医院治疗白癜风的方法