先简单分享自己这10年在技术上曾经感觉到明显迷茫的阶段:
阶段1:只会增删改查:
时间:大学期间(2008年-2009年)
学习的方式:看视频、看书。(学会了使用控件的增删改查,和写SQL语句)。
自我感觉:XX管理系统已不在话下,反正网站弄来弄去也是增删改查,这大概就是无知者无畏。
如何破:(走出社会去就好了)。
阶段2:能快速实现功能,却不会思考:
时间:(2009年-20012年)
学习的方式:看博客、大量的编码(第1年,封闭式开发(1天敲15个小时代码),第二年后:每周六天,每天到夜里3点)。
感觉:大量的编码,做了大量的不同类型的系统,已练就成一个高级代码工:(CodeSmith代码生成器+批量生成增删改查)。
如何破:(让自己静下来)。
阶段3:学会了分享、安全、性能、底层原理
时间:(20012年-2016年)
学习的方式:写博客、看博客、写框架(CYQ.Data V-V4系列、QBlog)。
感觉:为某个框架代码而自我得意。
如何破:不断重复的将自己归零(把自己的认为得意的东西开源出去,如果要保留一点感觉,可阶段性开源)。
阶段4:领悟了抽象思维、面向对象、写框架、用户体验
时间:(2016年-至今)
学习的方式:看书、写框架(CYQ.Data V5系列、ASP.NET Aries系列、Taurus.MVC系列)。
感觉:也许我懂的很多,但是我不懂的更多。
如何破:(转行卖烧烤。。。)
总结一下:
上面的内容,其实只是个大概的节点情况,太多细节点的过程,来不及细说,全面汇总成以下几点:
1:大量的编码实战。
2:开发自己的作品。
3:学会分享。
4:学会低调,知识归零。
关于看书:
这么多年,我很少看技术类的书,因为人的特征本各不相同,我不善于记忆,只能通过大量的实战来形成条件反射。
另外,从实战到=》互联网的文章,有目的性的补充知识,更加容易被吸引。
所以,看书和看文章,其实本质都是在学习,只是我是通过实战驱动去补充知识,而不是单纯的看书,然后选择被遗忘。
以下内容随意聊聊::
这些年,曾高调过,曾低调过,也不高不低过,有人看我很谦虚,有人看我屌,其实,都是看心情,看心情的。。。
我想汇总一下我的知识体系,身体又懒的动,只因大脑感觉要写完天都要亮好几回,若不写,这随谈又要谈什么呢?
听说Java界的架构师很少,其实是Java的技术总监或CTO太少,毕竟是上层决定了下层的技术使用。
在我这几年当总监的岁月里,拿到的Offer最高月薪也只有4W,这在Python界轻松就能突破的数字,在Java界却不那么容易。
因此,从现实出发,混到总监的,有些也不在乎技术了,也没有技术情节和忠诚感,转个技术方向突破薪资才是硬道理。
生态圈的良性循环,还是得靠占据总监位置的同志们,坚持。。。
而且,大量的Java,必须突破自己,靠架构师上靠,才能进一步稳住市场。
目前Java大多数都在1W左右2W以下的薪资,勉强占领高级程序员或技术经理这么个角色。
追期根源,是因为技术上没有亮点,技术还停留在能做功能的地步,技术和思想也没形成体系。
怎么成长才能突破?
忽略其它综合因素,比较明显的是以下两个层面:
1:技术上的成长。
2:岗位上的成长。
明显决定薪水的,是岗位,要记得:上层给你一个Title让你带队,也好过给你涨薪,这是你跳槽的最有谈判的资本。
然后说说技术,感觉技术成长不上去的时候,怎么办?
先说说现在年轻人最大的感觉,很多人在用我的开源框架,但是他们遇到问题时,很多都是直接上问题,不愿调试代码。
这样的方式,只是完成了任务,就算最终学完整学会了用框架,也只是在众多框架中学会了一个,成长性是很小的。
过程是很重要的,哪怕是弯路,哪怕浪费时间,记得那都是思维的成长,比你完成一个当前的任务更值钱。
都说人生苦短,技术无涯,底层原理下面还有底层原理,无限的底层下,究竟学到哪层,才算底层?
在这框架百出的年代,若每样都要掌握,深度必无,人生必毁,所以,怎么学习,已经成为了一个值的思考的问题了。
其实,这些年,对于自己的成长,无非就是一样,将已有所有知识点形成体系。
当然,我并不是有意而为之,而是大量的实战和知识补充,最终自然而形成。
所以,学习应该围绕着体系而进行,适当的学习底层,是为了建立体系的连结点,而不是为追底层而底层。
今天跟大家分享一份Java 工程师进阶知识点扫盲清单,中间涵盖了redis/mongodb/dubbo/zookeeper/kafka 高并发、高可用、分布式、微服务等众多技术。
当然还有Java 工程师软实力方面的内容,比如说:面试技巧、技术文档编写、中英文档阅读、数据结构与算法等方面的内容。
这里先给大家列举一些分布式的内容:
Redis
从入门到精通,Redis的数据结构分析
Redis主从复制原理及无磁盘复制分析
Redis管道模式详解
Redis缓存与数据库一致性问题解决方案
基于Redis实现分布式锁实战
图解Redis中的AOF和RDB持久化策略的原理
Redis读写分离架构实践
Redis哨兵架构及数据丢失问题分析
Redis luster数据分布算法之 Hash Slot
Redis使用常见问题及性能优化思路
Redis高可用及高伸缩架构实战
缓存击穿,缓存雪崩预防策略
Redis批量查询优化
Redis高性能集群之Twemproxy or codis
Dubbo
Dubbo管理中心及监控平台安装部署
Dubbo分布式服务模块划分(领域驱动)
基于Dubbo的分布式系统架构实战
Dubbo负载均衡策略分析
Dubbo服务调试之服务只订阅及服务只注册配置
Dubbo服务接口的设计原则(实战经验分享)
Dubbo设计原理及源码分析
基于Dubbo构建大型分布式电商平台实战雏形
Dubbo容错机制及高扩展性分析
Zookeeper
从0开始搭建3个节点的Zookeeper集群
深入分析Zookeeper在disconf配置中心的应用
基于Zookeeper的分布式锁解决方案
Zookeeper Watcher核心机制深入源码分析
Zookeeper集群升级,迁移
基于Zookeeper实现分布式服务器动态上下线感知
深入分析Zookeeper Zab协议及选举机制源码解读
Kafka
Kafka基于Zookeeper搭建高可用集群实战
Kafka消息处理过程剖析
Java客服端实现Kafka生产者与消费者实例
Kafka的副本机制及选举原理剖析
基于Kafka实现应用日记实时上报统计分析
mongoDB
mongoDB应用场景及实现原理
mongoDB常用命令及配置
基于mongoDB手写ORM框架
基于mongoDB GirdFS实现一个分布式网盘实战
mongoDB高可用实战及V4.0新提醒
关于这份Java工程师进阶清单的问题
上述的内容只是整个清单中的一小部分,这里只是列举一些,供大家参考,更加详细的内容,这边有一份高清的技术脑图,可以分享给大家,领取的话,看文末就好了
关于软实力方面的内容,这里也列举一下内容:
面试技巧
如何写出一份漂亮的简历
如何高效准备面试
如何优雅谈薪
如果精准跳槽
辞职的正确姿势
如何规划自己的职业发展
技术文档编写
需求文档编写技巧
Java开发规范文档编写技巧
数据库设计文档编写技巧
中英文档阅读
一小时掌握英语学习技巧
专业英语单词记忆技巧
个人认为,作为技术人就要保持终生学习的态度,让学习力成为核心竞争力,才能不被时代所淘汰,而高效的时间支配能让你变得更加优秀,所以,这里也送给大家一份学习路线图。
最后,我觉的大伙的评论,比我瞎扯的文章更重要,说出你的现状,集众人智慧,看看如何改善吧。。。
网友评论