昨天我请教了几位大佬,他们告诉我要这样学习编程!

2023-12-25 01:58

本文主要是介绍昨天我请教了几位大佬,他们告诉我要这样学习编程!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实不相瞒,我最开始听到这样的建议,我是感到很吃惊的!

我多次在公众号给大家分享过关于学习编程的各种干货,我之前也说过,这些都是我自己亲自试验过,然后不断总结试错得来的,在分享这些干货的同时,我也多次强调:别人分享的干货再好,你也不能够直接生搬硬套,比较好的做法就是作为有价值的参考,结合自身情况去试错,慢慢找寻适合自己努力的一条线!

其实吧,我一直觉得学习编程最大的一个挑战就是学了就忘,而且编程这个行业你也许发现了,技术更新迭代非常快,不知道什么玩意的各种技术名词满天飞,我们可以学习前端或者后端,说白点就是各种编程语言,你得搞一门,这是你工作吃饭的家伙,但是你可能发现了,无论前端还是后端,大家好像都有个共同的烦恼:

“什么玩意,我太难了,要学的东西贼TM多,而且痛苦的是学了还总是忘……欲哭无泪啊”

不怕你们笑话,我最近去面试的时候,其中被问到了这样的一个问题:

“说一下 Spring bean 的生命周期吧,最好详细一点”

说真的,我懵逼了,真的,顿时不知道怎么说了,是的,我忘记了,感觉面试官看到我有点懵逼的感觉,然后又说了一句:

“这就是面试背烂的东西啊,背一背就可以的”

是的,我还真的没有背这个,时间久了,真的忘记了,这几天一直在突击什么分布式啊,微服务啊,集群啊,优化啊,虚拟机并发这类的,是的,我好像忽略了框架,比如 Spring ,SpringMVC,Mybatis,SpringBoot,SpringCloud,Dubbo……等等等等等。

唉,真的是,学的完吗?记得住吗?

在面对这样的一个大问题,就是知识多,学了容易忘我们该怎么办嘞?在之前和大家的不断探讨之中,大致有如下这些解决办法:

1、多记笔记,写博客,做好输出
2、经常复习
3、多多实战,上手敲代码

就这三条,很简短的文字,确实对抗上述问题的必备利器,这三条方法好吗?说实话真的好,我也试验过了,确实有效,尤其对于新手,但是在实际的情况中,能够做到上述三点的真的只有少数人,有句话说的真的是好,成功永远不属于大多数人!

我在之前直到现在的学习模式,其实一直是遵从上述三条的,当然,这其中会有很多的小问题,实操起来也容易进入一些小坑,我在之前的分享都提过,比如什么时候该去实战啊,如何记笔记,博客该怎么写啊,这些我都是有提的。

在按照上述的三点经验执行中,因为我执行的时间是比较久的,所以我也在不断遇见新的问题,我目前主要的困惑集中在笔记这块,关注我比较久的读者应该知道,我是非常推荐做笔记的,我觉得在学习编程的过程中,由于知识繁杂,我们学了很容易遗忘,不过我们只要记笔记,就会减少这种情况,比如我们可以多多复习,温故而知新嘛,经常看看自己的笔记,这样就可以慢慢形成长期记忆,不会就翻翻,多好!

而且,也是有很多这行的前辈建议我们多多记笔记的!

而我为什么又花了一个下午的时间去思考这个问题呢?为了形成自己的知识管理模式以及减少学习过程中的知识遗忘,我的做法就是记笔记,就是在学习的过程中,学习到新知识的时候,这个知识是什么,有什么用以及怎么用,要注意的点等等我都会记下来,当然,一定会加上我自己的思考,这就形成了我的笔记。

随着不断的学习,我学习的知识点越来越多,记得笔记也越来越多,比如我之前在学习 Java 虚拟机的时候记了将近三万字的笔记,有些写成博客分享出去了,这里既然提到博客和笔记,我就简单的说下两者的区别:

1、博客是写给别人看的
2、笔记是写给自己看的

接着说我遇到的问题,那就是笔记越记越多,就产生了新的问题:

1、之前的笔记,其实去复习的频率很低
2、越来越多的笔记,查找起来越来越不便
3、笔记的保存是个问题

我主要针对第三个问题说一下,既然笔记作为自己知识管理中最重要的角色,这个时候就要选择一个笔记平台了,于是我在选择合适的笔记平台纠结过很多次,比如线上的印象,有道和为知,但是他们我都不怎么满意,主要是我想要的那种文档目录大纲的功能,他们都没有,后来我选定使用word来写,左侧的目录结构让我用起来很爽。

再到后来,保存又是一个问题,会担心遗失等等问题,然后还有本地文档的保存分类什么的……

为什么会产生这种问题,就是你对笔记这个东西太过重视了,当你把它看得非常的重要的时候,随之而来就会产生一大堆的问题……

那么回到一个本质的问题,记这么多笔记,自己真的记忆了多少?自己去复习的频率又有多高?是不是很多知识自己依然忘记了?真的要去复习的话,会把一个成体系的笔记从头看到尾嘛?大概率会挑选某一个知识点看吧?

而且很重要的一点,我为了“记笔记”这件事,花费了相当多的时间,考虑到成本与盈收,我是亏了还是赚了?

遇到一个不会的问题,打开百度,一搜都是的,随便看几篇,这个知识点是不是就回来了,毕竟自己之前学过?这与之前花费那么多精力去记笔记,有什么区别呢?

所以我其实是产生了新的困惑的,于是我请教了一些大佬,真的是大佬级别的人物,我是这样提问的:

“你在学习编程的过程中记笔记嘛?对于知识学了就忘,你是如何处理的呢?”

得到的是这样的回答:

“不记的”
“忘了就再看看呗”

“用的多的 自然会记住 用的少的 为什么要记?”

以上是选取了比较经典的回答,不知道你们看了作何感想?

听到这样的建议,我也有大致的思考,其实对于笔记这件事情,我个人觉得如果处理不好就有可能形成“松鼠病”,也就是我们会错把这些笔记当作我们的知识了,一直在收藏起来,进入自己脑子里的其实很少。

说到底,想要学好编程,还是要多学习,那忘了怎么办?用的多了自然就不会忘,用的不多记它干嘛?要不就是,忘了就再看呗!

也就是要把更多的时间用于去学,而不是记,然后,平常也要注意下输出,目的其实是一致的,就是把那些常用的知识不断的在脑海里回顾,渐渐的形成长期记忆!

是的,我们的目标其实很明确,那就是四个字“熟能生巧”!而非把东西记下来以及非要强制自己记住什么!

好啦,以上真的是纯文字的输出思考,希望对你们有帮助!也欢迎大家留言讨论!

最后感谢大家的阅读,如果大家对高效学习编程和终身成长感兴趣,不妨关注下我的公众号,微信搜“编码之外”即可,我经常分享关于程序员的各种学习干货,另外还将我的原创整理成了PDF,后台回复“PDF”即可获取,也可以加我微信H653836923,一起交流学习!

这篇关于昨天我请教了几位大佬,他们告诉我要这样学习编程!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/533896

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制