3 条掏心掏肺的建议,新手学习编程必备,快上车!

陶渊明有句诗:“晨兴理荒秽,带月荷锄归。”很美好,很有诗意。从时间上来说,的确这样的,早起晚归;但从身体的负荷程度来说,再没有比干农活更累的了,真的艰辛。所以上学期间,我最讨厌的就是放暑假,哈哈哈。

给大家看一张图片吧,这是我妹站在我小叔家的房顶上拍的。隐约可见的窑洞是我外婆家,我小时候经常在这里住。带瓷砖的平房是我爷爷家,后来分家分给了我小叔家,之前是瓦房(我上高中的时候才盖了现在的平房),平房的后面也是窑洞,不过已经塌陷了。

父亲曾说过一句让我刻骨铭心的话:“我的历史使命就是让你从农村回到城市。”如今他做到了,我在城市扎了根。提一句,我爷爷当年就是从洛阳(轴承厂)下乡到我们村的。

我之所以能够逆袭成功,因素有很多,但我想以下这三点非常重要:

  • 父母的支持

  • 自己的努力

  • 选择了编程

关注我的读者当中,大多数都是学编程的,那么如何才能把编程学好呢,如何才能让它成为我们安身立命的根本呢?

一开始,不管是学习哪一门编程语言,C语言也好,Java 语言也好,一定要能让电脑屏幕打印出“hello world”。

如果10 分钟内不能完成,就说明你的学习方法是有问题的。

学习的最好方法就是逐步扩大胜利战果,先从最小的胜利开始,让自己感受到学习的快乐,尽快地进入到一种正反馈的状态当中。

如果一门编程语言需要你研究很多预备知识,才能完成“hello world”的打印,那么它就不太适合初学者。

学习编程的过程,大致如下:

1)入门

  • 看视频、看教程、看书

  • 模仿视频、教程、书上的代码,进行复现

  • 思考学习别人的思路,脱离视频、教程和书本,自己独自实现一些小 Demo

2)进阶

  • 学会调用 API,学会使用框架

  • 在 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) { }

最后

给大家送一个小福利

附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。

message);

} catch (Exception e) { }

最后

给大家送一个小福利

[外链图片转存中…(img-7TKqhHM0-1719247005400)]

附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。

[外链图片转存中…(img-cw9mICJo-1719247005401)]

  • 15
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值