好程序员,常年如一日的大量练习和总结方法,你能做到吗?
前言
水平很高的程序员是挺多,但是水平一般的更多,水平很差的多到铺天盖地,还有半路退坑的那就数不胜数了
水平好的各种行业的人都多半需要天分和运气,到了最后,就是行业本身和达尔文把他们选出来了,不单纯是训练出来的。训练起的作用并不高,方法也没有什么太独特或者太保密的
举个例子吧,菲尔普斯除了其他人难以企及的天分,有什么特殊的训练方法吗?就是常年如一日的大量训练。好程序员也是常年如一日的大量练习和总结
方法没什么特殊的,可你能做到吗?
学习是寂寞、枯燥的,这段时间里其实有太多次想要放弃,但每次也都熬了过来,可以分享给大家一个感悟:花一年自己逼自己一下,让一切优异的品质成为你的习惯;像我现在,就感觉努力、上进、钻研、好奇心这些已经是骨子里的东西了,研究一个技术点,不整理成一篇博文,我都不认为自己掌握了这个技术点。
至于工作,经过15年这一年的学习,由于个人水平的长进,16年到18年间,在工作中领导也愿意给我机会,会写一些底层的东西、会做一些系统性的设计、也有机会带几个人的小团队。在这一过程中,慢慢发现基本功并不能说明所有问题,因为必然会遇到没碰到过的东西、会遇到一些更复杂的问题,然后通过查资料、研究、寻找解决方案、解决问题进一步提升自己的能力。
个人技术成长,工作中成长(实际解决问题能力)一定是缺一不可的,就像前几天我们大部门老大分享的:什么是好的技术,能解决实际问题的技术就是好的技术。
18年年中,对的时间遇到一个对的部门、对的领导、对的团队,梦想照进现实
希望我分享的个人成长经历,能对看到的人有一些鼓励、有一些感触,如果让我总结一下,那么希望告诉大家两点:
● 相信你自己,我这样学校一般又不聪明的人都能走到今天这一步,那么大多数人一定都能走到我这一步,而且能走得比我更远、更好
● 世界上没有什么是努力办不到的,如果有,那么就更努力一些吧
我理解的优秀程序员应当具备的技术素质
网上有很多所谓的Java程序员面试经,其实看下来的感觉就是没多大用,面试是没有套路的,每一个面试官问的东西也都不一样,如果根据那些面试问题去学习和准备,那真的是只见树木不见森林,对个人提升没有太大提高
那么,在五年这个阶段,一个优秀的程序员应当具备怎样的技术素质呢?按照我个人的理解,主要就是基本功+项目
为什么之前说针对面试题进行学习和准备作用不大,因为我认为我们关注的不应当是题,而是题背后的一个一个的方向,这也就是我认为的基本功。那从基本功的角度来说,罗列一下我能想到的,包括但不限于以下内容:
● 工作相关使用到的JDK类及其相关源码、机制
● 设计模式,设计模式在工作中用到了哪些,具体使用场景
● 并发类的相关知识,线程安全、锁机制、信号量、闭锁、栅栏、线程池等
● 框架相关,Spring相关机制、Spring MVC相关机制、MyBatis相关机制、使用的细节点、框架实现原理等
● JVM,内存布局、垃圾识别算法、垃圾回收算法、垃圾收集器、类加载机制、内存模型、出现内存问题时定位问题的方法等
● 数据库的基本数据类型、索引机制、各引擎区别、锁机制、慢SQL定位及优化等
● 缓存机制,这里的机制指的是缓存加载、缓存击穿、缓存雪崩这些机制及其相关应对方案,用过Redis、MemCache的最好理解一下它们的原理或者缓存提供的一些高级功能,集群如何实现
● 分布式的一些知识,比如CAP理论、数据一致性的几种解决方案、分布式事务如何处理,分库分表怎么做、现有的相关解决方案等
● NIO的作用,epoll模型是否知道一些,Netty的相关机制、Netty相比原生NIO的优点、半包拆包、断线重连解决方案等
● Web相关,Get与Post的区别、转发与重定向的区别、跨域问题如何解决、如何保证接口幂等性等
● 网络层相关,三次握手和四次握手、全连接队列和半连接队列、负载均衡算法等
● 其他中间件,MQ作用和使用场景、服务化治理框架的作用和使用场景、配置中心的作用和使用场景等
● 数据结构,数组、链表、栈、队列、树等优缺点,在什么场景下使用什么数据结构
● Linux相关知识,基本命令的使用,查询日志、定位问题,项目或者第三方组件的基本运维等
坦白讲,以上的这些东西全都掌握也不可能,哪怕面试官肯定也有很多不会的,但这就是基本功,能多掌握一点多掌握一点,技多不压身,至于别人如何评价你,就留给别人去评价吧,做好自己能做好的就行了
如何锻炼性能调优能力
我这里整理了一份完整的《Android程序性能优化》及《Android网络传输与数据存储优化》希望这份系统化的技术体系对大家有一个方向参考
有需要的同学,可以顺手给我点赞评论支持一下
内容如果对大家有用的话,可以转发分享一下
获取方式: 点击 《Android程序性能优化》+《Android网络传输与数据存储优化》 即可 免费获取
由于篇幅原因,下面仅展示部分内容
《Android程序性能优化》
第一章 ANR问题解析
第二章 crash监控方案
第三章 启动速度与执行效率优化项目实战
第四章 内存优化
第五章 耗电优化
第六章 网络传输与数据存储优化
第七章 apk大小优化
第八章 实战项目
《Android网络传输与数据存储优化》
1、网络优化的三个要点
2、网络优化的两个维度
3、三个线下测试工具
4、周期长
5、线上监控的三个要点
6、三个线上监控方案
7、三个流量优化方案
8、网络请求质量优化
获取方式: 点击 《Android程序性能优化》+《Android网络传输与数据存储优化》 即可 免费获取
技术是无止境的,你需要对自己提交的每一行代码、使用的每一个工具负责,不断挖掘其底层原理,才能使自己的技术升华到更高的层面
Android 架构师之路还很漫长,与君共勉
PS:有问题欢迎指正,可以在评论区留下你的建议和感受;
欢迎大家点赞评论,觉得内容可以的话,可以转发分享一下