0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员的自学心态是怎样的

工程师人生 来源:工程师吴畏 2018-12-28 15:07 次阅读

最近半年因为项目清闲,做了很多自学计划,很多都是心血来潮,也并没有都坚持下来,比如学习C语言、学习Spring和web基础知识、学习操作系统等。在这个过程中,突然意识到“心态”是学习中一个很重要的部分。程序员大部分是独自学习的,很容易进入一个懒惰或焦虑的极端状态,当心态不稳定时,会发现时间眼睁睁地流过,而你却无法进步,这是一种很难受的状态。当心态健康时,不仅能保持稳定的学习速度,还能在学习中得到快乐,进入一个正向循环。

楼主是一个凡人,资质平庸,学习的目的无非是提高竞争力,使自己不至于某天沦为公司裁员的牺牲品。如果你有更清晰的梦想和目标,说明你比楼主层次高很多,欢迎来指点楼主。

为学而学是不行的

一开始学习时,楼主看了许多帖子,里面的Java大神们都在说:要提高技术,就要不停地看源码,甚至自己造轮子……年轻的楼主深受这种理论影响,不屑于搞业务而日日研究如HashMap源码这样枯燥的东西,甚至计划自己写一套collection framework,把大神们造过的轮子再造一遍,似乎只要写完这一套东西就能立地成佛,能搞定所有的业务和bug。

当我开始写HashMap的时候就发现,为了写而写是一种很蠢的行为。一个轮子内部的那些看似精巧繁杂的结构,存在的意义是为了让轮子更好更长久地运转,而不是工程师为了炫技而创造的。如果我们没有一个实用的目标,反而会浪费时间,迷失在一些看上去很神秘的细节中。其实,像HashMap这样的数据结构,只需了解它大致的工作原理就可以了,余下的代码细节可以在使用有疑惑或者出了问题时再去看。

再比如,楼主看面经中总是提到JVM调优,因此觉得这是Java程序员进阶所必备的知识,于是就买了书和教程去看,但是发现对于调优这个话题看书效率奇低,书上比较多的是一些描述性的内容,如JVM的内存分布和垃圾处理算法;还有一些实用性的内容,比如调优工具、调优案例。有些内容反复看了又看,回想起来脑子里却不剩什么,远没有看完一个算法后的那种条理清晰的感觉。而花在这个问题上的时间却远远超过看算法的时间。

这几个周,同事要做一个自动化测试工具,问大家有什么好的建议。楼主想到自己一直学调优而无所得,灵机一动,提议在工具中加入调优功能,得到了同事认可。同事给楼主大概介绍了一些调优思路,推荐了一些资料去看。楼主希望争取到这个亲自实现调优功能的机会,于是幻想自己即将面临各种性能问题,为了解决这些问题开始储备知识,然后惊异地发现学习有了层次,楼主不再死板地按章节看书了,可以自动地筛选出重要和不重要的内容,甚至可以在脑中形成清晰的脉络了!

所以计算机是一门实践科学这句话一定要深刻理解。因为偏实践,所以不可能当王语嫣,因为许多理论是从实践中来的,好比数学公理,只能从实践中得到感性认识,无法从其他的理论推测得来,也无法死记硬背。楼主是一个学院派的人,在这方面吃了不少苦。从中总结出的方法论是:

计算机科学的知识大多是偏实践的,学习这些知识不能只看理论,要依托于实践。实践和理论应该是两条互相缠绕的螺旋线,当实践无法继续进行时就去看理论,当理论看起来无法理解更深时就去实践。

实践最好是一个项目,但大多数情况要自己提需求,寻找实践方法。可以是个人项目,也可以是自己的各种小demo等等,形式不限,学到就行。

学习与任何事一样,都需要务实。技术只是人们为了解决问题而创造的,包括那些听起来很高大上的框架和名词。只要怀着负责任的信念去做事一定会接触到各种各样的问题,面临问题自然会去思考解决方法,在这个思考的过程中,你实际上就开始接触了设计模式、JVM原理、计算机组成、网络协议等等……所以,不可以鄙视平时在公司做的那些看似简单的业务。

持续输出

长时间的学习很容易懈怠,陷入一种被动接受知识的状态。另外,一个人的思想永远不可能顾全所有方面。

