精华内容
下载资源
问答
  • 6个高效学习编程的方法

    万次阅读 多人点赞 2020-03-07 19:04:04
    学习编程的重点就是懂如何学习

    如何高效学习编程
    编程确实不是一件容易的事情,除了要有较强的逻辑思维,还需要花大量的时间和集中力来提升或者维持一定的高度

    与其他的领域不一样的是,技术每日都在变,所以对于编程初学者是很难一直与时并进的。就算是技术大神和老司机们也是追赶的比较吃力的。在技术领域打滚的这些年里,通过经历和经验总结出一些高效的学习方式和方法,在这篇文章里与大家分享。让我们现在就在技术领域的学习之路上奔跑吧!


    锁定目标,风雨兼程

    锁定目标,风雨兼程
    在刚刚接触技术的时候,很多人都会比较迷茫。技术领域有前端后端并且各自有多种编程语言。选定前端后端后又发现越过一山还有一山高,面临更多的选择。甚至在技术领域打滚了多年后的技术人员也会迷茫,会开始质疑自己的前景,是否要换一门语言或者多学几门语言。所以锁定目标是高效学习的第一门课。


    选择目标

    如果你的目标是前端开发,前期的学习道路是比较明确的,HTML5+CSS3起步。但是如果你的目标是后端开发,还没有开始就已经有多扇门在你前面,让你瞬间选择困难了。所以这里我们就用后端语言选择作为一个例子讲解学习目标选择方法。

    陷入学习目标选择困难症是因为技术每日每夜都在变,方向和未来都在摇摆。但是我们首先要有一个对技术有很好的判定能力。

    大家应该很多时候都听过"JAVA才是世界上做好的语言","PHP才是世界上最好的语言"等等,这些在自己领域崇拜着自己所爱的语言技术爱好者。TA们并没有错,因为每个开发语言都在特定领域或者项目条件里是最好的语言。不过并没有世界上最好的语言,只有在某一个场景和条件下最适合使用的语言。每一种开发语言都有他擅长最合适的使用场景。

    • PHP - 更适合小型到中型网页端应用(大型应用就需要其他语言配合使)
    • JAVA - 更适合大型应用,企业级应用(中小型应用用JAVA就是大材小用,浪费资源)
    • PYTHON - 更适合用于爬虫,人工智能,脚本类应用

    目标寻找法

    所以在选择学习目标的时候,我们要有对技术的判定能力,不要轻易听取一些偏面的评价和定论而下决定。

    选择学习目标时重要的决定因素:

    • 在目前最实用的 - 学能用到的更容易上手,也更有价值
    • 难度跨度不要太高 - 难度跨越太大时间成本会越高
    • 感兴趣的 - 感兴趣才更能坚持,更有动力
    • 社区更大的 - 社区越大遇到问题时找答案的途径越多
    • 开源项目优先 - 开源的项目的技术更有未来

    🎯 一旦锁定一个目标就要能懂,能用,能变,再扩张你的学习领域到其他的技术。

    • 能懂  -  能懂的技术或者知识的理论和原理;
    • 能用  -  能把技术或者知识投入使用,投入实战项目;
    • 能变  -  能举一反三学到的技术或者知识,能变通,延伸拓展。

    不要蜻蜓点水

    这一点是很多初学者都会犯的错误。

    不要浅入浅出,得不到技能还失去了时间。

    学习要一步一个脚印,很多一开始学习编程往往会同时学习多个技术,其实这种学习方式不但没有效果反而还浪费时间浪费生命。锁定一个学习目标就要专注一个点上学习,重点学习。

    举个例子,如果你想成为一个Java开发工程师,你是不需要从C学起,然后C++,最后才开始学习Java。我看到很多开发者刚开始都是这样学习,其实根本不需要从底层技术开始学习。既然你的学习目标是Java,那就直奔重点不浪费时间。稳固了基础开发语言后,选择一个框架开始深入专业实战知识。当你稳固了更专业的实战知识后,就可以开始学习这个技术的周边工具(比如IDE)让开发更加高效便捷。

    📖 专研秘诀:

    • 学习每一个知识或者技术,一定要深入浅出,深入学习和挖掘,吸取重要知识和技术。
    • 专心,专注,专研是一个技术人才的基本素养!

    先专注于会用而不是能用

    很多开发者习惯性会过于专注于工具使用,写法,性能,可扩展性等等。初学者一般都会掉入工具使用和写法的坑,而资深的开发者会过于专注于性能和可扩展性。这时候往往会过度消耗学习时间,甚至忘记最初的学习目标。

    用一个简单易懂的例子,“一个机械工程师不会浪费时间想怎么更好的使用TA的扳手,而是怎么可以组装好一个机器的部件” - 很多人会想,学会用更好的工具不是可以更快地安装好吗?但是现实是,你都还没有弄懂怎么安装,再好再有效的工具对你来说都是无用武之地。所以还没有学会前行,就不要先想着怎么跑

    再举例,如果你是正在学习使用Vue框架,不要太过于执着怎么使用Vue的周边工具,高级写法,性能隐患问题等等。你的目标应该是创建你的第一个首页然后直接投入开发一个小项目小应用。这样你的产出才是最高的,因为这样做更加专注于学会怎么使用Vue来实现功能,而不是更好的使用Vue框架。

    在学习的时候要专注于会使用新的技术,而不是怎么用各种花式技巧来提高使用能力

    还有很多童鞋开始学一门技术时,会先开始看一大堆的知识和书籍,或者去看一些大型的项目用这个技术是怎么实现的。其实更有效的学习方式是小步快跑,学习的过程中开发一个小项目会让你更加有动力也更有趣。

    约定自己在限定时间内完成小目标,如能完成就给自己一点小奖励。例如,你对你自己说"如果我下周五完成这个功能,我就让自己去看个电影"。记住奖励不需要很大,小步快跑,小奖小利,这样才能维持发自内心的动力和驱动力。不过就算没有达成小目标也不用气馁,失败时成功之母,所有成功的人都是通过在失败中总结成长壮大。


    采用学习策略

    采用学习策略
    每一个人都会有一种最合适自己的学习方式方法,适合我的不一定对你就有效 - 所以找到一种对你有效的学习方法很重要。

    经历

    学习方式方法是通过你日复一日,年复一年不停地尝试和总结得来的一种技巧。我也尝试过很多种方式来学习技术,自从我开始进入技术行业到现在,我换了无数种学习方式才找到最适合自己的一种技巧。
    在一开始刚刚入门的时候,我尝试看很多"从入门到精通",“XXX语言101"等等,最终的结果都是"从入门到放弃”。后面开始走视频学习之路,发现视频里面的老师说话好像是机器人一样,本来有点失眠症的,没想到一看视频秒睡着,被治好了!我以为我的技术生涯就要结束在这里了~ ¯_(⊙︿⊙)_/¯

    建立策略

    前方无绝路 · 希望在转角 ~ 我迅速改变了策略,学习技术和其他领域不一样除了看书,撸视频还需要动手去敲代码。学习任何一门技术,可以遵循以下学习策略,可以让学习的技术和知识更加稳固。

    📖 学习策略:
    还是遵循我们之前说到的规则,能懂,能用,能变。

    1. 深入了解技术的原理 -  了解清楚才能更好的在不同场景下运用自如(可以通过看书,看文档)
    2. 通过代码理解运用方式  - 看懂基本原理,就可以看看别人是怎么在项目中使用的(在github找开源项目,看教学视屏等等)
    3. 实战,做一个小项目 -  能懂,能会了就要能用,用新学的技术实现一个功能,做一个小项目,把知识投入实战。
    4. 发挥你的想象力  -  能用后如果想进阶更高层次,就要发挥你的想象力,能举一反三,在你的小项目里面加功能。

    其实上面的策略无非就是学习的过程中必须有的理论,运用和变通。这三个学习维度要保持一个良好的平衡。这个平衡是非常重要的,只有理论那就是"纸上谈兵",只有理论和运用那只是个"代码搬运工",如果三个维度你都才是就是"大师"。

    当然所说的平衡不是说1:1:1,完全平衡是很难的。对于一个初学者的话可以先3:2:1,中级就可以开始维持2:3:1,到了高级就可以维持2:2:2了。(比例指的是 - 理论:运用:变通)


    时间管理,提高效率

    时间管理,提高效率
    番茄工作法估计很多人都听说过,但是真正用上可能就很少了,能坚持使用的就更少了。

    很多时候在学习中,或者工作中,我们都是被时间追着跑,这里看一下哪里看一下,不经意就已经过了几个小时,一天就过去了。其实真正有效的产出不大,那是因为你没有合理的管理时间。用番茄工作法就是可以让我们可以追着时间跑,让自己时刻有着时间感,急迫感。
    自然时间运用上就更加有效了。我现在工作中和学习中都已经在使用番茄工作法,有效管理时间效率。突然发现使用了之后,每个小时我的工作效率提高了很多。

    使用方式其实很简单,把学习或者工作时间拆分为25分钟一个小阶段,每25分钟休息5分钟,每4次小阶段休息15到20分钟。

    使用这个时间管理法后,你会觉得在25分钟的小阶段里面,你的时间很紧迫的,每一分钟你都觉得很宝贵。你会发现你没有时间去浪费,自然而然的在25分钟内提高了效率。无形中你的学习和工作的集中力就会提升。除了提高了你的效率以外,你会发现一天几个小时的学习或者工作都不觉得很疲惫。因为在25分钟的高度集中后,你合理的调整了休息,让自己非常平衡的控制好疲惫度。所以你会发现一天里面的学习和工作都变得轻松了。

    用番茄工作法提高了学习效率和疲惫度,自然你的学习成果就会更高。如果你觉得我说的这个方法太虚幻了,不妨试一下体验一下,实战说明一切!


    多思考,多教学

    多思考,多教学
    通常我们学习都用的是吸🌟大法 🌟ԅ( ͒ ۝ ͒ ),然后实战运用,其实还有很多细节和理论我们并没有理解透测。所以运用就不够自由,无法延伸一些创新的用法,或者举一反三。

    在我事业发展的过程中,从一个小开发,做到一个小组长,到现在技术总监。在我开始带领一个小组,到带领整个技术团队;很多问题和新知识都要通过讲解或者教学来带培养你的组员和队员。这个过程中会遇到各种不同思维程度和学习能力的人,每一个人的理解能力或者理解方式都不一样,甚至看待每一件事情或者知识的角度都不一。你会发现你教学或者讲解某一个知识的时候需要使用各种不同的方式和方法。往往就是这样触发了你自己去换角度思考和理解这个知识,而启发了你自己对这个知识新的认知。

    通过教学和讲解来把你的知识传承给另外一个人,需要重新整理思路,逻辑,切换N种方式和说法。这个过程中你会挖掘出新的知识,新的观点,新的思维方式,新的理解角度和深度。这就是自我思维切换而达到的知识深度挖掘和提升的过程。这种就是我们经常说的小黄鸭教学法。

    不知道大家有没有听说过,当你思路不清晰,或者有问题无法解决的时候。你可以找一只小黄鸭,你就开始讲解你的思路,逻辑或者问题。这个过程中你开始重新整理自己的思路。如果你把一只啥都不懂的小黄鸭也能让它听懂。那这个时候你的思路,逻辑,理解都更加清晰了,问题起码都解决了50%以上了。我给这个方法取了个名字叫小黄鸭教学法!初级学习的时候要用吸星大法,进阶到高级的时候就要用小黄鸭教学法。能教会一只小黄鸭技术,你就是大神了!


    记录,总结

    记录,总结
    除非你是过目不忘,要不看完一本书能记下所有是不可能的。就算记住了但是不可能完全明白透彻。一个程序员经常面对着反复又反复的任务,记录学习进度和总结学习知识很重要。往往你学到一个知识的时候,你会使用这个知识投入实战中。你沉迷在代码海洋之中无法自拔之后,你会发现你已经不记得你入海前学到哪里了。所以记录学习进度很重要。

    记录学习方式:

    • 把学习后的知识写成文档
    • 把知识写成博客
    • 总结重点,记录重点
    • 编写学习规划,就是所谓的todo规划表

    在学习中,如果要把知识记录,当你要使用它的时候能快速找到。那你就要有总结知识的习惯。把你学过的知识,技术,技巧都写成文档,写成总结。这样加强你的印象,同时也整理出了属于你自己的开发手册。当你遇到了某些问题的时候就可以通过你自己的开发手册找到答案。


    改掉以下习惯

    改掉以下习惯

    • 完美主义: 初学者经常会陷入的一个坑,从一开始就追求完美,完美的写法,完美的实现方式,完美的设计模式。其实有时候这些都不是最重要的,反而导致有延迟和延后的严重情况,导致进度一直无法推进。最求完美往往把简单事情变得复杂。不要总是为了完美而无限徘徊,为了最好的解决办法而纠结,为了对的方式而浪费时间。往往在开发中,时间是有限的,需求是无限的,连完成都无法保证,就更没有时间追求完美。
    • 对比心态:很多行业内的新人或者准备入行的,都会去和行业内顶尖的人做对比。有一句很火的话"没有对比就没有伤害",很多人用来对比好与坏,美与丑。其实另外层意思就是如果对比会对你自身造成打击又何必常常带着对比之心来对待自己和事情呢?对比不一定会有伤害,但是对比的心态才是真正造成伤害的源头。应该先认可自己的优点,接受自己的缺点,然后去找到别人的优点,发现别人的缺点。在别人的优点和缺点给自己带来成长。吸收别人优点,避免自己养成了同等的缺点。优秀的人不是天生比你优秀,而是TA们更懂的不自我透支,更懂得养成在无形之中让自己成长的习惯。
    • 复杂化:学会把复杂的问题和事情拆分成多个小问题小事情。复杂的问题和事情就会变得更加简单。因为问题和事情往往有多个点需要突破,把每个点拆开逐个突破就会更加简单轻松。从简到繁,如果太复杂,就拆开一个一个更简单的小点,逐个突破。
    • 过度透支:学习累了就躺穿上休息,吃饱喝足了就坚决不吃了。养好一种自律的习惯,不过度透支自己的时间和生命,这样才能有更好的精神和态度面对问题和困难。近年来有很多给程序员打上的标签,“加班狗”,“无日无夜写代码”,“生活邋遢”,"衣服全是同款黑色"等等。确实,做为一个程序员,我们花了大部分时间都在想问题,编写者神乎奇幻代码和程序。但是我们都往往忘记了自己的身体已经在一点一点透支。到了那一天你停下来了,你会发现,身体不行了,除了写代码其他个方面的能力都没有时间去提升。也没有劲学习成长了,整个人好像很颓废,生无可恋一样。所以学会不透支自己,才有更好的状态和精力学习和突破自己。

    总结

    无论你是在学习技术还是在学习任何其他领域的知识。在学习这条路上都会有坑坑洼洼,各种颠簸。所以我们学习要有技巧,要有方法才能在有效时间内收获最大化!

    学习法门:

    1. 锁定目标 - 选择有用的,对你现在阶段有价值的目标
    2. 采用学习策略 - 深入学习,投入实战,总结经验
    3. 管理好时间 - 把控好时间,提高效率
    4. 多思考,多总结 - 多思考问题,多总结和记录知识
    5. 改掉不好的习惯和心态 - 有好的习惯才能更轻松的学习和成长

    一个人一生是有学不完的知识和技能,然而人一生的时间是有限的。所以要把我们的时间和收益最大化才能比同年龄的人跑的更快,学的更多,能力更强!大家一起在学习的道路上继续加油吧!

    推荐阅读


    • 🔥 《学懂编程第一法则助你写出更好的代码》 — 无论新手还是资深开发者都会经常问一个问题,“怎么写好的代码?”,要知道怎么写好代码,首先我们要知道怎么样才是好的代码。要有明确的目标,才能知道如何达成目标。


    • 🌟《你真的懂怎么写服务层吗?》 — 其实很多系统架构里面都有服务层,但是服务对很多开发人员来说都有很多不同的定义和写法。甚至在我待过的公司里都有不同的写法和编写模式。每个人每个团队每个项目都有对服务不同的理解。那到底什么是服务,怎么理解才是对的呢?

    和你一起终身学习

    展开全文
  • 如何高效学习编程技术?

    千次阅读 2018-11-20 20:10:00
    通过这段时间的看书学习和对编程的思考,结合自己的亲身的学习经历,今天想和大家聊一聊如何高效学习编程技术。 我们可以把学习编程技术的人分为下面四种情况。 第一种是既懂方法又努力的,学的又快又好,但大家会...
        

    通过这段时间的看书学习和对编程的思考,结合自己的亲身的学习经历,今天想和大家聊一聊如何高效学习编程技术。

    我们可以把学习编程技术的人分为下面四种情况。

    第一种是既懂方法又努力的,学的又快又好,但大家会觉得这是他们有天赋,甚至称他们是天才,而并没有看到他们的方法和努力。

    第二种是不懂方法但努力了,这类人学的不快但愿意花时间学,不过由于学习编程技术所需的时间一般比较长,一些人没有坚持下去便放弃了,而一些人则坚持了下来,最后学的很好。

    第三种是知道方法但并不是一直都很努力,这类人学习的持续性比较差,一些技术学的比较好,而另外一些技术学的不好。

    第四种是既不懂方法又不肯努力的,这类人自然是学不好编程技术的。

    注意我这里说的只是对于学习编程技术的,并不代表编程学的不好的,学习其他事情也是这样,切莫以偏概全。比如在实际生活中,一个编程学的不好的,但唱歌唱的却特别好。

    我公众号读者,大都也是和编程专业有关的学生或者是已经工作了的前辈,群里也经常把那些技术比他们好的人称为大佬或大神,除了羡慕外,也能看到他们对于成为大佬的渴望。按照上面的情况划分,他们可能是属于第二种或第三种情况。一个人的努力是看自己,这个别人也教不了,所以我这里和大家聊的是学习编程技术的一些方法,这是对我学习编程技术的总结,这些方法可能并不一定对你有效,所以你大可作为一种参考。

    学习编程技术,最开始都是从某一门编程语言开始学起的,拿我来说,之前我也不知道学什么语言好,听别人说 Java 好,才学的 Java(现在看,觉得 Java 真的很好,至少现在来说,在企业级的项目开发中,Java 还是应用最广泛的)。所以往往我们对于一门语言并不知道他们能干什么的时候,或者说是他们的优势在哪,就急于开始学习了,很可能到最后才发现原来有更好的语言做这个,当时花了那么大力气,反而效果并不好。对于语言是这样,对于框架也是这样,就像我之前并不知道 Shiro 的优势是什么,自己手动写权限控制,最后发现还是框架好用(这里先不谈该不该自己造轮子的话题)。

    所以学习一门语言或者框架时,第一步并不是上来就扎进去学,而是应该站在”远处“,用客观的眼光去看待它,找出它的优点和缺点,看看是不是符合自己的需要。比如说,你要从事人工智能方面的研究,目前来说 Python 是最好的选择(这里先不谈 Python 的性能问题)。对于语言的认识,对于新手来说,并不简单。看网上的文章,肯定也是各执一词,因为没有哪一种语言是完美的,没有缺点的,知乎上的大牛还是比较多的,你可以去那里看看他们对该语言的评价,好的坏的都看看,相信你应该可以得出自己要不要学的结论。而对于框架,我觉得认识它的最好方法是去它的官网,看官方文档,因为这是最一手的资料。但这些资料往往是英文的,所以英语对我们学习技术是至关重要的(老实讲,现在我们用的编程技术 99% 是来自西方,我们还停留在全面模仿和学习西方的阶段),所以在很长一段时间,我们都要接受英文文档,同时提高自己的英文阅读能力。实际上,文档中框架介绍的英文并不多,少的也就几个关键字就把框架的特点概括了,学习过英语的人借助字典翻译都是可以看懂的,只是需要你耐着性子看下去罢了。

    上面便是学习编程技术的第一步——认识它,就算你现在用不上,了解一下也是挺好的。现在每个人都订阅了不少的微信公众号,群消息和朋友圈也被公众号文章充斥着。我也订阅了不下几十个的公众号,大多是编程技术方面的,也有一些投资理财的(个人对这些也比较感兴趣)。而我看的更多的是介绍技术或者某个知识点的背景,除非我对某个技术比较熟悉,不然很少看涉及很多具体细节的文章。我的看法是,公众号是一种碎片化学习的一种方式,一些作者的实践总结和经验之谈,一些优秀的文章还是值得一看的。但倘若只靠看公众号文章学习,知识是成不了体系的。所以一些公众号文章作为认识技术的一种方式,是个不错的选择,当然一些优秀的博客也可以。认识了技术之后,即使时是向别人介绍时,也可以说出来一些。你也可以试着介绍自己学过的一些技术,看自己能否清晰的说出来你对它的认识,或者只是知道一些技术细节,对整体的认识并不够。

    学习编程技术的第二阶段就是学着使用它,如果已经有书籍和视频可以帮你学习它,那么这两种方式肯定是比较好的。学习语言和一些常见的框架,基本上都是有视频和书籍的,视频可以在网上找些培训机构(这里也不谈培训结构好不好),只要对你有帮助的资源你就应该利用起来学习,我学习使用某项技术时,也是看了不少视频。如果某个框架没有相关的书籍和视频,那么只能找些文档和去官网学习了,对于前端框架(库)来说,这是很常见的。学习需要一个过程,没有基础,看视频是最好的方式。有了基础后,我觉得看书是更好的选择,也可以节省你的时间,我就是买了很多书,现在学习也基本都是看书来的。当然没基础的时候还是推荐看视频,虽然要花很长时间,但是后面你就会发现自己学习其他技术会越来越快。在这个阶段遇到问题,也是很正常的,在网上一般都是可以找到答案的,自己解决问题的能力也会慢慢锻炼出来。在一些社区也可以发你的问题,CSDN、知乎、Stack Overflow 都很不错。

    学习编程技术的第三个阶段是掌握(第二阶段和第三阶段的分界线其实并不是很明显),能够用这个技术做出一点东西来,就说明你逐渐掌握它了,比如你学完 Java Web,自己可以动手做出来一个简单的管理系统网站,这就可以了,并不需要考虑复杂的业务场景,这些在工作时会学到的。这个阶段更多的关注技术本身的细节,比如 Java 中的多线程编程有几种方式,最好自己动手写写笔记或者博客,这些都是很好的学习方式。学习框架,也可以看看官方文档,部分技术文档也有中文版的,毕竟写官方文档的人一般都是这个技术的开发者,他们肯定是最懂这个的。学习编程技术就像铸剑一样,需要经过反复的淬火,剑才能变得更加锋刃,学习也是需要不断地回顾和总结的过程,这样才能强化和巩固所学的知识。每个人的记忆力都是不一样的,根据自己的情况,时不时的复习非常非常有必要的。

    学习编程技术的第四个阶段是深入,对于语言,可以看看实现的源码(这里又要提到 Java 的好处了),在第二个阶段学着使用它时,肯定会有一些概念和知识点,比如在 Java 中,ArrayList 对象中的数组是可以动态扩容的,但是你是否知道在 Java 中具体是怎么实现自动扩容的呢?如果你回答不了这个问题,那只能说明你还需要进一步的学习 Java,大部分的 Java 源码你都可以直接反编译查看,这里推荐 Intellij IDEA IDE,查看 Java 源码非常的方便(但 Java 也有一些本地化的方法,和操作系统关系密切,并不是 Java 写的,不能直接查看),而 Eclipse 还需要手动导入源码,不是很方便。学习框架,这个阶段要关注框架的设计思想和实现,也需要看源码,一些热门的框架,找几本经典的书籍来看也是不错的。还是推荐国外的书籍,毕竟很多框架都是从国外传入国内的,国外优秀的书籍会比较多些,当然我们国内也有一些,但总体还是国外多些。如果没有相关的书籍,那么就只能去相关的技术社区和看源码了。如果是开源的技术,一般都会推管到 GitHub 上,可以去 GitHub 上看看,不懂的可以提个 Issue,甚至学到一定程度也可以贡献你的智慧,到这个阶段,不用我说,你都知道该怎么做了。

    如果身边有和自己学习同一种编程技术的,可以多多交流,肯定可以碰撞出思维火花的。没有的话,也可以加一些群,比如公众号的这个群(后台回复 ”交流群“ 获取加群方式),大家可以一起交流。或者看一些优秀作者的书籍,我读了杨冠宝大牛(孤尽,也就是《阿里巴巴Java开发手册》的作者,下面称之为杨老师)的《码出高效——Java开发手册》,当一些观点和作者不谋而合时,那种感觉非常爽。比如在谈到面向对象时,杨老师说可以从哲学的角度看 Object 类中的方法,我是谁(getClass 方法、toString 方法),从哪里来(Object 构造方法、clone 方法),到哪里去(finalize 方法),之前我也这样想过,但是没杨老师总结的好。有时,你也可以从书中发现一些错误和不恰当的地方,比如刘欣老师在《码农翻身》一书中,举 Maven 和 Ant 对比的例子时说这是 ”约定重于配置“,而 ”约定重于配置“ 是在对比注解和配置时才会说的,是明显地举例不当,但这些都是很正常的,每个人都难免会有出错的时候。有时候读书发现这些,也是很有趣的。在读吴军博士的《态度》一书时,他给二女儿讲为什么要读非小说类的名著时,说阅读不能只看一些期刊和杂志,即使严肃杂志上的文章质量非常高,但作者观点的前因后果由于篇幅都被省略掉了。零星的观点也是形不成知识体系的,而书的知识完整性是比较高的。所以在学习编程技术时,读书是很有必要的。但是也不要因为学习编程技术,而只看相关的书籍,这样你的视野会受限制,这点我这段时间才感受到,也是最近才开始看些编程无关的书籍,包括金融和经济学相关的。读这些看似与编程无关的书,能开阔人的眼界,增长人的见识,码农只是程序员的下限,优秀的程序员绝对不只会写程序。上面提到的的书籍,如果你感兴趣也可以看一看,相信你会从中受益的。

    考虑到这篇文章的受众,所以写的是比较基础的,我这段时间也在思考如何写好公众号文章。我算是比身边的人多学习了点东西,不能保证这篇文章就是很好的高效学习编程技术的方式。所以这里谈谈到的一些做法,未必对你来说就是有效的。这段时间看刘欣老师的《码农翻身》,很佩服他能够将一些技术由来和关键点融入到故事中,并且还能讲的那么有趣。如何写好文章也是我今后的学习方向,也欢迎你在后台留言,提出你的建议和观点。

    本文转自我的微信公众号《编程心路》。

    展开全文
  • 如何高效学习编程

    2020-05-07 14:38:48
    编程确实不是一件容易的事情,除了要...在技术领域打滚的这些年里,通过经历和经验总结出一些高效学习方式和方法,在这篇文章里与大家分享。让我们现在就在技术领域的学习之路上奔跑吧! 锁定目标,风雨兼程 在刚...

    编程确实不是一件容易的事情,除了要有较强的逻辑思维,还需要花大量的时间和集中力来提升或者维持一定的高度

    与其他的领域不一样的是,技术每日都在变,所以对于编程初学者是很难一直与时并进的。就算是技术大神和老司机们也是追赶的比较吃力的。在技术领域打滚的这些年里,通过经历和经验总结出一些高效的学习方式和方法,在这篇文章里与大家分享。让我们现在就在技术领域的学习之路上奔跑吧!

    锁定目标,风雨兼程

    在刚刚接触技术的时候,很多人都会比较迷茫。技术领域有前端后端并且各自有多种编程语言。选定前端后端后又发现越过一山还有一山高,面临更多的选择。甚至在技术领域打滚了多年后的技术人员也会迷茫,会开始质疑自己的前景,是否要换一门语言或者多学几门语言。所以锁定目标是高效学习的第一门课。


    选择目标

    如果你的目标是前端开发,前期的学习道路是比较明确的,HTML5+CSS3起步。但是如果你的目标是后端开发,还没有开始就已经有多扇门在你前面,让你瞬间选择困难了。所以这里我们就用后端语言选择作为一个例子讲解学习目标选择方法。

    陷入学习目标选择困难症是因为技术每日每夜都在变,方向和未来都在摇摆。但是我们首先要有一个对技术有很好的判定能力。

    大家应该很多时候都听过"JAVA才是世界上做好的语言","PHP才是世界上最好的语言"等等,这些在自己领域崇拜着自己所爱的语言技术爱好者。TA们并没有错,因为每个开发语言都在特定领域或者项目条件里是最好的语言。不过并没有世界上最好的语言,只有在某一个场景和条件下最适合使用的语言。每一种开发语言都有他擅长最合适的使用场景。

    • PHP - 更适合小型到中型网页端应用(大型应用就需要其他语言配合使)
    • JAVA - 更适合大型应用,企业级应用(中小型应用用JAVA就是大材小用,浪费资源)
    • PYTHON - 更适合用于爬虫,人工智能,脚本类应用

    目标寻找法

    所以在选择学习目标的时候,我们要有对技术的判定能力,不要轻易听取一些偏面的评价和定论而下决定。

    选择学习目标时重要的决定因素:

    • 在目前最实用的 - 学能用到的更容易上手,也更有价值
    • 难度跨度不要太高 - 难度跨越太大时间成本会越高
    • 感兴趣的 - 感兴趣才更能坚持,更有动力
    • 社区更大的 - 社区越大遇到问题时找答案的途径越多
    • 开源项目优先 - 开源的项目的技术更有未来

    🎯 一旦锁定一个目标就要能懂,能用,能变,再扩张你的学习领域到其他的技术。

    • 能懂  -  能懂的技术或者知识的理论和原理;
    • 能用  -  能把技术或者知识投入使用,投入实战项目;
    • 能变  -  能举一反三学到的技术或者知识,能变通,延伸拓展。

    不要蜻蜓点水

    这一点是很多初学者都会犯的错误。

    不要浅入浅出,得不到技能还失去了时间。

    学习要一步一个脚印,很多一开始学习编程往往会同时学习多个技术,其实这种学习方式不但没有效果反而还浪费时间浪费生命。锁定一个学习目标就要专注一个点上学习,重点学习。

    举个例子,如果你想成为一个Java开发工程师,你是不需要从C学起,然后C++,最后才开始学习Java。我看到很多开发者刚开始都是这样学习,其实根本不需要从底层技术开始学习。既然你的学习目标是Java,那就直奔重点不浪费时间。稳固了基础开发语言后,选择一个框架开始深入专业实战知识。当你稳固了更专业的实战知识后,就可以开始学习这个技术的周边工具(比如IDE)让开发更加高效便捷。

    📖 专研秘诀:

    • 学习每一个知识或者技术,一定要深入浅出,深入学习和挖掘,吸取重要知识和技术。
    • 专心,专注,专研是一个技术人才的基本素养!

    先专注于会用而不是能用

    很多开发者习惯性会过于专注于工具使用,写法,性能,可扩展性等等。初学者一般都会掉入工具使用和写法的坑,而资深的开发者会过于专注于性能和可扩展性。这时候往往会过度消耗学习时间,甚至忘记最初的学习目标。

    用一个简单易懂的例子,“一个机械工程师不会浪费时间想怎么更好的使用TA的扳手,而是怎么可以组装好一个机器的部件” - 很多人会想,学会用更好的工具不是可以更快地安装好吗?但是现实是,你都还没有弄懂怎么安装,再好再有效的工具对你来说都是无用武之地。所以还没有学会前行,就不要先想着怎么跑

    再举例,如果你是正在学习使用Vue框架,不要太过于执着怎么使用Vue的周边工具,高级写法,性能隐患问题等等。你的目标应该是创建你的第一个首页然后直接投入开发一个小项目小应用。这样你的产出才是最高的,因为这样做更加专注于学会怎么使用Vue来实现功能,而不是更好的使用Vue框架。

    在学习的时候要专注于会使用新的技术,而不是怎么用各种花式技巧来提高使用能力

    还有很多童鞋开始学一门技术时,会先开始看一大堆的知识和书籍,或者去看一些大型的项目用这个技术是怎么实现的。其实更有效的学习方式是小步快跑,学习的过程中开发一个小项目会让你更加有动力也更有趣。

    约定自己在限定时间内完成小目标,如能完成就给自己一点小奖励。例如,你对你自己说"如果我下周五完成这个功能,我就让自己去看个电影"。记住奖励不需要很大,小步快跑,小奖小利,这样才能维持发自内心的动力和驱动力。不过就算没有达成小目标也不用气馁,失败时成功之母,所有成功的人都是通过在失败中总结成长壮大。

    采用学习策略

    每一个人都会有一种最合适自己的学习方式方法,适合我的不一定对你就有效 - 所以找到一种对你有效的学习方法很重要。

    经历

    学习方式方法是通过你日复一日,年复一年不停地尝试和总结得来的一种技巧。我也尝试过很多种方式来学习技术,自从我开始进入技术行业到现在,我换了无数种学习方式才找到最适合自己的一种技巧。 在一开始刚刚入门的时候,我尝试看很多"从入门到精通",“XXX语言101"等等,最终的结果都是"从入门到放弃”。后面开始走视频学习之路,发现视频里面的老师说话好像是机器人一样,本来有点失眠症的,没想到一看视频秒睡着,被治好了!我以为我的技术生涯就要结束在这里了~ ¯_(⊙︿⊙)_/¯

    建立策略

    前方无绝路 · 希望在转角 ~ 我迅速改变了策略,学习技术和其他领域不一样除了看书,撸视频还需要动手去敲代码。学习任何一门技术,可以遵循以下学习策略,可以让学习的技术和知识更加稳固。

    📖 学习策略: 还是遵循我们之前说到的规则,能懂,能用,能变。

    1. 深入了解技术的原理 -  了解清楚才能更好的在不同场景下运用自如(可以通过看书,看文档)
    2. 通过代码理解运用方式  - 看懂基本原理,就可以看看别人是怎么在项目中使用的(在github找开源项目,看教学视屏等等)
    3. 实战,做一个小项目 -  能懂,能会了就要能用,用新学的技术实现一个功能,做一个小项目,把知识投入实战。
    4. 发挥你的想象力  -  能用后如果想进阶更高层次,就要发挥你的想象力,能举一反三,在你的小项目里面加功能。

    其实上面的策略无非就是学习的过程中必须有的理论,运用和变通。这三个学习维度要保持一个良好的平衡。这个平衡是非常重要的,只有理论那就是"纸上谈兵",只有理论和运用那只是个"代码搬运工",如果三个维度你都才是就是"大师"。

    当然所说的平衡不是说1:1:1,完全平衡是很难的。对于一个初学者的话可以先3:2:1,中级就可以开始维持2:3:1,到了高级就可以维持2:2:2了。(比例指的是 - 理论:运用:变通)

    时间管理,提高效率

    番茄工作法估计很多人都听说过,但是真正用上可能就很少了,能坚持使用的就更少了。

    很多时候在学习中,或者工作中,我们都是被时间追着跑,这里看一下哪里看一下,不经意就已经过了几个小时,一天就过去了。其实真正有效的产出不大,那是因为你没有合理的管理时间。用番茄工作法就是可以让我们可以追着时间跑,让自己时刻有着时间感,急迫感。 自然时间运用上就更加有效了。我现在工作中和学习中都已经在使用番茄工作法,有效管理时间效率。突然发现使用了之后,每个小时我的工作效率提高了很多。

    使用方式其实很简单,把学习或者工作时间拆分为25分钟一个小阶段,每25分钟休息5分钟,每4次小阶段休息15到20分钟。

    使用这个时间管理法后,你会觉得在25分钟的小阶段里面,你的时间很紧迫的,每一分钟你都觉得很宝贵。你会发现你没有时间去浪费,自然而然的在25分钟内提高了效率。无形中你的学习和工作的集中力就会提升。除了提高了你的效率以外,你会发现一天几个小时的学习或者工作都不觉得很疲惫。因为在25分钟的高度集中后,你合理的调整了休息,让自己非常平衡的控制好疲惫度。所以你会发现一天里面的学习和工作都变得轻松了。

    用番茄工作法提高了学习效率和疲惫度,自然你的学习成果就会更高。如果你觉得我说的这个方法太虚幻了,不妨试一下体验一下,实战说明一切!

    多思考,多教学

    通常我们学习都用的是吸🌟大法 🌟ԅ( ͒ ۝ ͒ ),然后实战运用,其实还有很多细节和理论我们并没有理解透测。所以运用就不够自由,无法延伸一些创新的用法,或者举一反三。

    在我事业发展的过程中,从一个小开发,做到一个小组长,到现在技术总监。在我开始带领一个小组,到带领整个技术团队;很多问题和新知识都要通过讲解或者教学来带培养你的组员和队员。这个过程中会遇到各种不同思维程度和学习能力的人,每一个人的理解能力或者理解方式都不一样,甚至看待每一件事情或者知识的角度都不一。你会发现你教学或者讲解某一个知识的时候需要使用各种不同的方式和方法。往往就是这样触发了你自己去换角度思考和理解这个知识,而启发了你自己对这个知识新的认知。

    通过教学和讲解来把你的知识传承给另外一个人,需要重新整理思路,逻辑,切换N种方式和说法。这个过程中你会挖掘出新的知识,新的观点,新的思维方式,新的理解角度和深度。这就是自我思维切换而达到的知识深度挖掘和提升的过程。这种就是我们经常说的小黄鸭教学法。

    不知道大家有没有听说过,当你思路不清晰,或者有问题无法解决的时候。你可以找一只小黄鸭,你就开始讲解你的思路,逻辑或者问题。这个过程中你开始重新整理自己的思路。如果你把一只啥都不懂的小黄鸭也能让它听懂。那这个时候你的思路,逻辑,理解都更加清晰了,问题起码都解决了50%以上了。我给这个方法取了个名字叫小黄鸭教学法!初级学习的时候要用吸星大法,进阶到高级的时候就要用小黄鸭教学法。能教会一只小黄鸭技术,你就是大神了!

    记录,总结

    除非你是过目不忘,要不看完一本书能记下所有是不可能的。就算记住了但是不可能完全明白透彻。一个程序员经常面对着反复又反复的任务,记录学习进度和总结学习知识很重要。往往你学到一个知识的时候,你会使用这个知识投入实战中。你沉迷在代码海洋之中无法自拔之后,你会发现你已经不记得你入海前学到哪里了。所以记录学习进度很重要。

    记录学习方式:

    • 把学习后的知识写成文档
    • 把知识写成博客
    • 总结重点,记录重点
    • 编写学习规划,就是所谓的todo规划表

    在学习中,如果要把知识记录,当你要使用它的时候能快速找到。那你就要有总结知识的习惯。把你学过的知识,技术,技巧都写成文档,写成总结。这样加强你的印象,同时也整理出了属于你自己的开发手册。当你遇到了某些问题的时候就可以通过你自己的开发手册找到答案。

    改掉以下习惯

    • 完美主义: 初学者经常会陷入的一个坑,从一开始就追求完美,完美的写法,完美的实现方式,完美的设计模式。其实有时候这些都不是最重要的,反而导致有延迟和延后的严重情况,导致进度一直无法推进。最求完美往往把简单事情变得复杂。不要总是为了完美而无限徘徊,为了最好的解决办法而纠结,为了对的方式而浪费时间。往往在开发中,时间是有限的,需求是无限的,连完成都无法保证,就更没有时间追求完美。
    • 对比心态:很多行业内的新人或者准备入行的,都会去和行业内顶尖的人做对比。有一句很火的话"没有对比就没有伤害",很多人用来对比好与坏,美与丑。其实另外层意思就是如果对比会对你自身造成打击又何必常常带着对比之心来对待自己和事情呢?对比不一定会有伤害,但是对比的心态才是真正造成伤害的源头。应该先认可自己的优点,接受自己的缺点,然后去找到别人的优点,发现别人的缺点。在别人的优点和缺点给自己带来成长。吸收别人优点,避免自己养成了同等的缺点。优秀的人不是天生比你优秀,而是TA们更懂的不自我透支,更懂得养成在无形之中让自己成长的习惯。
    • 复杂化:学会把复杂的问题和事情拆分成多个小问题小事情。复杂的问题和事情就会变得更加简单。因为问题和事情往往有多个点需要突破,把每个点拆开逐个突破就会更加简单轻松。从简到繁,如果太复杂,就拆开一个一个更简单的小点,逐个突破。
    • 过度透支:学习累了就躺穿上休息,吃饱喝足了就坚决不吃了。养好一种自律的习惯,不过度透支自己的时间和生命,这样才能有更好的精神和态度面对问题和困难。近年来有很多给程序员打上的标签,“加班狗”,“无日无夜写代码”,“生活邋遢”,"衣服全是同款黑色"等等。确实,做为一个程序员,我们花了大部分时间都在想问题,编写者神乎奇幻代码和程序。但是我们都往往忘记了自己的身体已经在一点一点透支。到了那一天你停下来了,你会发现,身体不行了,除了写代码其他个方面的能力都没有时间去提升。也没有劲学习成长了,整个人好像很颓废,生无可恋一样。所以学会不透支自己,才有更好的状态和精力学习和突破自己。

    总结

    无论你是在学习技术还是在学习任何其他领域的知识。在学习这条路上都会有坑坑洼洼,各种颠簸。所以我们学习要有技巧,要有方法才能在有效时间内收获最大化!

    学习法门:

    1. 锁定目标 - 选择有用的,对你现在阶段有价值的目标
    2. 采用学习策略 - 深入学习,投入实战,总结经验
    3. 管理好时间 - 把控好时间,提高效率
    4. 多思考,多总结 - 多思考问题,多总结和记录知识
    5. 改掉不好的习惯和心态 - 有好的习惯才能更轻松的学习和成长

    一个人一生是有学不完的知识和技能,然而人一生的时间是有限的。所以要把我们的时间和收益最大化才能比同年龄的人跑的更快,学的更多,能力更强!大家一起在学习的道路上继续加油吧!

    更多文章推荐阅读:

    2020年Web前端开发工程师市场怎么样?学会什么技术才能拿到高薪

    一线城市,前端工程师最低工资2K-3K,最高20K-30K 你怎么看?

    分享七年职业生涯心得,认清自己是否真的适合转行前端开发工程师

    前端的工作越来越难找,到底是不是前端领域已经饱和了?

    全国程序员平均工资18153:凭啥前端工程师年薪能拿到30W?

    展开全文
  • 这几天有很多小伙伴私信问我:老鬼呀,我最近开始学习编程,但是感觉自己的学习效率特别的低,你是怎么学习编程的呢,有什么好的学习方法,如何高效学习编程学习编程有什么方法论吗? 我回顾了一下自己从学习...

    这几天有很多小伙伴私信问我:老鬼呀,我最近开始学习编程,但是感觉自己的学习效率特别的低,你是怎么学习编程的呢,有什么好的学习方法,如何高效的学习编程,学习编程有什么方法论吗?

    我回顾了一下自己从学习编程到一直工作了十年的开发经历,也查了一些资料,总结出了在学习Java能够帮助你的一些提高学习效率的一些方法和一些你可能会遇到的问题。

    一,你为什么要学习编程?

    首先你要明确知道你学习编程的目的是什么,问问自己为什么要学习编程。我总结了一下,大概有以下4个原因,第一是编程对你只是一个兴趣和爱好,你想开发一些有趣的东西,通过编写一些小工具来帮助自己提升一些工作上的效率。第二是你有一个很棒的idea,你想自己开发app,或者说是开发一个网站。第三是你是计算机相关专业的学生,为了以后方便找工作,想去进大厂,想拿高薪的工资。第四个是你想转行进入互联网行业,成为一个程序员。

    那么目的不同呢,你的学习目标也就不一样,对于编程的掌握程度也就不一样,比如说你把编程作为爱好的话,那你可能就不要需去了解那么多的计算机理论知识,和一些复杂的概念。你更关心的是如何用代码来帮助自己实现自己的想法。那如果你把编程作为职业的话,那要求就不一样了,所以首先你要确定你自己的目标,然后坚定的向自己的目标去前进。

    如果你想要学习Java的话,我给你分享一些Java的学习资料,你不用浪费时间到处搜了,从Java入门到精通的资料我都给你整理好了,这些资料都是我做Java这几年整理的Java最新学习路线,Java笔试题,Java面试题,Java零基础到精通视频课程,Java开发工具,Java练手项目,Java电子书,Java学习笔记,PDF文档教程,Java程序员面经,Java求职简历模板等,这些资料对你接下来学习Java一定会带来非常大的帮助,每个Java初学者都必备,请你进我的Java技术qq交流群自行下载,所有资料都在群文件里,进去要跟大家多交流学习哦。

    二,选择适合你的编程方向

    学习编程有很多方向可以选择,比如前端开发,后端开发,客户端开发,运维,算法工程师等等。在学习编程的初期,建议你先去了解每一个方向具体做的事情以及之后的发展前景,最好选择你自己最感兴趣的一个方向,然后根据你喜欢的方向再去专攻学习相关的编程语言。毕竟对于大大多数人来说,编程可能并不是你对一个兴趣爱好,有可能只是为了就业,为了更高薪资的工作才选择这个行业,既然你已经走上了这条路,那就尽量选一个能让你自己喜欢的一个方向,毕竟之后你想再更换方向还是比较麻烦的。

    三,编程学习路上的挫折

    很多人在学习编程的过程中遇到挫折就想着放弃,然后否定自己,说自己是不是很笨啊,学习能力不行啊等等。怎么说呢?我觉得这些是你一定会经历的,但是只要熬过去了,你就会有撕裂般的成长。学习编程可以说在一开始你会遇到一个很大的挫折,因为除了编程语言你会在短时间内接触到很多你陌生的东西,各种编程语言,各种开发工具,还有稀奇古怪的开发环境。所以经常有人抱怨说什么破环境,我搭 了一两天还没有搭好。

    但有意思的是这可能是你在前期在学编程过程中会遇到的最大的一个坎,画个图给大家展示一下,编程学习随着学习的时长不断的增加后的一个难易曲线的变化,刚开始学习不久你会遇到一个山峰,这个山峰就是来自于你对陌生的编程语言的不熟悉和各个恶心的开发环境的搭建和工具的使用。但是说句不好听的,如果你连这种小山峰都翻不过去的话,编程也许真的不太适合你,所以,加油啊!这个小山峰不算什么,因为后面还会有更多的山峰等着你呢。
    说实话学习的确是一个很痛苦的过程,但是如果能把编程变成一个有趣的事情,那就会好很多。举一个例子,我之前喜欢游泳,为了快速学会游泳,我经常会花很多时间去水里练习,不断的练习技巧,然后不断的失败,不断的练习,到晚上自己的体力都已经不行了,但是还是想继续学。但后面我慢慢掌握了游泳技巧之后,那种感觉真的是太美妙了,很快九学会了,成就感爆棚。所以你可以想办法让编程成为你的兴趣,这样学习起来就会很有动力,更容易成功。

    四,寻找适合你的学习方式

    我们做一个小测试,假如你自己去商场买一个需要自己组装的沙发,沙发送到家之后你会选择哪一种方式去组装沙发呢?

    方式一,可以自己看手册,按照手册来一步一步的安装,手册中有很多细节,自己要像办法解决。

    方式二,在网上找安装教学视频,按照视频来一步一步安装。

    方式三,找一个装过沙发的朋友,让他过来帮助你一起来安装沙发。

    方式四,你通过观察这些沙发的零部件,然后根据自己的空间想象力和逻辑思维来完成沙发的一个安装。

    我们来看一下测试的结果

    选择第一种方式的话你适合通过看编程书籍来学习,你的自学能力很强,看书比你看视频有一个更高的效率。

    选二的话我觉得你适合看视频教程,跟着教学视频边看边敲代码。

    选三的话我觉得你适合去找一个有经验的老师,或者是抱一个培训班来辅导你去学习编程。

    选四的话你觉得你的学习能力很强,你可以随便选择一种学习方式。

    但是无论你选择哪一种学习方式,最重要的是要去动手练习,千万不要拿一本书一直埋头看,你又不是在看小说。也千万不要拿着视频教程当电视剧看,一边看一边吃零食。学习编程要多动手,多写,多去理解练习。

    五,艾宾浩斯编程法

    学习过程中有一个特别恐怖的现象,就是看书看视频能敲出代码,把书和视频拿走大脑就一片空白,这个现象我称为“无教程大脑空白症”。这个症状表现就是当你打开代码编辑器之后,开始出现短暂的失忆,发呆一段时间之后写一段代码,然后点击回退删除,然后又重新写一段代码然后又删除,反复几次之后,患者会迅速关掉编辑器,关掉电脑然后蹲在墙角陷入自我怀疑。

    有一种方法可帮助治疗这个症状,这个方法叫“艾宾浩斯编程法”。艾宾浩斯遗忘曲线大家应该都知道。我们可以把这个和编程学习结合在一起,当你跟着教程敲一遍代码之后,你应该趁热打铁,把刚才写的代码都删掉,或者再新建一个文件,在不看视频的情况下把刚才的功能重新写一遍,尽量不要去看教程,但是在某个点上完全不知道怎么写的时候再去看教程,然后给自己一点提示。然后第二天把昨天的代码全部删除掉,然后再重新写一遍,依然是当你完全不知道真没写的时候才去看教程,然后第四天再来一遍,这样就基本差不多了。
    那如果你还有很多地方不会写的话,那你就多重复几遍,通过不断的复习编程知识,不断的去加强自己的一个印象,后面你会写得越来越快。虽然前期可能会耽搁很多时间,但是后面你会发现你写代码的速度会越来越快,准确率也会越来越高。

    如果你想要学习Java的话,我给你分享一些Java的学习资料,你不用浪费时间到处搜了,从Java入门到精通的资料我都给你整理好了,这些资料都是我做Java这几年整理的Java最新学习路线,Java笔试题,Java面试题,Java零基础到精通视频课程,Java开发工具,Java练手项目,Java电子书,Java学习笔记,PDF文档教程,Java程序员面经,Java求职简历模板等,这些资料对你接下来学习Java一定会带来非常大的帮助,每个Java初学者都必备,请你进我的Java技术qq交流群自行下载,所有资料都在群文件里,进去要跟大家多交流学习哦。

    六,阶段性地完成一个小作品

    学习的大忌就是学完不用,编程不是理论知识,只有你实际去使用它了才是真正的学会了。在你学习了一定的编程技术之后,你可以试着去做一个小作品,或着是你自己可以想到的一个功能可以去模仿。比如说你学Java开发,你在学完Javase后,你可以试着去写一个学生管理系统来练习,你要注意的是你练习的这些东西要能够练习你现在学会的知识,并且你可以把你的作品提交到Github上,这样之后你在找工作或者是找实习的时候都会有一定的帮助。

    七,让编程成为习惯

    一段时间的不学习不写代码可能会导致你忘记之前很多的知识点,对工作很多年的程序员来说,一个星期不写代码,然后突然写代码也会感到手生。所以对于新手来说一定要养成编程的习惯,据说养成一个习惯需要21天,这个21天我觉得不太靠谱,四舍五入算30天,每天坚持写代码,能成为一个习惯。你可以试着每天去LeetCode上刷一到两道题,这样不仅能培养你的编程习惯也能提升你的编程能力,而且对你之后找工作,面试都有很大的帮助。

    八,遇到问题首先自己解决

    作为小白,在你初学编程的时候一定会遇到很多问题,这个时候不要第一时间去找人寻求帮助,首先你给自己一个机会再尝试一遍,看看能不能解决问题,如果不能解决问题的话想想之前看过的书或者教学视频里面有没有提到相关的知识点,如果没有的话,那去百度或者谷歌。一个好的程序员基本上非常会使用着两个浏览器,如何快速找到自己解决问题的方案也是一个很重要的能力。当你找到答案时,不要直接把答案复制粘贴到你对编程器或者控制台,对初学者来说,千万不要做cv工程师(copy&paste),对我们这些老油条来说,我们一向的主张就是能c尽量c,但是对于小白来说,你直接复制过来你就不会深入的去理解你拷贝的答案,下次再出现的时候,大概率你还是不知道怎么去解决。

    九,讲给你的duck听

    这个也是一个十分重要的方法,学习一定是个输入和输出相配合的过程,你才能学得扎实。你自己认为你学会了,那如果让你对着你的小鸭子去说出来,什么是面向对象,什么是多线程,可能你说不出来或者表达不是很清楚,所以这是一个很好的自我检测的方式。

    十,找个导师或者一起学习的伙伴

    学习的确是满孤独的,很多人坚持不下去也是因为这个原因,所以的话尽量找个导师来辅导你许学习,或者是找一些能够一起学习的小伙伴。

    好了,说了这么多其实最高效的学习编程的方式只有一个,那就是学它,学它,学它。重复使用它,重复使用它,重复使用它。

     

    最后


    如果你想要学习Java的话,我给你分享一些Java的学习资料,你不用浪费时间到处搜了,从Java入门到精通的资料我都给你整理好了,这些资料都是我做Java这几年整理的Java最新学习路线,Java笔试题,Java面试题,Java零基础到精通视频课程,Java开发工具,Java练手项目,Java电子书,Java学习笔记,PDF文档教程,Java程序员面经,Java求职简历模板等,这些资料对你接下来学习Java一定会带来非常大的帮助,每个Java初学者都必备,请你进我的Java技术qq交流群自行下载,所有资料都在群文件里,进去要跟大家多交流学习哦。

     

    展开全文
  • 编程确实不是一件容易的事情,除了...在技术领域打滚的这些年里,通过经历和经验总结出一些高效学习方式和方法,在这篇文章里与大家分享。让我们现在就在技术领域的学习之路上奔跑吧! 文章目录 锁定目标,风雨兼...
  • 高效学习编程的办法

    2014-01-14 13:03:00
    一 任务驱动方式学习软件开发 大部分人学习软件开发技术是通过看书,看视频,听老师上课的方式。这些方式有一个共同点即按知识点进行讲解。比如拿c#编程为例,首先是讲解大量的基础概念,如类和对象,继承多态,...
  • 做实验,学编程 https://www.shiyanlou.com/ 如何高效学习呢? 最快的方法就是图文教程,再就是动手实践了。 最近发现了实验楼这个平台,非常喜欢。感兴趣的同学,不妨也试试呗! 我的邀请码: 9252ALU ...
  • 不同的知识,应该有不同的学习策略,你想知道嘛?
  • 高效学习-编程

    千次阅读 2017-09-05 22:16:27
    软件编程一日千里,知识更新日新月异;在繁忙工作之余,快速接触新知识,不落后于人,显得尤为艰难与可贵。编程和读书一样,需要一套有效、高效学习方法。
  • 如何高效学习编程技术 话说每天都有新的编程技术在诞生,作为一名程序员真是倍感焦虑。 如何才能快速学习新的技术,在公司成为佼佼者呢?下面我们来谈一谈: 第一步:快速阅读官方Api 你需要用1-2天的...
  • 如何高效学习Java编程?学习Java开发的人有哪些,Java适合哪类人群学习?提到Java这个名词时,大多数人脑袋中都会浮现出三个字:“程序猿”,从事互联网行业的人群则会浮现出“码农”的字眼。只要是接触过计算机,就...
  • 如何深入和高效学习编程语言

    千次阅读 2017-09-22 00:28:33
    如何深入和高效学习编程语言
  • 学习任何一门IT编程语言,都是为了去实现一个个项目,来解决实际的问题。无论项目是大还是小,都关联着许多知识与技能。例如要用Java写一个「文件资源管理器」的桌面应用,就需要MVC设计模式、组件化构建、对象集合...
  • 又去翻了翻《深入浅出MySQL》,对比之后者,《MySQL高效编程》真的是讲的比较浅而简,很多地方都直接略过去或者没有讲,尤其是索引和事务那一章,所以本书只适合入门者翻翻,要深入学习还是推荐《MySQL高效编程》和...
  • 如何高效学习编程语言?

    千次阅读 2019-03-11 16:25:08
    学习编程语言是一种技巧:做好了,你会感受到掌握新事物之后的快感;做不好,就会接二连三的沮丧,甚至放弃。下面我将介绍一些技巧与方法,以便帮助大家高效地学习。 持续测试自己以抵抗胜任力错觉 最不济的学习...
  • 这是Clojure好书《Clojure for the Brave and True》作者 Daniel ...学习编程语言是一种技巧:做好了,你会感受到掌握新事物之后的快感(dopamine:多巴胺);做不好,就会接二连三的沮丧,甚至放弃。下面这些学习...
  • 本文将会提供快速高效学习 Java 编程的 50 多个网站资源: 开始探索吧: 1、MKyong:许多开发者在这里可以找到带文字说明和图解的示例代码。这是一个探索各种框架的平台。不管是否用于商业使用,你都可以从这里...
  • 快速高效学习Java编程在线资源Top 20
  • 为什么学习 Vim 通过模式,Vim 赋予了同一个按键多种功能,大大提高了按键的功效,可以让我们释放鼠标和主键盘到方向键的切换,从而让我们双手集中在键盘中央区域,提高效率。 学习 Vim 就是为了显著提升编码效率,...
  • Java作为一种常见的计算机编程语言,它具有简单、稳定、多线程等特点,被广泛运用于PC、游戏控制台、数据中心、超级计算机以及...用MindMaster思维导图学习Java编程为什么要用思维导图学习Java编程呢?首先思维导图...
  • Java作为一种常见的计算机编程语言,它具有简单、稳定、多线程等特点,被广泛运用于PC、游戏控制台、数据中心、超级计算机以及...用MindMaster思维导图学习Java编程为什么要用思维导图学习Java编程呢?首先思维导图...
  • Java作为一种常见的计算机编程语言,它具有简单、稳定、多...下面是分享的用思维导图学习Java编程方法介绍,一起看看吧!  为什么要用思维导图学习Java呢?  首先思维导图是一种结构性模型,有利于整合知识框架,...
  • java编程这个方向一直是想从事IT行业的同学们重点关注的,进入Java编程这个行业的同学来讲,知了堂给大家介绍一下高效学习Java的十个小计划 第①个学习小计划 透彻理解面向对象只有理解了面向对象才能感知Java编程...
  • 原标题:Java编程如何保持高效学习很多小伙伴都在问小编学习Java编程有没有什么快速高效学习方法?对于有兴趣想学Java编程的小伙伴比较在意学习方法,想要找到快速高效学习,早日学成就业,今天小编就分享一些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,517
精华内容 2,206
关键字:

高效学习编程