当前位置:首页 > 公众号精选 > 架构师社区
[导读]经验分享:我学Java主要分为三段经历,这三段经历都是发生在我刚工作的前5年中。我个人认为,程序员的前5年是技术突飞猛进的阶段,这个阶段非常重要!

首先声明,这篇文章不是卖课程、介绍培训班的广告

最近有不少读者通过微信问我:小白应该怎么学好 Java?

提问的人里有在校大学生、有刚参加工作的、有想转行做程序员的,还有一部分是最近找工作不顺的。

现在行情不好,很多人都焦虑,但是光跟着焦虑不解决问题。作为程序员,还不如静下心来,少受干扰,专心提高自己。

继续说回到学 Java 这个问题上来,网上 95% 以上的文章都是说介绍学习路线、Java书籍和视频的。

学习路线无非就是:

  • Java:语法、面向对象、IO、集合、异常、多线程……
  • Java WEB:Tomcat、servlet、Struts、Spring……
  • 持久化相关:MySQL、Hibernate、MyBatis……
  • …………

书籍、视频说的比较多的有:

  • 《Head First Java》、《Java 编程思想》、《Effective Java》……
  • 毕向东、刘意等老师的视频。

Java 家族成员太多,学个 Java 怎么要学这么多东西?

学习资料越收集越多,这要学到什么年头?很多人都是收藏从未停止,学习从未开始。

我今天就和大家说点不一样的,我学 Java 中对我帮助最大的三段经历。这三段经历都是发生在我刚工作的前 5 年中,我个人认为,程序员的前 5 年是技术突飞猛进的阶段,这个阶段非常重要。

经历一:遇到了志同道合的好基友

这段经历是从我工作之后第三个年头开始的,因为重要,所以先说。

那时候我跳槽去了一家新公司,在这家公司就干了不到一年,如果不是因为认识了两个程序员,这段经历几乎都快忘记了。

这两个程序员和我年龄相仿,都姓刘,为了省事,后面统称二刘吧。对我来说,如果用一个词来形容他俩,就是:良师益友

认识二刘之前,我觉得自己水平还可以:会写 CRUD、JSP,会用 Struts,会扯几个设计模式。现在看来,就是一个能熟练写代码的程序员而已,动手能力还凑合,脑子里的知识不成体系。

从认识二刘的第一天起,就被全面碾压。学校、专业的碾压就不用说了,关键是从他们嘴中我听了很多之前都没听过的名词:敏捷开发、重构、结对编程、领域模型……

说实话,当初刚接触这些的时候,我是很排斥的。举几个例子:

  1. 看到二刘结对编程,心想一个人干活、一个人闲着,这不是偷懒吗?
  2. 重构代码:程序跑的好好的,我为啥要改我的代码?有重复代码怎么了?有重构的时间,还不如再实现俩新功能。
  3. 单元测试:代码还写不过来,哪有时间写单元测试,再说了,不是有专门的测试吗。
  4. 领域模型:别和我说什么贫血不贫血,我的 JavaBean 里就只有 getter、setter。

好在二刘足够有耐心,对我不抛弃不放弃,反复给我洗脑,终于让我这个思想落后青年,接受了他们的思想,后面经常和他俩一起学习、实践、交流。

学 Java 很辛苦,大部分人自制力差,一个人学容易偷懒。找几个好基友一起学,确实提高快。在这里要感谢一下当初二刘对我的帮助。

到现在我和二刘还是好朋友,跟他们一起学到的重构、DDD、TDD、架构模式这些思想,让我受益至今。相比于Struts、Hibernate那些技术来说,这些更像是程序员的内功,内功不会很快过时。

经历二:找到了组织——BJUG

如果说认识二刘是我上了一条贼船,那么加入 BJUG 就是上了一艘航母。加入 BJUG 还是通过二刘,你看好基友是多么重要。

旧文中提到过 BJUG 这个名字:
Beijing Java User Group的简称就是 BJUG。从名字就能看出来,是一群在北京工作的 Java 程序员聚在一起的一个小团体。

BJUG 是一个非常活跃的技术社区,我们都有哪些活动呢?

最主要的活动是线下技术分享,分享基本都在周六下午,一下午能分享 2-4 个主题。

现在还能百度到当时的信息,给大家贴几张图。

如何学Java?介绍点不太一样的学习方式 如何学Java?介绍点不太一样的学习方式 如何学Java?介绍点不太一样的学习方式

从这几张图上,大家能看出了,我们当时分享的都是技术干货。在冰云的热心组织下,社区弄得还可以,成为 Top 50 的 Java User Group。

除了技术分享,我们还一起翻译资料、书籍。当然还少不了一起聚餐腐败。

BJUG 不仅仅是一个技术社区,还是一个有爱的社区。曾经一名核心会员得了重症需要换骨髓,面对伙伴的不幸,大家捐款相助,为伙伴的康复贡献了绵薄之力。

可惜的是,BJUG 后期人变多了,人多了之后交流的质量我感觉反而降低了,后面慢慢活动越来越少了。现在看来,人多不一定是好事,小圈子反而更有效率。

当时在 BJUG 里我好像没做过主题分享,因为不自信,都是充当听众,这也算一个遗憾吧。

不管怎么说,BJUG 里牛人非常多,我属于那里边最菜的了。能跟那些牛人学多少东西,你们可以自己想象一下。

