月薪3千和日薪3千的程序员啥区别?码农:搬砖和架构能一样!

程序员最近比较吃香,很多单身的同事在相亲中得到了不错的待遇,以前都是被人嫌,一听是程序员就开始说木讷、邋遢。现在不一样了,一听说是程序员都眉开眼笑,原本的木讷邋遢也变成了沉稳、低调。果然还是一个看脸又看钱的时代,哦不,主要还是看钱。

程序员当然也看钱,程序员如张小龙年薪2亿,当年的第一程序员求伯君还上过富豪榜;不过不是所有的程序员都是年薪百万的,三四线城市拿3000元工资的程序员也不在少数,除了大环境的问题,程序员的技术也就是含金量起到了决定性的作用。就像游戏里面有青铜和王者一样,程序员也有这些级别的门槛,大概分以下,有以下几种。

0、复制粘贴级别

在码农中有一类人被称作“代码拷贝员”,他们不会写代码只会改代码,对于一个程序要实现某种功能,一点思路都没有,而每天做的事情主要是从网上或者其他人写的代码中复制粘贴出来,放到项目中,只要项目运行达到了期望的结果就可以了。这类人多是对编程没有兴趣,只是为了从事编程拿较高的工资,但在培训学校学了出来之后又什么都不会,这一阶段只能停留在吃饱饭。

1、小白级别

这一级别的程序员占比比较多,他们要么是半路转行对编程感兴趣,要么是科班出身刚开始编程,由于经验的缺少,在接到某个项目需求的时候并不知道要通过哪种方式实现,而他们要做的是“完成功能”,在完成的过程中对边界条件、性能、可读性、可扩展性、编码规范等问题往往忽略,所以代码完成后的bug比较多,运行的稳定性差,常常出现写代码1个月,改bug三个月的情况。这阶段的人需要做的是通过学习资料和读代码去提升自己、增加经验。

2、炫技级别

在学习和参加项目一段时间之后开始对自己的编程语言比较了解了,对客户给出的需求在实现功能上能有了较为清晰的一个思路,在考虑完成的时候也会考虑抽到边界条件和性能的问题。往往到了这个级别很多程序员就开始有点飘了,他们体会到了代码的乐趣,往往表现为经常“创造代码”,即便是有现成的可以实现,但他们往往不屑于去复制粘贴,往往自己重新实现一套。这类人的技术已经有了,而且兴趣比较浓厚,通过几个项目的学习之后,往往会进步很快。

3、实用级别

在经过一段时间的炫技之后,程序员们都会成长为实用性的选手,就像独孤求败最开始用利剑后来用重剑一样,写代码的本质是功能的实现,用最简单最直接的方法就可以了,炫技往往会导致开发周期长、代码膨胀、后期维护难。这个级别在接到产品需求的时候已经可以快速给出实现的方法,对许多需求功能都可以快速实现,会被称之为“牛人”。

不过这类人最大的特点是喜欢“开发项目”,不喜欢去维护项目,这个程序员应该都深有体会。

4、架构级别

架构级别的程序员经验更加丰富,对框架和工具更加熟悉,逻辑性、分析能力更高,自学能力更强,可以在短时间内学会另外一种语言。他们的代码已经不仅仅是“性能”了,往往还会追求更合理的架构,而且在接口设计上还会预测需求的变更,代码的可扩展性好、稳定性高、可读性高。

架构应该掌握哪些技术呢

一、开源框架解析

程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。那要如何正确的分析源码呢? 我们的目标应该放在最常用的框架上面:

二、架构师筑基

从架构设计,到应用层调优,再深入了解底层原理,扎实的Java基本功才能让自己变为扫地神僧:内存模型,并发模式,线程模型,锁细节等等

三、高性能架构

我们不仅仅对项目要运筹帷幄,还要能解决一切性能问题。只有深入学习JVM底层原理,Mysql底层优化以及Tomcat调优,才能达到知其然,知其所以然的效果。除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。

四、微服务架构

关于微服务架构的取舍

  • 在合适的项目,合适的团队,采用微服务架构收益会大于成本。微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。需要避免为了“微服务”而“微服务”。微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。

五、团队协作

开发工具工程化

通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。程序员的战斗,往往不是一个人的战斗,我们如何在一个平台下高效的去重,进行代码review,对功能进行调整,debug,做到在统一的规划下步步为营,混乱的堆代码的过程中找到自己的记录。这一切都依赖于有效的工具。

六、B2C项目实战

项目实战

要想立足于互联网公司,且能在互联网浪潮中不被淹没,对于项目的开发实战演练是不必可少的技能,也是对自身能力的一个衡量,有多少的量对等于获得多少的回报。看似简单的一个项目需求图谱,其中的底层原理,实现原理又能知道多少?你搭建一个完整的B2C项目平台到底需要多少知识?这一切都是需要我们考量的。

对于才学基础的朋友可能用处不大,我相信对于开发多年的朋友这六大模式帮助会很大,

对于这六大模式我也总结了一套学习资料,在技术上面想提升自己的朋友可以关注小编

同时提供一份免费架构视频进阶资料加BAT面试真题(Spring,MyBatis,Netty源码分析
,高并发、高性能、分布式、微服务架构)

请加JAVA架构技术交流群:714827309
点击链接加入群聊【JAVA高级架构技术交流】:https://jq.qq.com/?_wv=1027&k=51OhGuo

猜你喜欢

转载自blog.csdn.net/qq_43148017/article/details/88235701