比如,楼主的朋友最近想学习Java,于是楼主自告奋勇,每天给他介绍二十分钟Java基础。当说到垃圾处理时,楼主自然地老生常谈:Java内存分为新生代和老年代,一般的GC只对新生代进行收集,而只有老年代也没有空间了才会进行Full GC……朋友眨着天真的眼睛问楼主:为什么要分两个区进行收集,而不是每次都对所有内存进行垃圾处理呢?楼主惊讶地发现自己答不出来,因为从未想过这个问题……

今天楼主复习时无意中发现,书里其实有介绍这么做的原因,即大部分对象都是朝生夕死的,按年龄分代并频繁地收集新生区比较贴合这个模型,这样既能照顾到常用的内存,也能保证垃圾处理能在比较短的时间内结束。这一段楼主其实看过多遍了,但竟然从未将两者联系起来,也未思考过分区设计的原因……

又比如,有一次面试时面试官问Java线程池中核心线程数和最大线程数的区别。楼主轻车熟路地说:核心线程数是线程池的初始线程数,最大线程数是线程池能扩展到的最大线程数,只有任务队列提交满时才会扩容。面试官接着问道:“那你想过为什么要这么设计吗?”楼主支吾半天也没答上来……事后一想,其实很简单,就是为了既能重用线程,减少线程开销,又能满足偶尔的大规模请求而已。这么简单,为何当时没想到呢?

……因为平时看书的时候就缺乏思考啊……

对于楼主这种口号上的巨人、思考上的矮子,除了经常给别人讲东西从而被别人挑战之外,还有一个好办法,就是坚持写博客。

博客是一篇文章,需要有文章结构这种东西,为了使你的博客显得比较有逻辑性,你会被逼着去梳理知识点之间的逻辑,以及一门技术的由来、历史、产生背景等等。在梳理过程中,你会发现看书时遗漏的点被填满了。另外,把思路写出来能进一步强化你对知识的印象。而且,持续写博客会给你的学习造成一种健康的仪式感,即使一开始没有太多读者,你也会爱上这种输出的感觉,反过来督促自己为了写出更多博客而坚持学习。

行动紧张,但心情轻松

焦虑是自学最大的敌人。有一阵子看到朋友看书很快,自己也想加快脚步,可是却打乱了自己的一贯节奏。又有一阵子,像着了魔一样四处搜寻名人自传、大神博客,然后发现自己跟大神的差距要以数十年计,陷入一种无止境的焦虑。

楼主愿意相信,焦虑并不是完全不好的状态,因为它证明一个人想要进步,想跟那些优秀的人比肩。但是,“认识自己”也是一门非常重要的学问。每个人都是不同的,现在跟大神差距很大并不意味着几年后还会差距很大;但是有一个坚持下去的秘笈,跟跑马拉松一样,就是不要看别人,不要看终点。要做到这一点,先要接受自己的平凡,这样才能平心静气地去吸收知识、抵御外界的影响,而持续的焦虑只能适得其反。

如果每天都抱着一个远大的梦想,正襟危坐地努力学习,会发现很快就累了。之所以看电视剧不容易累,是因为潜意识就告诉自己在玩。如果学习的时候,也可以调整到一个好玩的心态,把问题当作小乐趣去解,会发现不知不觉就沉浸在解题的乐趣中,而感受不到时间的流逝,这种状态是学习的上乘状态。

一些啰嗦

楼主是个心高气傲的人,花了许多时间才接受自己是凡人这个事实。或许这个打击来得越早,就越容易踏实地走脚下的路。

跟初高中就开始学算法、写游戏,大学拿到ACM金牌,毕业后几家大公司随便选的大神相比,楼主实在是天资愚钝,大学时仅有的一门编程课——C语言学得异常痛苦,研究生时自学编程磕磕绊绊,做毕设时经常晚上十一点被导师的邮件揪起来——代码又出现了问题。楼主天资平庸,工作平凡,在写代码上没有任何具体的目标,比如“要做出一款炫酷的RPG游戏”这样的……

为了这个事实,曾经非常焦虑。喜欢拿自己跟别人比,唯一的结论就是还差得太多,连别人初中的水平都不如,得赶快补上……于是买书做计划,每天都要完成计划的指定部分,比如读十页书等等,这样也坚持了一段时间,但是因为压力比较大,学习效率实在不高,很久之后感觉还在入门边缘徘徊。

