程序猿的困惑之为什么学了很多都记不住?

10年前第一次接触Java,抱着一本《Java编程思想》啃,然后陆陆续续接触了一些网页开发的教程,最后和班上的小伙伴们一起完成了xxx管理系统。当时不会用搜索引擎,只能是自己对着书,通宵熬,写了调试,有问题再改。想在回想起来,那时怎么那么笨,直接网上找个源码改吧改吧不就行了嘛?看到了么,现在的我与其说是在“编程”,不如说我是在“抄”。你怎么看待这个问题呢?抽个空想想。

当然,一种思维方式的形成并不是一蹴而就的。它是在你生活工作中慢慢培养成形的。人,天生就喜欢走捷径,即使他知道走捷径的想法并不好,最终会自食恶果,但这种刻进基因里的意识想法时不时地就跑出来诱惑我们。在现在这个快节奏的时代里,短平快是所有人的追求。开源、分享、培训、干货……你会发现,这个时代最不缺的就是知识了,它就在那里,却没有留在你的脑海里。于是,很多人开始了知识焦虑。程序猿这种职业尤其明显,科技带给我们层出不穷的新应用、新框架、新工具、新模式。你还没完全弄清楚Java是什么的时候,人家都开始用Python去搞人工智能了。你以为自己在维持现状,其实你在退步。你说苦恼不苦恼?时不时就看到别人薪资往几十k的方向走,而你只能安慰自己稳定一点也挺好。

为什么我们会成为这样一个自己都鄙视的人?

困惑

1、学了容易忘怎么办?

是不是很多人像我一样,到现在为止都没有把《Java编程思想》啃完一遍?有时候看到网上的分享,有人把这本书啃了好几遍,心里那个嫉妒啊。然后鄙视下自己怎么就没静下心啃完呢?这两年我开始改变了,我的的确确啃完了一本又一本书,突然觉得从书里获取的知识确实比较全面些。以前特别喜欢看博客文章,看得挺过瘾,觉得自己获得了原作者的真传。不过,博客文章都是一个点,为了解决某个问题,或者某些个知识点。

书是看了,当时以为都明白了。比如有段时间看了Nginx相关的一本书,里面讲到了配置文件的写法。真正到工作中要写的时候,懵逼了。另外,有很多原理理论解释的书,人家总结的一条条,你看得很爽。合上书本,脑子空白了。有时候我在想我自己怎么感觉越学越觉得啥也不会了呢?

2、大家是不是在遇到不会的时候通过Google解决?

工作中遇到的问题,我基本都可以用Google来解决。说得好听点是站在巨人的肩膀上,说难听点就是看下别人是怎么解决的,有源码最好。时间充足的时候,会看下文章里解决问题的完整思路。任务紧时间少的时候,本着“拿来主义”,只校验正确与否。运气好,根据第一篇文章写的就可以解决问题。运气不好的时候,全网找了也不一定能找到答案。一般到这个时候,只能静下心想想问题出在哪了。想明白了,自己就可以写一篇文章了。哈哈。

3、开源框架带来的错觉?

举个例子,从Spring到Spring boot,框架越来越强大,需要我们配置的东西越来越少,使用起来越来越傻瓜了。很多工具,开箱即用,API高度封装,只需要写很少的代码就可以实现很复杂的功能了。所以,我们这代人天天站在巨人们的肩膀上会产生一个错觉,以为自己的编程能力越来越强了。可事实真的如此么?我们是否还需要深入了解各种框架的源码?

会开车的人不一定会修车,我们只是把车当做一种交通工具而已。作为Java程序员,Spring boot让你如此快速就可以构建出一个web服务,似乎是你根本都不需要了解HTTP了。你是否和我一样有心虚的感觉呢?

3、程序猿内心的不确定?

