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

2019-12-24 15:13:17 浏览数 (1)

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

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

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

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

反思自己的工作

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

业务是否专业?我拥有这些业务知识,是否可以在该领域长期发展?比如在金融相关的行业做核心系统,又比如一直在做支付相关的业务。

用户量是否大?是否有高并发的场景?项目为增加系统的高可用性,做了哪些措施?

是否能参与流程讨论和制定?是否能参与架构设计或功能设计?是否能摸到核心代码?

如果以上一项都不沾边,那么你很可能是在做简单的增删改查,这种敲代码的工作,可以说是“体力劳动”;也可能你现在的工资还不错,朝九晚五不用加班,你对现在的工作状态很满意,但是!建议赶紧跳出这个舒适圈;因为你很快就会摸到职业发展的天花板,很快就会面临失业的危机。

程序员的工作反思

程序员如何修炼

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

如果你接受跳槽,那就果断跳:我是不鼓励程序员频繁跳槽的,但是不得不说,跳槽是解决这个问题最快的手段; 【平台非常重要】 ,你可以通过选择一个更高的平台,跳出现在的舒适圈:在上一家单位的时候,我们的技术栈是 SSH Oracle ,现在的单位以 Spring Boot、Spring Cloud 为主,关系型数据库和非关系型数据库都有使用,这就提高了不少;

如果你觉得现在的公司还不错,值得奋斗一辈子,那么先考虑一下能否把现在的项目做的更好,能否引入一下比较主流的技术组件以解决项目遇到的问题;能否担任更重要的工作;

不管跳不跳槽,程序员都需要不断地学习:利用碎片化时间学习虽然值得称赞,但是更鼓励抽出完整的时间去学习,最好关闭一切通讯软件,避免被打扰;并且把学习内容通过笔记、博客等形式记录下来。

至于技术路线么,建议还是从工作出发:比如项目中关系型数据用的比较多,那么除了会写 SQL 之外,还得懂一些数据库优化的知识,如果能引入一些 NoSQL 数据库就更好了;如果用户越来愈多,项目扩展越来越难,那么就要了解了解分布式架构设计,如何把一个大的单体应用拆分开,非核心功能可以引入消息队列进行异步处理,等等。

关于程序员的发展

1. 尽可能做到行业靠前

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

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

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

2. 多元化发展

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

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

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

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

接项目:也就是我们通常说的接私活,有些程序员觉得这个很难,其实第一步迈出去之后,后面的路子就相对容易了;话说我以前的项目经理,就是接了个“大活儿”,然后辞职创业去了;

做产品:做产品的话,周期相对会很长,可以是软件、网站和 APP ;产品不一定直接盈利,盈利可以靠流量(用的人多了,盈利就容易了);

技术输出:线下可以去讲课,做咨询,当然这些是需要人脉的,否则没有人请你;线上可以做的事情就多了,做视频、专栏、直播等等,当然这些都是需要“有干货”的,常年都有技术积累的程序员,可以考虑这些渠道。

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

0 人点赞