• 学Java,找对圈子,跟对人


    我大学学的是机械专业,到大四才决定要学Java,以后当一名程序员。

    到现在,十几年过去了,我现在已经是一家上市公司的技术总监了,管理的技术团队有100多人。很庆幸当初了选择了学Java。

    还记得当初学java的时候,一脸懵逼:

    • Java 家族成员太多,学个 Java 怎么要学这么多东西?
    • 那么多书,从哪本开始看起?
    • 怎么学个java,还得学tomcat、mysql?

    这篇文章说说我学 Java 中,对我帮助最大的三段经历

    1. 遇到了好基友

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

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

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

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

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

    好在二刘足够有耐心,对我不抛弃不放弃,带着我一起学习、动手。

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

    到现在我和二刘还是好朋友,跟他们一起学到的重构、DDD、TDD、架构模式这些思想,让我受益至今。

    2. 找到了组织

    这个组织就是BJUG——Beijing Java User Group。从名字就能看出来,是一群在北京工作的 Java 程序员聚在一起的一个小团体。

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

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

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


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

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

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

    总之,经历了二刘和 BJUG 的洗礼之后,后面几年我找工作面试的时候,不吹nb,技术面基本都是平趟。

    3. 撸几万行代码

    学Java之前,我的的计算机水平:QQ 熟练、红警精通。

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

    后来我干脆就把书扔一边去了,学完最基本的语法之后直接撸代码!

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

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

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

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

    我感觉学编程,就和学钢琴、游泳差不多,光看书不动手是真不行。

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

    另外,再给大家分享一个学习技巧,就是看大厂的开发规范。

    例如阿里的《Java 开发手册》,是阿里程序员们的集体智慧结晶和经验总结。新人看完可以少踩很多坑,而且可以从早期就能养成很多好的编程习惯。

    就写这么多吧,看完觉得有帮助,希望你能点个赞,也算是对我码字的支持。当然了,即使不点赞,也要感谢你的阅读。


    你好,我是四猿外。

    一家上市公司的技术总监,管理的技术团队一百余人。

    我从一名非计算机专业的毕业生,转行到程序员,一路打拼,一路成长。

    我会把自己的成长故事写成文章,把枯燥的技术文章写成故事。

    欢迎关注我的公众号。

  • 相关阅读:
    网易数帆实时数据湖 Arctic 的探索和实践
    私有化场景下大规模云原生应用的交付实践
    Apache Kyuubi 在 T3 出行的深度实践
    Win7 32位原版镜像无法安装VMware Tools
    VB.NET代码转C#的方法
    ArcGIS Pro导入OSGB倾斜摄影数据
    基于倾斜摄影测量的三维建模实验
    解决QTTabBar标签不能置顶的问题
    GIS中图斑椭球面积的计算
    ISaveAs导出栅格显示异常
  • 原文地址:https://www.cnblogs.com/siyuanwai/p/14971224.html
Copyright © 2020-2023  润新知