前言
初级Java程序员成长为进阶程序员需要不断的积累和辅助,对于新手来说并非遥不可及,只要遵循一定的原则,比如,先养成几个通往成功的好的习惯,本文为大家带来一位前辈的习惯养成经验,供大家参考,如果受用,请把他们记在心里,贴在桌子上。
1.要有责任心
高级程序员在面对这些Bug时会从多个维度思考,Bug出现的时间、系统环境、硬件版本以及软件版本等等。接着修复问题,严格自测,上线后观察,一直会跟进到底,把影响降低到最小。
他们会主动承担责任,为结果负责。面对各种问题时,不是第一时间为自己找借口,不是互相推脱,互相指责。而是,想尽一切办法解决问题,即使解决不了,也会给出最优选择。
责任心在程序员的职业生涯中,具有最重要的指导意义,也是成为高级程序员必须具备的素质。
2.掌握代码调试技巧
众所周知,在移动互联网时代,基于市场和需求的变化,项目周期的变化也会很快。有时一个月的工作计划,会缩短到2个星期。面对巨大的项目压力,程序员的代码质量会有所下降。
高级程序员清楚的知道他写的每一行代码在项目中的作用和意义。
3.不要重复造“轮子”
我们对代码的记忆最多只有2天,如果代码没有注释说明,也许第二天一早就会忘记它的具体意义。30天之前写的代码相信没几个人会记得。重复是怎样发生的呢?
1.程序员们没有意识到他们在重复。2.程序员们偷懒,他们重复,因为那样似乎更容易。3.同一个团队的几个人重复同样的信息。
4.尽量使你的程序解耦
生活中随处可见这样的例子。共享单车的出现,就是对我们出行的解耦合。你要做的就是在你需要的时候去使用,不需要了解更多的细节,出现问题了也不需要你去维修,只管用就好。
高级程序员开发的代码,既屏蔽细节,又提高了灵活性。
成为高级程序员乃至架构师需要具备那些技术呢?
性能调优
性能优化如何理解
- 性能基准什么是性能优化衡量标准
JVM调优
- jvm虚拟机的内存解析垃圾收集器实战调优案例与解决方案JVM运行时区
Java程序员性能优化
- 优雅的创建对象注意对象的通用方法类的设计陷阱泛型需要注意的问题java方法的那些坑程序设计的通用规则
Tomcat
- 线程模型分析生产环境配置及调优运行机制及框架
Mysql
- 探析BTree机制执行计划深入分析Mysql索引优化详解慢查询分析与SQL优化
应用框架源码解读
- Spring IOCSpring AopSpring MVCSpring5的新特性Mybatis
Spring IOC
- SpringFrammework体系结构源码分析BeanFactory源码分析BeanDefiniton源码分析Bean生命同期依赖实现
Spring Aop
- Aop源码分析transaction事物分析Springcache框架源码分析
Spring MVC
- MCV简介与设计思想SpringMVC组成源码解读DispatchServlet
Spring5新特性
- 容器增加函数式编程webFlux模块介绍kotlin介绍Testing改进兼容性问题
Mybatis
- mybatis组成核心源码分析手写Mybatis
分布式架构
互联网分布式架构是非常重要的一个技术,基本上所有的大公司都会用分布式
分布式架构思维
- 大型互联网架构演进过程架构师应具备的分布式知识主流分布式架构设计详解
架构开发基础
- 多线程开发高性能NIO框架
架构核心服务层技术
- 服务的前世今生深入理解通讯协议基于 分布式RPC解决方案dubbo全解析
架构关键基础设施
- 分布式环境指挥官zookeeper分布式消息通讯异步与MQ分布式缓存数据存储SQL&NoSQL高并发分流技术Nginx
分布式解决方案
- 分布式解决方案Session跨域共享实战分布式事物解决方案实战分布式锁解决方案实战分布式单点登录实战SSO分布式调度任务系统分布式配置中心
微服务架构技术
微服务这块应该不用多说了,知道微服务技术的至少能多加5k薪资
- SpringBootSpringCloudDocker虚拟化技术
SpringBoot
- 与微服务的区别于联系快速构建SpringBoot工程SpringBoot核心组件剖析快速集成mybatis实战快速集成Dubbo及案例实战构建集成 redis及案例实战构建Swagger插件实现API管理及接口测试体系
SpringCloud
- Zuul路由网关详解源码探析Ribbon客户端负载均衡原理Feign声明式服务调用方式Eureka注册中心构件Config配置服务中心svn、git快速集成Sleuth调用链路跟踪BUS消息总线技术
Docker虚拟化技术
- 介绍、安装与使用compose部署脚本service服务编排redis分布式集群部署docker file构建通过maven插件打包镜像部署及运行应用程序kubernetes编配构建Mysql集群实战高可用SpringCloud微服务与docker集成实现动态扩容实战
团队协作开发
这个是常用的开发工具类的,提升团队效率
- GitMavenJenkinsSonar
老师你列举这么多有么有实战呢?
当然有啊!
对于上面的技术知识一两句话解释不清的,为此我们很多位架构师特地的录制了一些视频资料分享欢迎工作一到五年的Java工程师朋友们加入Java架构开发:760940986
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
5.适当的进行重构
重构是改善现有代码的设计。在给外部提供接口不变的前提下,随着时间的推移,在内部重写、重做和重新架构代码。
6.积累自己的代码库
如果你做了多年的软件开发,没有积累自己的代码库,没有做好笔记。面对新的项目,所有代码重写一遍。无疑了浪费了很多时间。
7.实践、实践、再实践
有很多原则和道理我们听过无数遍,但是从来没有去实践。如果不经过几十万行代码的锤炼。很难达到一个高度。外部环境的支撑很重要。但是,如果没有这样的机遇,就需要我们创造条件去寻找。
8.最后
希望以上的这些对大家今后的学习有帮助,最主要的还是靠自己的努力,互联网行业前途一片光明,各位要加油啊。
欢迎工作一到五年的Java工程师朋友们加入Java架构开发:760940986
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
有疑问加站长微信联系(非本文作者)