第一份岗位职责:
1、参与系统架构设计,能够独立负责具体模块的功能开发与实现,保持对系统的持续优化与改进;
2、参与需求评审,能够根据产品需求进行技术实现转化,能够撰写功能设计文档;
3、定期对自己的工作内容进行总结,定期对自己的技术沉淀进行分享;
4、良好的沟通能力,能够与团队成员和测试人员保持良好沟通关系;
5、根据业务发展需要,进行服务的技术方案选型、技术架构设计;
6、制定技术规范和操作流程,保障服务在高并发环境下的性能和稳定性;
任职要求:
1、统招本科学历;
2、5年及以上工作经验,扎实的计算机专业基本功,强大的编码能力;
3、有互联网高并发处理经验,独立负责多个有互联网特点的业务模块有定位与处理线上问题的丰富经验;
4、擅长使用开源框架,熟悉某个领域内对开源框架,做过选型研究,解读过部分或者全部源码,掌握实现原理;
5、研究过缓存、jvm调优、序列化、nio、RPC调用框架等,并且有相关实践经验;
6、精通MySQL应用开发,熟悉数据库原理和常用性能优化技术,以及NoSQL,Queue的原理、使用场景以及限制;
7、敏捷沟通、善于总结、思考、能够在实践中不断学习。
第二份岗位职责:
工作职责:
1、整体规划Boss直聘系统技术架构,参与需求分析、架构设计、技术决策以及详细设计;
2、优化现有系统的性能,解决系统中的关键问题和技术难题;
3、把握复杂系统的设计,确保系统的架构质量,核心部分代码编写、指导和培训工程师、不断进行系统优化;
任职要求:
1、全日制重点本科及以上学历,计算机或相关专业,JAVA基础扎实,熟悉io、多线程、集合等基础框架,熟悉分布式、缓存、消息等机制;
2、5年以上使用JAVA进行web开发的经验;精通AOP、MVC等框架。熟悉web开发的相关技术:html/javascript/ajax/xml等;
3、熟悉JAVA EE规范,熟悉常用的设计模式;精通Java及Web的开发和应用;熟悉大数据量、高并发、高性能的分布式系统的设计及应用、调优;
4、熟悉SQL,精通Mysql、Oracle等大型数据库,熟悉常见的NO SQL解决方案;
5. 具有良好OOP思想,熟练使用OO分析设计方法和设计模式,能够熟练运用UML进行分析设计工作;
第三份岗位职责:
工作职责:
1、整体规划Boss直聘系统技术架构,参与需求分析、架构设计、技术决策以及详细设计;
2、优化现有系统的性能,解决系统中的关键问题和技术难题;
3、把握复杂系统的设计,确保系统的架构质量,核心部分代码编写、指导和培训工程师、不断进行系统优化;
任职要求:
1、全日制重点本科及以上学历,计算机或相关专业,JAVA基础扎实,熟悉io、多线程、集合等基础框架,熟悉分布式、缓存、消息等机制;
2、5年以上使用JAVA进行web开发的经验;精通AOP、MVC等框架。熟悉web开发的相关技术:html/javascript/ajax/xml等;
3、熟悉JAVA EE规范,熟悉常用的设计模式;精通Java及Web的开发和应用;熟悉大数据量、高并发、高性能的分布式系统的设计及应用、调优;
4、熟悉SQL,精通Mysql、Oracle等大型数据库,熟悉常见的NO SQL解决方案;
5. 具有良好OOP思想,熟练使用OO分析设计方法和设计模式,能够熟练运用UML进行分析设计工作;
首先java基本功需要具备,所谓的基本功,不是简单的能写出代码,除了能写出来之外还要,在代码质量上面需要具体一定体现,比如对一些简单的多线程,以及常见的java框架有一定的修改,或者定制功能,工程中出现内存泄露或者程序执行效率方面能独立定位,并且找到合适的解决方案,其实能做到这些,公司真不会在乎你有几年的工作经验,特别是在社会化招聘的今天,技术能力才是第一位的。
历经至少3个以上项目的洗礼,在项目中独立完成一些基本的功能,毕竟能体现技术能力的东西,就是在市场上有产品的体现,这些才是实实在在实力的实现。有多个项目经验的,特别是在中国,能经历过多个项目的历练,说明本身具备一定的抗压能力,中国的互联网公司的加班加点已经不是什么秘密了。
第一个是基础。比如对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是通过源码了解底层的设计。比如一般面试都会问ConcurrentHashMap,CopyOnWrite,线程池,CAS,AQS,虚拟机优化等知识点,因为这些对互联网的企业是绝对重要的。而且一般人这关都过不了,还发牢骚说这些没什么用,为什么要面试。举一例子,在使用线程池时,因为使用了无界队列,在远程服务异常情况下导致内层飙升,怎么去解决?你要是连线程池都不清楚,你怎么去玩?再举一例,由于对ThreadLocal理解出错,使用它做线程安全的控制,导致没能实现真的线程安全。所以作为一个拿两万的JAVA程序员这点基础是要有的。
第二你需要有全面的互联网技术相关知识。从底层说起,你起码得深入了解mysql,redis,mongodb,nginx,tomcat,rpc,jms等方面的知识。你要问需要了解到什么程度,我可以给你说个大慨。首先对于MySQL,你要知道常见的参数设置,存储引擎怎么去选择,还需要了解常见的索引引擎,知道怎么去选择。知道怎么去设计表,怎么优化sql,怎么根据执行计划去调优。高级的你需要去做分库分表的设计和优化,一般互联网企业的数据库都是读写分离,还会垂直与水平拆分,所以这个也有经验的成分在里面。然后redis,mongodb都是需要了解原理,需要会调整参数的,而nginx和tomcat几乎都是JAVA互联网方面必配,其实跟阿里的技术栈选择有点关系。至于rpc相关的就多的去,必须各种网络协议,序列化技术,SOA等等,你要有一个深入的理解。现在应用比较广的rpc框架,在国内就是dubbo了,可以自行搜索。至于jms相关的起码得了解原理吧,一般情况下不是专门开发中间件系统和支撑系统的不需要了解太多细节,国内企业常用的主要是activeMQ和kafka。你能对我说的都研究的比较深入,阿里p7都不是太大问题的,当然这个还需要看你的架构能力方面的面试表现了。
第三就是编程能力,编程思想,算法能力,架构能力。首先2W程序员对算法的要求我觉得还是比较低,再高级也最多红黑树吧,但是排序和查询的基本算法得会。编程思想是必须的,问你个AOP和IOC你起码的清清楚楚,设计模式不说每种都用过,但也能了解个几种吧。编程能力这个我觉得不好去评价,但是拿一个2000W用户根据姓名年龄排序这种题目也能信手拈来。最后就是架构能力,这种不是说要你设计个多牛逼多高并发的系统,起码让你做一个秒杀系统,防重请求的设计能快速搞定而没有坑吧。
但是,满足前面4点,三年经验也只能保证你能有P6的评级,不一定能保证P7的评级,那么,如何才能评到P7呢?以笔者观察到的案例,是否P7一条最关键的就是你是否业内有知名度。
之所以提到知名度,源于笔者认为,这一条对于候选人来说最容易提升,否则,你和现有的阿里的工程师去拼JVM实现,MySQL优化,毫无优势,面试官有什么理由给你那么高评级呢。
那么,如果我要拿P8呢?笔者郑重的提示读者,如果你亲自拜读了这篇博文,并且觉得收获匪浅,那么你肯定还没达到P8的要求,因为笔者所见的P8,在业界知名度,综合能力方面,都已经超越了我言语所能描述的地步,我这篇文章,对于他们来说,一点价值都没有。这种修养,绝对不是三到五年就能熏陶出来的。
再看看p8到底是个什么样的存在
我们再来一个个的剖析他的技术点
转发+关注+私信“马士兵”即可获取
转发这篇文章,首先得,关注我,私信回复“马士兵”,即可获取顶级P8架构师,再造淘宝高清大纲!!!