打开网易新闻 查看更多图片

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

温馨提示,非广告。

有个同学小Q,他学习Java也有一段时间了,跟着网上的视频也多多少少写了一点代码,但总感觉缺少点什么,很不成系统,不能具备做项目的思想。下一步很纠结,不知如何进行下去。

这样的感觉是没错的。视频课程都是精心设计的,大多数是一个主题,教会你一个知识点就玩完。即使做项目,也是皮毛,实现初级功能为主。

比如,教你注册,就给了个CURD的案例。这是远远不够的,因为用户系统最重要的是考虑它的安全性,验证码、加密、防批量恶意注册这种核心技术,就没人给你讲。

下面还是从人才类型的分类开始说起,来分享一些小Q的经验吧。

人才类型

软件领域有两种人才,一种是偏向理论的,一种是偏向工程

理论性的包括一些方法论的研究,算法,以及一些冷门的课题,要有成果是比较难的。工程类的就是使用市面上的框架进行软件开发,难度上低了不少。

工程类人才又分为业务型的和技术型的。业务型不需要了解这些框架背后的深层原理,只需要根据产品的模型构建出可运行的代码就可以;而技术型的,比如基础中间件的开发,对基础的技能就要求比较高一些。

使用Java,工程类的项目居多。

不要重复做CRUD

纵观各种培训机构,以及网上流行的视频,工程类的居多,而且都是初级项目。一个项目如果没有经历过流量的冲击,很多问题都不能很好的展现。

相信你已经做了一些SSM之类的项目,比如开发一些管理后台,一些权限认证等。但做完这些,只算是一个刚入门的学童。这种CRUD的项目,做一套就够了,做多了纯属浪费时间。包括很多star数很高的权限系统、用户管理系统什么的,不要看。

建议如果想往技术方面发展的话,多了解下jdk的基础,多了解一些分布式相关的知识。

如何进行 多看源码,找重点

多逛github,多看源码。但看源码不要什么都看,要找这个项目的关键点,找它的优势。

比如看etcd,就搞懂raft,那么源码看不看也不重要了。

那些代码量巨大的项目,其实已经经过了N多迭代,参考的价值不大。反而是隐藏在代码背后的原理更加重要一些。

多了解一些中间件

Java的精髓技术都在中间件里,包括一些分布式知识。如果你想要往技术路线发展,那正适合你。

中间件技术很多,找准一个看就可以。刚开始接触的话,建议接触MQ或者缓存组件等。这些东西虽然难了些,但一旦了解透彻了,就不是CRUD能比的了。

建议项目

千万不要以为学Java就是写代码,那种思想太初级。

代码的最终目标就是实现某个场景的解决方案。建议你找准一个切入点,比如做一个库存管理系统、做一个供应链、营销系统之类的。

不管什么,找到一个想要切入的点,开始做轮子。轮子做的不好不要紧,你可以顺便体验一下重构的过程。

一定要体验一把软件工程的整个流程。从 需求确认->概要设计->详细设计->编码->重构->测试->压测。

认真的走一遍,你的水平绝对会上升一个档次。

项目周期,3个月之内为妙。

怎么看源码

不要死看源码!不要死看源码!不要死看源码!

在Java届,你要是靠看源码学习的话,那效率可以说是非常非常非常低了。有Debug功能的存在,我们就可以和看源码这种低效的学习方式88了。

即使是非常复杂的系统,使用Java的Debug功能,也能很快的找到它主要的执行路径。

Debug多了,只要你扫一下源码,几乎就能知道它是干什么用的。参考:《》。

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。

3.
4.
5.
6.
7.