像文章开头提到的,在这个知识爆炸的时代,每个人都不可能把所有知识学完。程序猿所在的计算机科学,分类之复杂,叹为观止。每年的热词层出不穷,五花八门。你的内心能安定么?你以为PHP能一招鲜吃遍天下,你以为Java是万能的,那你面对现在大数据、人工智能、物联网大行其道的事实有没有一点恐慌?都说程序猿的薪资非常高,直接导致了这个行业培训机构遍地开花,只要花点钱就可以轻松踏入这个行业。门槛的降低必然导致竞争的恶化,越来越多的企业加入到加班压榨程序猿的行列来,对于那些重复性较多的岗位,年轻人的优势越来越明显,而老程序猿们中年危机陡现。如果你是一线码农,技术不成长和等死有什么区别?

年轻时对新技术有足够的好奇心和耐心,当你踏入中年,有一部分精力会被划分到管理岗位,真正编码的时间会减少。你要考虑的问题就不再只是代码本身了。你需要对商业、人事、技术架构、行业等内容付出时间和精力。一方面,不想在技术层面上落伍;另一方面,管理能力亟待提高。

4、专一?全栈?

全栈工程师越来越流行,单一的技能对于门槛不高的岗位来说竞争力越来越小了。大公司有明确的岗位分工,你只能负责某一个领域的某一个产品或者项目。而小公司,有可能一人身兼数职,全栈的需求更高。倒不是说你一个人扛起一个公司,而是你有能力指导其他人,把一个系统或者项目抓起来。任何一个环节出现问题,你可以临时顶一顶或者想办法能解决。所谓技多不压身嘛。

当然,也有人认为术业有专攻。你的价值在于你在某方面是独树一帜的,无人可取代。个人认为,这个目标很好,但我们大多数人达不到这个高度。如果你能力超群,意志坚定,专一门挺好。如果你随波逐流,只是想提高自己解决问题的综合能力,全栈是一个不错的思路。

自省

1、是否学习的方法不对?

很多人说,我也看了很多书,看了很多视频教程,但是我还是一出现问题就找搜索引擎。知识点记不住啊。怎么办?我自己也会不定时调整自己的学习方法,包括了解一些记忆方面的书。可惜,每个人都是独一无二的,他人的方法还真不一定适合你。还是得靠自己去认识自己,从各种方法里寻找到对自己有效的那些。

有时候情绪很低落,觉得自己好笨,怎么就是记不住那些知识点呢?而且这种感觉具有周期性。就是时不时及会涌上心头。这时候我会去看看大家是否也遇到了我这样的困惑,其他人是怎么看待的呢?

2、个例?普遍存在?

这个世界都是连通的,其实有很多小伙伴也和你有一样的困惑。所以,你要相信很多问题都是普遍存在的。悲观一点地说,大部分人都是平庸的。乐观一点说,大部分人都有自己的小宇宙。网上有很多人点燃了自己的小宇宙,默默地挣了很多钱。所以,你何时让你的小宇宙爆发呢?

3、善用搜索,这个度怎么把握?

搜索引擎真是一把达摩克利斯之剑,你不会写ajax,搜一下。你不知道httpclient怎么用,搜一下。你不知道crontab怎么用,搜一下。大部分情况下,直接把代码贴过来,改几个参数就可以了,然后任务完成了。过了半个月,又得写一个crontab的脚本,再搜一下。搜索引擎让我们很多人养成了“抄”代码的习惯,包括我自己。是啊,有代码不直接抄了完工,傻啊。所以,搜索引擎其实再降低我们的编码能力。

网上不少观点说,我们根本不可能记住所有内容,必要的时候查下也很正常。这句话其实不准确,我们很多人把握不了这个度。曾经我的老大批评过我一次,让我记忆尤新。他说,假如线上网站突然不能访问了,你去Google下怎么看GC,来得及么?况且,也不一定是JVM里出了问题。所以,很多东西是需要存在脑海里的,只是说某些不常用的命令,可以通过man或者help能查清楚,不懂的时候可以用Google。

学习方法

看到了这篇文章,我觉得写得还可以,摘录到这儿,原址

在心理学上,人的记忆分为三种:瞬时记忆,短时记忆和长时记忆。我们看过一遍书之后,会形成短时记忆,这种记忆能够保持的时间非常短,一般只有5~20秒,最长也不超过一分钟。

这就是为什么我们有时候看书会出现以下情况:

