ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

工作三年还是只会增删改查,Java 程序员如何进阶?

2022-10-01 21:10:31  阅读:49  来源: 互联网

标签:


大部分的企业级应用从本质上看,都是在做增删查改,但是有些公司的业务复杂而专业,有些公司应用的在线用户很多,你做的增删查改和别人做的增删查改,可能会有极大的区别,举个例子:

你做一个新闻资讯网站,首页上需要展示当天最热门的十条新闻,网站每分钟大概有 100 个人访问,那么这个功能你可以这样实现:

select top 10 from 新闻表 order by 阅读量 desc;

但如果是一个跟腾讯新闻体量相当的网站或APP呢,每分钟有 100 万人进入首页,那么还能做成这么简单的一个查询么?相信数据库肯定是扛不住的!这时候看似简单的“增删查改”,其实背后有大量的技术在做支撑。

01

反思自己的工作

建议工作两三年的程序员,可以好好地反思一下自己现在做的工作,是不是简单的增删查改:

  • 业务是否专业?我拥有这些业务知识,是否可以在该领域长期发展?比如在金融相关的行业做核心系统,又比如一直在做支付相关的业务。 用户量是否大?是否有高并发的场景?项目为增加系统的高可用性,做了哪些措施? 是否能参与流程讨论和制定?是否能参与架构设计或功能设计?是否能摸到核心代码? 如果以上一项都不沾边,那么你很可能是在做简单的增删改查,这种敲代码的工作,可以说是“体力劳动”;也可能你现在的工资还不错,朝九晚五不用加班,你对现在的工作状态很满意,但是!建议赶紧跳出这个舒适圈;因为你很快就会摸到职业发展的天花板,很快就会面临失业的危机。

02

程序员如何修炼

如果你现在处在这个舒适圈,个人给你一些建议:

  • 如果你接受跳槽,那就果断跳:我是不鼓励程序员频繁跳槽的,但是不得不说,跳槽是解决这个问题最快的手段;【平台非常重要】,你可以通过选择一个更高的平台,跳出现在的舒适圈:在上一家单位的时候,我们的技术栈是 SSH + Oracle ,现在的单位以 Spring Boot、Spring Cloud 为主,关系型数据库和非关系型数据库都有使用,这就提高了不少; 如果你觉得现在的公司还不错,值得奋斗一辈子,那么先考虑一下能否把现在的项目做的更好,能否引入一下比较主流的技术组件以解决项目遇到的问题;能否担任更重要的工作; 不管跳不跳槽,程序员都需要不断地学习:利用碎片化时间学习虽然值得称赞,但是更鼓励抽出完整的时间去学习,最好关闭一切通讯软件,避免被打扰;并且把学习内容通过笔记、博客等形式记录下来。 至于技术路线么,建议还是从工作出发:比如项目中关系型数据用的比较多,那么除了会写 SQL 之外,还得懂一些数据库优化的知识,如果能引入一些 NoSQL 数据库就更好了;如果用户越来愈多,项目扩展越来越难,那么就要了解了解分布式架构设计,如何把一个大的单体应用拆分开,非核心功能可以引入消息队列进行异步处理,等等。

03

关于程序员的发展

1. 尽可能做到行业靠前

以前我总喜欢说,如果你做到行业内前 30%、 40%,甚至 50%,是不用担心失业的;

但是现在我也想增加个前提条件,30 岁之前这条定律是行得通的;过了 30 岁之后,就应该有失业的担心了,这时候你可能需要做到行业的前 20% 才能从容面对;

如果还不够,那就做到前10%!

2. 多元化发展

现在职场就业压力变大,对很多企业来说,他们并不要求程序员敲代码特别厉害,他们更希望招聘到身兼多职、拥有解决问题能力的“人才”;

所以如果程序员,在某些业务领域拥有深厚的业务知识;或者懂一些运营、数据分析的知识;又或者知道如何与需求/产品沟通,协调整个项目的运行和发展;那么职场道路可能会更宽一些,当遇到职业发展瓶颈的时候,选择也会更多。

3. 做点儿有主业有关的“副业”

工作收入是“单点”,而在软件架构中,单点的风险很大。能带来本质改变的,就是把“单点”变成“多线程”、变成“分布式”,做一些自己擅长的“小事业”,踏踏实实地积累,当做到一定程度的时候,你可能自然而然地就有勇气面对失业了;并且在这个过程中,你也可能也在不知不觉间变成了行业的 Top 10% 。

  • 接项目:也就是我们通常说的接私活,有些程序员觉得这个很难,其实第一步迈出去之后,后面的路子就相对容易了;话说我以前的项目经理,就是接了个“大活儿”,然后辞职创业去了; 做产品:做产品的话,周期相对会很长,可以是软件、网站和 APP ;产品不一定直接盈利,盈利可以靠流量(用的人多了,盈利就容易了); 技术输出:线下可以去讲课,做咨询,当然这些是需要人脉的,否则没有人请你;线上可以做的事情就多了,做视频、专栏、直播等等,当然这些都是需要“有干货”的,常年都有技术积累的程序员,可以考虑这些渠道。

