-
在 API 和框架的帮助下,实现业务代码
-
阅读 API 和框架的源码,理解背后的实现原理
-
攻克技术难点
3)成神
-
做架构
-
做业务模块拆分
-
带着别人做开发
-
出视频、出教程、出书
以下是这十多年我个人总结出的编程心得,毫不保留地分享给大家,希望能给大家一点点启发和帮助。
1)让编程成为习惯
如果哪天我没有敲上一行代码,我总感觉缺了点啥。其实说白了,就是编程已经深入我的工作和生活,成了密不可分的一部分。
养成习惯的一个好办法就是拒绝“拖延症”,尤其是在新手阶段,千万不要因为一些客观或者主观因素,感到厌烦或者抗拒。
我大一刚开始学习 Java 的时候,其实就蛮抗拒的。因为要配置环境变量,配置完成后要在命令行里敲代码。这样学编程的坏处很多。
第一,我家里比较穷,所以大一上半学期没有买电脑,学习编程只能到机房去,而机房的电脑只要重启,配置好的环境变量就会丢失,还得重新配置一遍,不厌其烦。
第二,命令行编程对新手实在是太不友好了,我经常拼错关键字,比如说 main 拼成 mian,就导致出现一些莫名其妙的错误,而命令行的错误提示一点也不直接,这就导致找一些简单的错误要花很久的时间,自己的心情也会变得比较糟糕。
所以,千万不要信一些大牛的话,说什么命令行编程、记事本编程容易锻炼新人的编程思维——帽子戴得也太大了点。
如果你是初学 Java,直接上 Intellij IDEA 就可以了,JDK 可以直接下,环境变量不用配,直接就可以上手敲“hello world”,单词拼错了,还有提醒。
你就会感觉学编程是一件很简单的事儿,信心就上来了。
大学阶段,记得每天至少敲一行代码。如果觉得一行代码没意义,可以到 LeetCode 上刷一道算法题,哪怕是自己没有解题思路,也可以看看别人的嘛,找最简单的开始做,做不出来就先抄别人的,不要不好意思,不要觉得自己笨,新人,最重要的是脸皮要厚,保持对编程的热情。
我在 CSDN 共输出了 100 多篇 Java 方面的文章,总字数超过 30 万字, 内容风趣幽默、通俗易懂,收获了很多初学者的认可和支持,内容包括 Java 语法、Java 集合框架、Java 并发编程、Java 虚拟机等核心内容。
为了帮助更多的 Java 初学者,我“一怒之下”就把这些文章重新整理并开源到了 开源广场,起名《教妹学 Java》,听起来是不是就很有趣?
CodeChina 开源地址(欢迎 star):https://codechina.csdn.net/qing_gee/jmx-java
2)阅读别人的代码
在我看来,提升编程水平的最佳途径就是多看、多写。
优秀的开源项目的源码经过了几千人的上万次修改,非常经典。就像 JDK 的源码一样,经历了二十多年的考验,可以说是经典中的经典。
读这些源码可以让你的编程能力突飞猛进,举个例子来讲吧。
public void run() {
if (state == ChannelState.RECEIVED) {
try {
handler.received(channel, message);
} catch (Exception e) { }
} else {
switch (state) {
case CONNECTED:
try {
handler.connected(channel);
} catch (Exception e) {}
break;
case DISCONNECTED:
try {
handler.disconnected(channel);
} catch (Exception e) {}
break;
case SENT:
try {
handler.sent(channel, message);
} catch (Exception e) { }
break;
case CAUGHT:
try {
handler.caught(channel, exception);
} catch (Exception e) { }
break;
default:
}
}
}
这是 Dubbo 源码中的 ChannelEventRunnable 类的run 方法,这段代码里先用 if 做了判断,然后才在 else 中使用 switch 做了分支判断。为什么不全部使用 switch 呢?
因为现代 CPU 都支持分支预测(branch prediction)和指令流水线(instruction pipeline),这两个结合可以极大提高 CPU 效率。对于像简单的 if 跳转,CPU 是可以比较好地做分支预测的。但是对于 switch 跳转,CPU 则没有太多的办法。switch 本质上是根据索引,从地址数组里取地址再跳转的。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
《MySql面试专题》
《MySql性能优化的21个最佳实践》
《MySQL高级知识笔记》
文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图
关注我,点赞本文给更多有需要的人
.(img-bVk6ygPC-1711726856764)]
[外链图片转存中…(img-jNeQmGnx-1711726856764)]
文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图
[外链图片转存中…(img-OlXFd4vz-1711726856765)]
关注我,点赞本文给更多有需要的人