翻开书:马冬梅 关上书:马什么梅 翻开书:马冬梅 关上书:什么冬梅 翻开书:马冬梅 关上书:马东什么

另一种记忆类型叫长时记忆,长时记忆能保持许多年甚至终身的永久性记忆。

在有复述的情况下,保持在短时记忆中的学习材料会向长时记忆转移。复述是指通过语言重复刚刚识记的材料,以巩固记忆的心理操作过程。分为保持性复述和精细复述。前者又称简单复述和机械复述。后者又称整合性复述,它使短时记忆中的信息得到进一步加工和组织,使之与个体已有的知识建立联系,从而使信息转入长时记忆中。

嗯,然后用人话翻译一下就是:如果你只是简简单单地认了一遍字不总结不归纳,甚至不做任何练习,那么遗忘在你关上书的那一瞬间就开始了。那么,如何让我们的短时记忆转化为长时记忆呢?

1、养成记笔记的习惯

从小我们就被教育:好记性不如烂笔头。当然这里的记笔记不是指你把书上的内容全部抄下来,而是你把你认为重要的,你不太明白的,你从中感悟到的。这就是前文所指的一种整合性复述。当然,形式完全可以不是拿支笔拿个本儿。仅仅是帮助你总结所学知识,顺便留个底,今后遇到相关问题,可以立刻从你自己的笔记中找出来。复习的时候,看自己的笔记总比重新翻书学习效率高得多。因为笔记总归是自己咀嚼过一遍的东西,更易于消化吸收。当然不是说书读过一遍就扔了,温故知新,当你发现曾经的你学到的这些东西已经不够用了的时候,重新回去翻书,重新整理新的笔记,这就是我们不断进步的途径。

2、养成学完即练的习惯

为什么老师在上完课之后,一定要给大家留作业?因为“知道了”和“会用了”之间还有一个很大的鸿沟。浮于理论的知识也许听起来很高大上,但实践的时候往往会出现很多意想不到的麻烦,比如我们都知道的著名历史人物赵括,纸上谈兵的后果是什么也不用我在这里多说了吧……纸上得来终觉浅,绝知此事要躬行。相信大家在市面上购买的编程类书籍,课后都会有相关习题的,这些题目都是作者经过无数次审阅与修订,最终决定下来的,最适合学完即练的题目,浪费可惜。

3、多做项目说实话,我们学习编程,到最后都是要落实在项目上的。

做项目跟做题又不一样,你需要考虑到方方面面的东西,你需要将你学过的理论知识全部赋予实践。这时候你会发现:根本没有人能记住所有的算法。甚至根本无法记住所有的基础语法。但在认真进行过上述学习过程后,你会发现:你知道这件事如何解决,知道这个项目需要什么样的算法才能解决。也许你已经记不清这个算法是如何具体实现的,但是你知道在哪儿能够找到它。其实到了这一步,你已经是一位大神了,就像楼上有人说的,也许你并不能一口背出7大排序算法,但是通过学习的过程,你记住了在什么情境下应该用什么样的方法解决。这时候你再回到你曾做过的笔记,曾做过的题目中找到解决办法,并用以当前的项目。用多了之后,有些东西可能就像1+1=2一样深深扎根在你的脑子里了。

坚持才能胜利

任何方法看起来容易做起来都难。就像让你每天写一篇文章,你试试就知道有多难了。每当这个时候我都想起李白,人家写诗那才华呐。为了不打击自己的自信心,一定要量力而行。勤学苦练,假以时日,必有所成。鸡汤就不多熬了,大家都懂。

漫漫编程路

为什么写这篇文章?Java我也用了快10年了,最近听了一个老师讲的Java,感觉自己有些地方居然没理解。不得不承认,现在培训机构的老师都挺会总结,比以前考试的知识点还要更精华。拿Java开发系统没问题了,但是Java基础的好多内容,我的脑海里还是有不少盲点。明白一个知识点,和把它讲出来还真不一样。时代在变,我们也得跟着变。

说明:本站著作权归www.ddkiss.com所有,任何形式的转载都请联系作者获得授权并注明出处。

转载于:https://juejin.im/post/5bcc1705f265da0aac701596

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值