总之,既然选择了做一名程序员,就要做好终身学习的准备,否则很容易被行业淘汰。

大部分的企业级应用从本质上看,都是在做增删查改,但是有些公司的业务复杂而专业,有些公司应用的在线用户很多,你做的增删查改和别人做的增删查改,可能会有极大的区别,举个例子: 你做一个新闻资讯网站,首页上需要展示当天最热门的十条新闻,网站每分钟大概有 100 个人访问,那么这个功能你可以这样实现: select top 10 from 新闻表 order by 阅读量 desc; 但如果是一个跟腾讯新闻体量相当的网站或APP呢,每分钟有 100 万人进入首页,那么还能做成这么简单的一个查询么?相信数据库肯定是扛不住的!这时候看似简单的“增删查改”,其实背后有大量的技术在做支撑。 01 反思自己的工作 建议工作两三年的程序员,可以好好地反思一下自己现在做的工作,是不是简单的增删查改: 业务是否专业?我拥有这些业务知识,是否可以在该领域长期发展?比如在金融相关的行业做核心系统,又比如一直在做支付相关的业务。 用户量是否大?是否有高并发的场景?项目为增加系统的高可用性,做了哪些措施? 是否能参与流程讨论和制定?是否能参与架构设计或功能设计?是否能摸到核心代码? 如果以上一项都不沾边,那么你很可能是在做简单的增删改查,这种敲代码的工作,可以说是“体力劳动”;也可能你现在的工资还不错,朝九晚五不用加班,你对现在的工作状态很满意,但是!建议赶紧跳出这个舒适圈;因为你很快就会摸到职业发展的天花板,很快就会面临失业的危机。 02 程序员如何修炼 如果你现在处在这个舒适圈,个人给你一些建议: 如果你接受跳槽,那就果断跳:我是不鼓励程序员频繁跳槽的,但是不得不说,跳槽是解决这个问题最快的手段;【平台非常重要】,你可以通过选择一个更高的平台,跳出现在的舒适圈:在上一家单位的时候,我们的技术栈是 SSH + Oracle ,现在的单位以 Spring Boot、Spring Cloud 为主,关系型数据库和非关系型数据库都有使用,这就提高了不少; 如果你觉得现在的公司还不错,值得奋斗一辈子,那么先考虑一下能否把现在的项目做的更好,能否引入一下比较主流的技术组件以解决项目遇到的问题;能否担任更重要的工作; 不管跳不跳槽,程序员都需要不断地学习:利用碎片化时间学习虽然值得称赞,但是更鼓励抽出完整的时间去学习,最好关闭一切通讯软件,避免被打扰;并且把学习内容通过笔记、博客等形式记录下来。 至于技术路线么,建议还是从工作出发:比如项目中关系型数据用的比较多,那么除了会写 SQL 之外,还得懂一些数据库优化的知识,如果能引入一些 NoSQL 数据库就更好了;如果用户越来愈多,项目扩展越来越难,那么就要了解了解分布式架构设计,如何把一个大的单体应用拆分开,非核心功能可以引入消息队列进行异步处理,等等。 03 关于程序员的发展 1. 尽可能做到行业靠前 以前我总喜欢说,如果你做到行业内前 30%、 40%,甚至 50%,是不用担心失业的; 但是现在我也想增加个前提条件,30 岁之前这条定律是行得通的;过了 30 岁之后,就应该有失业的担心了,这时候你可能需要做到行业的前 20% 才能从容面对; 如果还不够,那就做到前10%! 2. 多元化发展 现在职场就业压力变大,对很多企业来说,他们并不要求程序员敲代码特别厉害,他们更希望招聘到身兼多职、拥有解决问题能力的“人才”; 所以如果程序员,在某些业务领域拥有深厚的业务知识;或者懂一些运营、数据分析的知识;又或者知道如何与需求/产品沟通,协调整个项目的运行和发展;那么职场道路可能会更宽一些,当遇到职业发展瓶颈的时候,选择也会更多。 3. 做点儿有主业有关的“副业” 工作收入是“单点”,而在软件架构中,单点的风险很大。能带来本质改变的,就是把“单点”变成“多线程”、变成“分布式”,做一些自己擅长的“小事业”,踏踏实实地积累,当做到一定程度的时候,你可能自然而然地就有勇气面对失业了;并且在这个过程中,你也可能也在不知不觉间变成了行业的 Top 10% 。 接项目:也就是我们通常说的接私活,有些程序员觉得这个很难,其实第一步迈出去之后,后面的路子就相对容易了;话说我以前的项目经理,就是接了个“大活儿”,然后辞职创业去了; 做产品:做产品的话,周期相对会很长,可以是软件、网站和 APP ;产品不一定直接盈利,盈利可以靠流量(用的人多了,盈利就容易了); 技术输出:线下可以去讲课,做咨询,当然这些是需要人脉的,否则没有人请你;线上可以做的事情就多了,做视频、专栏、直播等等,当然这些都是需要“有干货”的,常年都有技术积累的程序员,可以考虑这些渠道。 总之,既然选择了做一名程序员,就要做好终身学习的准备,否则很容易被行业淘汰。

标签:
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有