做了6年的程序员,最近很迷茫。有相同经历的吗?

这个问题是关于程序员的职业规划。绝大多数程序员在工作了三到四年之后,包括我自己,都曾有过这样的困惑。
要搞明白这个问题,首先应该问自己,对于一个企业而言,程序员的价值到底

本文最后更新时间:  2023-03-04 11:20:45

这个问题是关于程序员的职业规划。绝大多数程序员在工作了三到四年之后,包括我自己,都曾有过这样的困惑。

要搞明白这个问题,首先应该问自己,对于一个企业而言,程序员的价值到底是什么。或者换一种问法——如果你是企业的老板,会为一个什么样的程序员开出高薪?

很多人给出的答案是,你要懂JVM,要看JDK源码,要懂分布式架构,要深入学习数据库原理;还要学redis,kafka,ElasticSearch,akka,各种名词罗列一遍。

不客气地说,这些回答都是片面的。须知,一个程序员的价值,不在于他用哪门语言,也不在于他会哪些工具;而是在于,他在一个特定行业或领域里积累的经验。这个行业里可能遇到的各种奇葩场景,各种坑,各种可能出现的潜在问题,他都了如指掌,并且给出完整的解决方案,那么,这种人才放在任何时候都是稀缺的。他在企业中所发挥出的价值,就是能帮助企业少走多少弯路,节省多少成本,并且结合过往经验解决新的问题,从而创造出的更多溢价。

回到问题本身,语言也好,数据库也罢,甚至大家最推崇的数据结构、算法这些,都只是工具,是用来解决问题的。如果我们只是学习工具本身,而不是从业务场景出发,从问题本身出发,那就无异于缘木求鱼,本末倒置。

这样说有点抽象,我举一些例子。

比如,如果你从事电商领域的后台开发,那么,在技术选型上,你要选什么服务器?平时用的Tomcat行不行?JBoss好不好?自己用Netty写一个行不行?能扛到多少TPS,到了极限值怎么办?可能遇到些什么问题,会造成什么损失,该怎么解决?

在系统设计上,数据库怎么设计?怎么设计账户体系,怎么设计订单系统,怎么设计活动系统,怎么做数据脱敏,业务规模上来了怎么横向和纵向扩容,怎么解决分布式事务的问题,怎么回滚,怎么保证数据一致性?这中间能用哪些开源的中间件,各有什么优缺点,你以前踩过哪些坑,怎么避免?

在运维上,怎么做好流量和告警监控,怎么预估流量增长情况从而提前做好扩容,怎么做好高可用,怎么做灰度发布?

在业务场景上,怎么防止别人薅公司的羊毛,怎么防止评论灌水,怎么防止别人恶意刷单,怎么防止别人暴力破解你的账户系统?

再比如,金融领域,怎么做到高可靠和保证安全?通信行业或互联网的高并发场景中怎么保证实时性?音视频领域,怎么做回声抑制,怎么降噪?等等等等。

所以,如果要做好职业规划,我们首先要选好一个行业。你是做金融,还是通信,还是电商,还是物联网…… 然后,再去选择自己的领域,是全栈,还是后台、前端、DBA,还是做算法?

刚入行的同学,选准一个行业,一个领域,沉下心,踏踏实实地干上两三年,把这个行业里你遇到的、可能遇到的问题,业界的解决方案,前人踩过的坑,认认真真地想透,吃透。

这样基本上就可以算作入行了。

在这之后的发展就因人而异了。有的人希望在一个领域做到精深,做到专家,比如DBA,安全,运维,算法,那就做好打硬仗的准备,多学习基础知识,多和同行交流经验;有的人想做架构,那就弄清楚行业的一些难题,搞明白各家的解决方案,各自的优缺点,结合自家的业务特点好好做做功课。

基于以上,我奉劝各位,不要痴迷于对技术本身的追逐,不要沉迷于在你的简历上写一些高大上的技术名词,也不要沉醉在和别人用几个风口上的概念相互吹水。结合你所在业务领域的问题,踏踏实实地做事、总结、思考、学习。总有一天,你也会成为别人眼中的大牛。

 1/2    1 2 下一页 尾页
温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。