当前位置: 首页 > 科技观察

阿里P8架构师讲述:3-5年程序员的发展和出路在哪里?

时间:2023-03-19 20:31:22 科技观察

工作3-5年后,程序员的成长将进入一个新的阶段。这不仅是程序员的黄金时代,也是最迷茫的时期,因为每个人都必须思考未来的职业方向。3-5年后程序员的发展和出路在哪里?是继续做技术人员,还是为管理者打拼?是继续留在大公司,还是跳槽到有潜力的小公司?如果没有核心竞争力,入行一两年新的程序员朋友可以代替你的大部分工作,而且薪水还低,怎么办,去哪里?核心程序员是相对稳定的一群人,整体跳槽率低于经验不足三年的程序员,但结合一开始的迷茫,这种稳定其实有点尴尬。5岁程序员面临的困境是,他们必须快速成长,成为技术总监,否则很可能被物美价廉的0-3岁程序员取代。那么一个程序员应该具备什么样的核心竞争力才能不迷茫,完成进阶呢?1、从思维的角度来看,很多人在正确认识自己的时候都会笑。当然,最了解自己的人是自己。是的,但很难正视自己的优点和缺点,客观地做出正确的选择。5年的工作经验,你应该很清楚自己是否适合IT行业,对自己是走技术路线比如做架构师,还是走管理路线比如做CTO或者将来创业。但这些必须建立在你对自己的了解之上。如果你很内向,不喜欢与人交流,但你做事井井有条,无懈可击,细心严谨,即使不是为了工作,也可以写出开源代码,乐在其中。说明你非常适合技术方向,如果想做管理岗位,还需要多多培养。回归编程的本质让我们回归编程的本质,重新认识程序员这个职业。很多人认为程序员只需要根据自己的需要编写代码即可。这虽然没有什么不妥,但即使你完成了上述工作,也依然难以拉开与他人的差距,提升自己。有三点建议:(1)。使用代码来解决问题。写代码的最终目的是什么?是为了产品的诞生。对产品功能的代码分析、思考、实现能力是最重要的。写代码不是为了完成一个任务,而是为了解决一个问题。你需要了解这个问题的前因后果,调查类似问题的相同点、关联点和痛点,举一反三,真正解决问题,让程序员不用担心代码是否正确写得很漂亮,但是否能解决问题。(2).了解产品和用户。记得知乎上有个问题,程序员该不该给产品提建议?当然应该,不是有句话人人都是产品经理吗?更何况,他们还和产品经理程序员并肩作战。程序员不仅要提出建议,还要给出自己对产品的思考、理解、规划。代码里写的是真实的产品,只有了解产品和用户,才能真正生动。(3).商业思维我们需要从更高的层次来看待和理解编程的工作。我国没有美国这样深厚的技术积累,技术创新能力也与其相去甚远。因此,我国的互联网产品更多的是商业模式的创新,而不是技术的创新。程序员掌握的技术可能不会像商业模式那样被淘汰得那么快。商业模式的快速进步和更新,必然要求技术能够快速更新以支持其发展。2、从技术方面入手在BAT这样的公司,业务变化非常快,要求技术体系能够适应这样的变化,这直接导致几乎所有的架构体系都在向着通用性和可扩展性的方向不断发展,所有以提供商业能力为最终目标。如果没有商业思维,如何理解和更新庞大的技术体系?技术服务于商业,商业推动技术进步。这是互联网公司的基本规律。商业思维的一个体现可能是前瞻性的。如果你能看到未来的技术需求和发展方向,你就是行业专家。现在网络上最热门最新的技术知识有哪些?根据阿里巴巴面试准入标准的定义1.架构师基础建设题目(一)并发编程并发编程几乎是所有互联网公司面试必问的问题。并发编程是Java程序员最重要的技能之一,也是最难掌握的技能之一。它要求程序员对计算机的底层运行原理有深刻的理解,同时要求程序员逻辑清晰、思维缜密,才能编写出高效、安全、可靠的多线程并发程序。目前网上还没有系统全面的并发编程学习大纲。搜集了很多资料,总结了最全面的学习大纲:(二)JVM性能调优性能一直是令程序员头疼的问题。当系统架构变得复杂和庞大时,性能会下降,尤其是像阿里巴巴这样的一线互联网公司。所以,想要进入阿里,性能优化一定是深入学习和理解的一环。虽然不能算是优化方面的专家,但是可以自信地说自己精通(注意:简历上不要写精通xxxx,不然面试官会杀了你,幸好我对这方面还是有信心的)(3)网络编程与高效IO(4)Tomcat进阶分析(5)MySQL深度优化、Linux基础与进阶、实用设计模式了解大牛是如何写代码的,从而吸收大牛的代码技能。在阿里面试中,经常会问到MyBatis、Spring等框架的底层原理。企业不同。要想在一线互联网公司站稳脚跟,成为全能选手,就必须了解和学习最主流的分布式架构中的大量知识。而且在阿里面试过程中,面试官会问一些实际应用场景的问题:比如微服务、用户量、并发度、业务复杂度、可扩展性等等,这里就不赘述了。我提供一个分布式架构学习思路,也是我还在学习的系统:(1)分布式架构思想和分布式协同分流(2)异步和消息中间件(3)Cache和Nosql(4)高可靠数据存储和常见分布式场景解决方案4.微服务微服务是互联网架构技术中最热门的话题之一,也是我目前正在学习和研究的方向。阿里面试过程中,面试官很少问微服务相关的问题。但是作为开发者,有技术梦想的程序员,微服务架构是现在必须了解的主流技术(1)springboot、springcould、Docker虚拟化技术(2)dubbo应用与源码解读、RPC原理5.DevOps(架构师工具箱)6.B2C商城实战