总之,经历了二刘和 BJUG 的洗礼之后,后面几年我找工作面试的时候,没被技术面试卡住过。

经历三:撸几万行代码

终于可以把时间调回到我刚工作的头两年了。

我的大学一般般,非 985、211,我也不是计算机专业的,大四参加了一个 Java 培训班。参加培训班之前的计算机水平:QQ 熟练、红警精通。

培训半年之后的水平也不咋地,毕业之后能找到程序员的工作,主要因为赶上了好时候,那时候缺程序员啊,大学刚扩招,哪有现在这么多毕业生,而且大学还没教 Java。大部分培训机构还在教网页三剑客,能教 Java 的老师就很少。

有了培训班的基础,我工作之后也能凑合干,不过还有太多太多不会的知识,不会就学呗。

最开始我学习靠看书,看《Java 编程思想》,也不知道是书太难了,还是翻译的太晦涩了,看书真看不懂啊,书又厚,我看了几个月愣是一遍都没看完,经常是看了后面忘了前面。

后来我干脆就把书扔一边去了,直接撸代码!

起初是撸简单的,撸各种常用类、常用方法的例子,这样方便以后拿起来就用。另外,撸的多了,慢慢攒出了自己的一套工具类,包括String、数组、日期、类型转换等等这些的,在三方工具类没有普及之前,这套工具类陪了我很多年。估计很多老程序员,都有一套自己积累的工具类。

后来是撸项目代码,当时找的是著名的 PetStore 项目,虽然是个示例项目,项目很小,但是麻雀虽小五脏俱全。最开始是看一行写一行,照着抄代码。抄了 n 遍之后,感觉都会了,然后自己默写,磕磕绊绊默写出来之后,根本跑不起来,一堆 bug。解决完 bug,能跑起来了,下一步就是把自己写的代码和原始代码作比较,看看差异在哪,琢磨人家为什么要那么写。

撸了一定数量代码之后,我再回过头去看书,可能以前看不懂的,突然就明白了。

印象最深的一个事是,当初第一次抄完抽象类的代码,我压根就不知道还有抽象类这一说,我以为一度怀疑这个类没写完整,会编译不通过……

总的来说,撸代码对我度过小白阶段来说,非常非常重要。

我感觉学 Java,除了学知识,还离不开动手实践。上面写的我撸代码的方式,也不一定适合所有人,每个人情况不一样,大家参考就好。

其他补充

除了个人经历,再补充几点学习技巧:

补充1:看大厂的开发规范

例如阿里的《Java 开发手册》,是阿里巴巴集团技术团队的集体智慧结晶和经验总结

看这目录:

如何学Java?介绍点不太一样的学习方式

分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干二级子目录。另外,规约依次分为强制、推荐、参考三大类。在延伸信息中,“说明”对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要提防的雷区,以及真实的错误案例。

如何学Java?介绍点不太一样的学习方式

真的是大厂的智慧结晶和经验总结,新人看完可以少踩很多坑!

补充2:找到学习重点

Java 全家桶包括的东西太多,对小白来说一个难点就是:不知道学习重点。

学习重点就是那些在招聘需求、面试问题中高频出现的。

把主要精力放在学重点上,剩下的可以慢慢学,学习是一个长期的过程,别想着一口吃成胖子。

另外,对小白来说,太复杂、太高级的可以先知道个大概,不用奢望一下学得很透。就像我们和小朋友说“等你以后长大了,慢慢就懂了”一个道理。

还有,有些知识可以不用学了,例如Swing、JSP现在几乎没人用了,学这个就是浪费时间。就连Struts、Hibernate现在用的也少了,学习的优先级也往后放。

补充3:资料不用贪多

不要盲目收集资料,收集太多资料你也看不完,更多是自我安慰。

资料在精不在多,遇到好的资料,该花钱就花钱,对自己学习不要抠门。有的资料、课程也不贵,少下一次馆子、少买件衣服、少看一场电影就有了。花钱买了别人的经验,省了自己的时间。

但是,花钱也别盲目,现在滥竽充数的老师、培训太多。

总结

这篇文章写了很多个人经历,我觉得只有亲自经历的,自己验证有效的,才好意思推荐给你们。

经历里,我特意打乱时间顺序,按照学习效果来写的。

强烈建议你们找到身边的学习圈子。如果没有现成的,你是不是可以组建一个?大家一起学习、一起分享、一起写代码看代码。

圈子人数不用多,十个人以内就挺好的。

这个圈子,不是微信里面学习交流群(我加了不少群,大部分消息没啥价值,慢慢成了死群),最好都在一个城市的,能一起线下约活动。

有了圈子,除了技术提高,对你以后跳槽也有好处。

除了圈子,学 Java 要多敲代码,不要只是听和看。

写到这里,我突然想到了学习金字塔:

如何学Java?介绍点不太一样的学习方式

看完这个图,用什么方式去学 Java,你心里就有谱了吧。

就说这么多吧,希望你能转发、点在看,说不定和你日后一起学习的好基友会看到这篇文章。

特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:

如何学Java?介绍点不太一样的学习方式

如何学Java?介绍点不太一样的学习方式

如何学Java?介绍点不太一样的学习方式

长按订阅更多精彩▼

如何学Java?介绍点不太一样的学习方式

如有收获,点个在看,诚挚感谢

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