也不是说时间不重要,毕竟有著名的“一万小时定律”摆在那。但是看似努力学习超过一万小时而还没成为大牛的人也是有的。从我自身的经验,还是“进入状态”最靠谱。拿我自己来说,进入状态后两天学到的可能比没进入状态时几个周学到的都多,绝不夸张。

所以,最近越来越相信方法论了。

如果你看到这里,说:楼主说得都很有道理,但我缺乏学习的动力,怎么办?推荐你去看一下阮一峰的《未来世界的幸存者》 。你会发现作者对未来人类文明坍塌的预言可能超出你最悲观的想象。作者认为,随着现代科技的爆发式发展,社会贫富分化将迅速加剧,中产阶级将逐渐消失。那些无法理解现代科技的人会沉到社会下层,沦为科技的奴隶;而由于AI技术的快速发展,大部分本属于中产阶级的程序员都将失业,失业后由于看不到希望,沉溺于虚拟游戏这样的“精神毒品”度过贫穷的一生。在这样的魔幻世界中,“终生学习”已经不是一句口号,而是一个人清醒地生存在世界上的必需……

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    950

    浏览量

    29763
收藏 人收藏

    评论

    相关推荐

    Linux驱动程序程序员指南

    电子发烧友网站提供《Linux驱动程序程序员指南.pdf》资料免费下载
    发表于 11-22 15:53 0次下载
    Linux驱动<b class='flag-5'>程序</b><b class='flag-5'>程序员</b>指南

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员有积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 112次阅读

    第五届长沙·中国1024程序员节开幕

    据官方媒体报道,10月24日;  第五届长沙·中国1024程序员节在湖南湘江新区开幕;本次中国1024程序员节以“智能应用新生态”为主题。设置有岳麓对话、技术英雄会、主题峰会及赛事、展览等活动,一场
    的头像 发表于 10-25 15:42 159次阅读

    京东上万程序员都AI用它!

    对大模型生成代码进行智能修复,为程序员开启代码漏洞修复的“自动驾驶”模式,不但减少人工接入、提高工作效率,更为企业抵御内外部各种攻击构建起一道坚固的安全屏障,确保业务的连续性和稳定性。 JoyCoder是京东云自主研发的一款辅助开发人员
    的头像 发表于 07-17 16:29 228次阅读
    京东上万<b class='flag-5'>程序员</b>都AI用它!

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    助力程序员告别困扰已久的梦魇-Bug

    程序员的噩梦是什么?不用怀疑,就是让你加班到崩溃的Bug!下面是经过业界大佬们“长期加班”积累的小妙招,助力你离早下班又进一步~一、定位Bug范围及性质要有效解决问题,首先要缩小范围,集中关注最近
    的头像 发表于 07-02 08:10 275次阅读
    助力<b class='flag-5'>程序员</b>告别困扰已久的梦魇-Bug

    大模型时代,程序员当下如何应对 AI 的挑战

    随着 AI 技术的飞速发展,特别是大模型的出现,传统的程序员角色正在经历深刻的变革,我们不得不重新对自己进行审视和思考。 通用领域大模型的“泛化能力” 在过去的二十年内,AI 领域的大部分研究
    的头像 发表于 06-28 16:19 503次阅读
    大模型时代,<b class='flag-5'>程序员</b>当下如何应对 AI 的挑战

    阿里云发布首个AI程序员,引领应用开发进入“分钟级”时代

    近日,在备受瞩目的阿里云上海AI峰会上,阿里云向全球开发者们展示了其最新的技术成果——首个“AI程序员”。这款创新应用基于通义大模型构建,具备了令人惊叹的多项技能,包括架构师、开发工程师、测试工程师等,为软件开发行业带来了革命性的变化。
    的头像 发表于 06-24 10:36 620次阅读

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 388次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 785次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13

    诚邀报名 | GPT驱动的新程序员时代,开发者如何编程?

    2023开放原子开发者大会 . OPENATOM DEVELOPERS CONFERENCE GPT驱动的新程序员时代 我们该如何编程 2023.12.17 生成式AI正以旋风般的速度重塑我们的工作
    的头像 发表于 12-11 22:20 516次阅读