精华内容
下载资源
问答
  • 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. 改掉不好的习惯和心态 - 有好的习惯才能更轻松的学习和成长

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

    推荐阅读


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


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

    和你一起终身学习

    展开全文
  • 今天来给大家谈一谈如何高效地学习编程。 无论什么时候,找到学习的目标,以及学习的套路都非常的重要。找不到的话,就只能事倍功半,付出了很多努力,却迟迟得不到最好的回报。 三四年前,我特别喜欢收藏文章,觉得...

    今天来给大家谈一谈如何高效地学习编程。

    无论什么时候,找到学习的目标,以及学习的套路都非常的重要。找不到的话,就只能事倍功半,付出了很多努力,却迟迟得不到最好的回报。

    三四年前,我特别喜欢收藏文章,觉得有些技术文写得真好,忍不住收藏了!等过了一段时间后,闲得无聊,就去翻收藏夹,想着学一波,谁知道竟然找不到——不是微信给我删了,而是收藏夹里躺的“尸体”实在是太多了,根本就找不到。

    后来,我就总结了一个小窍门——每周收藏夹里最多躺五篇文章,如果想进来第六篇,之前的必须得清一篇。别小看这个小窍门,它真的有督促我去学习,去消化。

    有句话说得好,学习的时候一定要把自己当成一台计算机,既有输入,也要有输出。只输入不输出会堵塞,只输入不输出会枯竭。

    我在网上看到有大佬列出 Java 工程师应该掌握的知识点,分了 5 个梯度,我觉得蛮有道理的。

    第一梯度:操作系统、计算机组成原理、计算机网络、数据结构、算法。这个我之前已经强调很多次了,也列了对应的学习资料。比如说《深入理解计算机系统》这本黑皮书是要必读的,不管什么时候读。

    这第一梯度的知识还是挺庞大的,需要花很多时间去消化。科班的比较适合一上来就啃,啃不动的可以放到后面再去补,反正是不要绕过去。

    第二梯度:Java 基础、JVM 内存模型和 GC 算法、JVM 性能调优、JDK 工具、设计模式

    Java 基础方面我写过《教妹学Java》,这部分内容目前处于断更的阶段,我在想后面的内容怎么继续下去,在“沉默王二”这个号上写感觉有点不太适合了,因为之前的反响一般;打算后面用我妹的那个号“程序员宝宝”来写,然后这个号次条转载一波。

    除了《教妹学Java》,我推荐过另外一个 GitHub 上标星 115k+ 的 Java 教程,我自己从 GitHub 上下载到本地整理了一份 PDF,我看百度网盘下载的次数接近 1 万次,还是挺受欢迎的。

    Java 基础里面有一块内容,就是并发编程,需要花大力气。我之前也推荐过这方面的资料,几个阿里的朋友写的,叫《深入浅出 Java 多线程》。

    至于 JVM,一本书搞定,就是周志明老师的那本《深入理解 Java 虚拟机》,不过这书和《深入理解计算机系统》差不多,都挺难吃透的,需要花时间去读,前后持续的时间会比较久。

    然后是设计模式,这块需要通过大量的实战经验才能有所感悟,设计模式玩得炉火纯青,写出的代码就更优雅,阅读起来也会更加舒服,可维护性、可扩展性就更强。推荐好朋友小傅哥重写的 Java 设计模式,全网下载次数应该有 3 万多次了。

    第三梯度:Spring 系列、MyBatis、Dubbo 等主流框架

    Spring 系列的话,我之前推荐过松哥的视频,在 B 站上有,大家可以去搜一下“江南一点雨”,质量我觉得还是挺不错的。听松哥说,今年还会录一些新的视频。

    至于 Spring Boot 和 Spring Cloud,木得说,大家直接搜“纯洁的微笑”,看他的博客就行了。虽然微笑哥现在不怎么写这方面的教程了,但它之前写的就足够用来学习了。

    MyBatis 其实很简单,学起来不复杂,就是怎么在 XML 文件里写 SQL 的事,不难,直接看官网就行。

    Dubbo 是阿里巴巴公司开源的一个高性能服务框架,使得应用可通过 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。学习 Dubbo 的话,也推荐直接看官方文档。

    第四梯度:MySQL、Redis、RabbitMQ/RocketMQ/Kafka、ZooKeeper 等数据库或者中间件

    MySQL 的话,推荐先看《SQL 必知必会》,再看《MySQL 必知必会》,然后是《高性能 MySQL》。

    Redis 的话,推荐看老钱的《Redis 深度历险:核心原理与应用实践》,在业界的评价还是蛮高的。

    Kafka 和 RabbitMQ 是两款比较主流的消息中间件,具备消息传递的基本功能,但在一些特殊的功能方面存在差异,RocketMQ 在阿里集团内部有大量的应用场景。这部分的学习可以直接看官方文档,然后通过实战项目提升自己对这些消息中间件的应用功底。

    Zookeeper 是一个分布式的、开源的程序协调服务,可以到菜鸟教程上学习。

    第五梯度:CAP 理论、BASE 理论、Paxos 和 Raft 算法

    一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项——CAP 理论。

    BASE 理论是对 CAP 理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。

    Paxos 算法是一种基于消息传递且具有高度容错特性的共识算法。

    Raft 算法是一种用于替代 Paxos 的共识算法,安全性更高,并能提供一些额外的特性。

    这些都是一些比较难以理解的知识点,需要通过大量的实战经验(海量数据的前提下)才能很好的掌握,属于中级、高级程序员应该掌握的内容。

    大家在学习编程的时候,一定要形成自己的知识体系,建议大家通过思维导图来梳理知识点。比如说并发编程这块的知识点如下图所示。

    最后,提几点建议吧。

    • 试着去造个轮子。虽然我们常说,不要重复造轮子,为了开发效率,可以不造轮子,但必须得具备造轮子的能力。
    • 多做技术分享。可以是写博客这种面向大众的,也可以是团队的内部分享,新人培训等。
    • 重视英语。学好英语可能和掌握编程语言一样重要,如果英语足够好,可以直接阅读一手的英语资料,接收知识的时间可能就比其他人早了不少。
    • 及时温习。网上说,人在一天后的记忆量只有 30%,所以我们上学的阶段各种考试,月考,周考,其实就是用来加强记忆的,很多题都是做过的,换汤不换药。

    加油~

    最后载送大家一本美团大佬手撕的 300 道 LeetCode 刷题笔记,纯 Java 版,对于算法薄弱或者需要提高的同学都十分受用(提起码:xs23):

    https://pan.baidu.com/s/1xe3r8qDuKE99p2ZD9w2XrQ

    我是沉默王二,我们下期见。

    展开全文
  • 我是如何学习编程

    万次阅读 多人点赞 2019-04-15 22:58:25
    我是如何学习编程


    • 微信扫码关注公众号 :前端前端大前端,追求更精致的阅读体验 ,一起来学习啊
    • 关注后发送关键资料,免费获取一整套前端系统学习资料和老男孩python系列课程
      在这里插入图片描述

    前世因

    不管你信不信,反正我自己是信了,学习对我而言是一件用来消磨时间的事,仅此而已。

    • 大一刚来的时候,听别人说学习二字,更多的是一个玩笑,什么不学习就不能做朋友之类的话,听到现在大三,不学习依旧是不学习,说到底,学习这件事真的是因人而异的。

    • 我自认为性格不算孤僻,最多是喜欢独处而已。爱好不多不少,喜欢听歌,写东西,古风,跑步,日语,汲取新的东西。未必是专业上的,新闻也可以。

    • 都说兴趣是最好的老师,这话我觉得没毛病,但我更倾向另一句话,兴趣是可以后天培养的。就像,我对编程的热爱,对代码的诉求。

    • 说来你可能会有些意外,甚至我自己也觉得意外,大一对编程恶心到极点,现在竟然成了自认为极其重要的东西。

    • 凡事有因,必定有果。说来惭愧,从高中到大学,上来就干编程,又没什么编程基础的我,对入门的编程语言C恶心到冒泡泡,所以上完第一堂课心里已经放弃编程了,觉得自己可能不适合软件工程这个行业。

    • 所以,大一整个学期,我基本都耗在了日语上,我热爱的日语啊,真正让我领会到了什么是学习能力的培养,什么是独立学习。

    • 学东西,学的本质不是知识本身,而是学习过程中对能力的培养。如果你只为了学而学,没有自己的独立分析和见解,只是照猫画虎,意义不大。

    • 自认为我的学习能力是在一年多的日语学习中培养出来的,这也为我后来学习第二门编程语言java打下了良好基础(说来惭愧,我现在c依然不好。)

    今世果

    一直到现在,我也并不觉得自己编程水平有多高,学无止境。当你进入到一个新的层次,你会发现你自认为的高大,渺小而又卑微,只有无知者才会觉得自己什么都会,单凭helloworld就敢一刀闯江湖。和大一入学,对编程一无所知的自己相比,我觉得还是成长了不少的。

    • 学东西需要受点刺激,信否?

    • 嗯,我是信的,初学java一学期,其实毛毛也没学会,问题多是在自己身上。当时依然处于恶心编程的阶段,看到代码就烦。

    • 就这样,一学期结束了,老师要求做一个管家婆的项目,然后要答辩,打分,一个个过。是的,当时咱就慌了,当然,也仅仅是慌了一瞬间。闭眼,回想当初的c语言答辩,深呼吸之后,分分钟有了底气。

    • 咱当初c语言毛毛都不会,临近答辩一天预习了一本书,最后答辩过了。这点和学数据结构基本一样,一天预习一本书,没错,就是预习。当然,不推荐这样,后遗症明显,瞬时记忆理解不是特别深,容易忘了。

    • 你可能会好奇,我是怎么做到的?这里举一个关于seo的例子来说明。补充下,这东西全称是搜索引擎优化,有兴趣的可以查查。一个网站离开seo能不能跑??能,当然可以,丝毫没问题,不影响你查阅。但是为什么很多网站,或者说几乎所有网站都要考虑seo呢?很简单,提升搜索引擎排名,扩大知名度,提高商业价值。

    • 说白了,就是学习能力的培养。这是一个日积月累的过程,是真的可以创造价值的,不会一天两天见效,速成的那些在我看来等同于商业竞价,拿钱看效果。

    • 日语学习过程中就培养了我的这种学习能力,早读,预习,分析,复习和长久的坚持。这种方式已经成了一种习惯,大一六点左右起床去日语早读,虽然现在大三了,不再去日语早读,但还是会这个点左右醒,起来敲敲代码。

    • 所以,java项目答辩前夕,我把项目需求文档和整体设计思路,基本的业务逻辑,层次结构,都背下来了,并加以理解。说来惭愧,直到当时答辩结束,我依旧分不清什么是接口,什么是类,我懂的只是理论,拿出代码基本凉,那会儿一学期写的代码不到100行。

    • 最终结果如何??我理论的掌握确实得到了老师认可,对项目的理解成了加分项。当然,也让我找代码,那肯定是找不到啊,当时灵机一动,扯了一句软件需求分析中一个重要思想,推迟实现。也就是不要急于编码,老师一副哭笑不得的样子说了句行吧,然后让我自己说给多少分,当时脸比较大,要了80,结果老师也真就给了。

    • 整个过程中明明毛毛不会,愣是一副大神的样子,咱伪装的确实不错,也就是从这个时候开始,我意识到,不能这样了,必须真的会点东西。这是主要刺激,还有其他的刺激,小学弟学妹问我程序代码,咱也不好意思直接说不会,又不好误人子弟,所以习惯性的推荐给我认识的大神,一来二去感觉好尴尬。

    • 不在一个层次聊天真的没毛毛意思,大一来我还问一位大佬怎么压缩,现在,真想一砖头………有问题不知道问百度,谷歌吗?垃圾问题问出来是浪费双方时间。当然,这都是受过无数刺激之后得到的结论。

    一轮回

    巴拉巴拉到现在,说点实际性的东西,我现在java的掌握程度,可以独立做些小东西,比如oa自动化办公系统,汽车租赁系统,搭建个人博客等基础项目。用ssm框架,或者javaweb系列,servlet+jsp。当然,这些我都处于会用的层次,调用原理,执行流程也知道一些,太底层的比如什么框架底层原理,jvm运行,垃圾回收机制,线程安全等太深的,没研究过。个人还是比较喜欢前端,java现在热度持续降,市场基本饱和,又是我自认为学的不太好的语言,暂时没有深度学习的打算,我更想把精力放在前端上。

    • 在这里交个底,能用java写的东西,理论上我都可以用php和node写出来,语言上的差异在我看来就是api和语法的区别,业务逻辑都是一样的。对于前端,基本一套系统走完,从html+css+js到三大框架,组件开发,构建工具,版本控制。这些掌握程度有深有浅,现在正在查漏补缺的复习。

    • 语言是有相通之处的,多而不精是真理,但多学并没有错。我java的面向对象还是通过前端js高级阶段面向对象设计学的,这之中也受到了php面向对象的影响,相辅相成,只要你心不乱,api哪怕乱了,查就完了。php内置几千个函数,都背下来,闹呢?学的过程哪些该记住,哪些不用刻意记,真的很重要。

    一回眸

    写到这里,也许才是你真的想看的部分,那之前的都是废话??因人而异吧。咱也是写过网文累计字数将近两百万的人,废话在所难免。好啦,下面说重点。

    理论基础

    • 一直到现在,我也一样重视理论。一个东西你都不知道它是什么,那你学个毛?不知道什么是封装继承多态能玩面向对象才是真的见了鬼。
    • 我对每一个概念的理解,习惯性的找一段代码来解释。当然并不是都有代码,没有就找图文,只有你真的理解了,才能会用。
    • 理论不是独立玩的,如果你自认为分清了,那就自己写一个程序,能跑通那种,检测一下。
    • 对理论的理解不要只满足于教程demo,没有自己的扩展,你写一万个demo你最多也就是一个大demo写手,算不上什么程序猿。

    资源选择

    • 因人而异吧,建议大家根据语言特点来选资源。我在学java基础的时候,用的是传智播客的课件还有配套练习题,一步步将理论转成代码,不懂的看视频,百度,论坛,博客,总之用尽一切手段把它搞明白。学完java基础我用了国庆七天,每天从六点到晚上十点,不是敲代码就是在敲代码的路上。javaweb的时候,我更多的就是看视频,黑马49,市面最广,热度最高的一期资源。
    • 等到了php,我是对着w3c手册大致撸了一遍,然后是一个叫php全栈的视频,源码+笔记+视频,也是传智的,时间问题,我没学完,比如框架。那个时候前端刚好学到ajax,和php配合感觉贼爽。果断把java扔一边开始玩php和ajax的数据交互,巩固后台业务逻辑。
    • 后来到了node,对这个感兴趣多半是因为邵山欢老师,具体不多说了,反正贼拉喜欢这门语言。当时先看了传智李鹏周老师的node,懂了五成。等差不多半个月吧,又学了一波邵山欢老师的两套视频课,那会儿php和java理解也加深了很多,同为后台语言,再杀回来做node项目,感觉路由啊,express啊,npm啊,芒果啊,都有了深层次理解,做项目也就得心应手了许多。

    编程没有捷径

    • 如果说有,就是多敲代码,归纳总结频回顾。还有,多敲代码不是让你反复helloworld,那是沙雕,会的你反复个毛?让你反复是指的那些理解不是特别透彻,感觉会又不太会的东西,将中层知识拿下,算不得大牛,也不至于去搬砖。

    合格程度

    • 写到什么程度算合格?你一看某个功能可以张口就来它的业务逻辑,api说不上来没关系,知道这部分怎么用就行,到时候百度查api就好了。
    • 比如java文件上传,需要对应的jar包,你忘了包是什么了,没关系,百度。
    • 比如你想用js实现一个弹窗,但是你忘了alert这个小家伙了,没关系,百度。
    • 比如你想用php读取文件,忘了函数是什么了,没关系,百度。
    • 比如你想用node处理原生不支持的post请求,需要第三方插件,但具体是什么忘了,没关系,百度。
    • 但你好好想想,如果你都不知道java文件上传需要jar包,js可以实现弹窗,php有内置文件读取函数,node天生不支持post请求。那玩个毛?怎么查?你还不如说谷歌浏览器已经是成熟的浏览器了,可以自己编程。

    兴趣培养

    • 如果有一天你真的对代码感兴趣了,我想大多是程序一把跑通带来的舒适感。或者说,是自己按照自己的理解写出符合预期的程序的成就感。一开始写代码就是慢,但没关系,一切都是一步步过来的,我从基础的helloworld开始,基本不用提示,反复熟练到一定程度再用提示,因为这个时候,再手写就是浪费时间。

    学习时长

    • 一门语言学多久算学通?我觉得这个问题没标准答案,真正精通的,太少太少,编程界的鬼才我最服tj,高产到爆,基本写个东西就火爆。你可能听说过这样一句话,一切用js实现的东西最终都会用js实现。在node界,一切你使用的东西,直接或间接引用的,都来自tj。是的,一切。就是这么优秀,当然,他现在已经去玩go了,但对node的贡献依旧极大。编程每个人理解程度不一样,接受能力也不同,用时间衡量不太规范。拿我自己来说,我学java和前端一年半,php和node差不多一年,日语大一至今,依旧乐在其中,学习本身就是一种乐趣。

    解决问题

    • 我是怎么查资料,解决问题的?自认为百度能解决八成你遇到的问题,前提是你会搜索,我说的是高效搜索。

    • 举个例子,实现购物车功能。你直接百度,看看会出什么?我没试,猜的,难免有一堆不相关的东西,也许什么京东淘宝的广告都会跑出来,这样你一个个找贼费时间,还未必找的到。

    • 快捷方法,高度凝练,关键词匹配。java,session,购物车。这三个关键词就比你直接输入实现购物车功能精确高效的多,甚至结尾可以加你想要的出处,比如csdn,博客园等

    • 每次我打开自己的博客就是直接输入csdn 冷月心,百度搜索引擎第一条,直接完事。
      如果你要找一些指定格式的资源,可以这样 : 深入浅出node.js pdf,这样查找的结果就是一堆pdf相关,限定了格式

    • 查找百度网盘资源,xxx前端视频 百度网盘(百度云盘),这样检索效率很高。在云系列未出现的时候,百度网盘和百度云没啥区别,到现在两者有本质区别,不要乱了。

    推荐资源

    • 个人推荐的代码托管平台

    github,新浪云sea,腾讯云开发者平台,码云

    • 个人推荐的入门资源

    菜鸟教程,w3c教程,官方demo,MDN,

    • 个人推荐的解决问题途径

    csdn,博客园,谷歌,百度,掘金

    展开全文
  • 为什么要学习编程?孩子学习编程有用吗? 很多家长认为:技能学习应该从娃娃抓起,而编程技能正是众多技能学习中最为重要的技能学习之一。之前在上海大学举行的一项教育机器人比赛中,近千名选手参赛,其中不乏学龄...

    培养信息技术类人才是时代所需,技能学习是否应该从娃娃抓起?编程培训“低龄化”是好是坏?

    为什么要学习编程?孩子学习编程有用吗?
    很多家长认为:技能学习应该从娃娃抓起,而编程技能正是众多技能学习中最为重要的技能学习之一。之前在上海大学举行的一项教育机器人比赛中,近千名选手参赛,其中不乏学龄前儿童,最小的选手只有4岁。随着科技日新月异的发展,编程技能学习趋于“低龄化”,这是一个不容忽视的事实。

    面对竞争日趋激烈的就业市场,有些家长担心如果孩子不懂编程,很有可能会输在起跑线上,所以才迫不及待地想要送孩子学习编程课程。还有一部分家长是属于跟风型的,看到别人家的孩子样样都强,自己的孩子却什么都不会,为了迎合大众,只好随大流。

    面对编程技能培训趋向“低龄化”的现状。我们要辩证的看待问题。

    少儿学编程的必要性

    有没有必要让孩子过早地学习编程,没有统一的答案,专家们对此也是各抒己见,褒贬不一。

    在一些培训机构推介编程的宣传中,编程已经被视为一种“通往未来的语言”。在互联网商界,乔布斯11岁开始接触编程,成为了一代传奇领袖;比尔盖茨13岁开始接触编程,31岁成为了世界首富。

    对此,有家长表示:“孩子班上很多同学都报名了,有的孩子才5岁就开始学了,听说编程是人工智能时代的读写能力,我害怕孩子输在起跑线上。”这个问题应该是见仁见智吧。

    正方:赞成学习少儿编程

    1、增强逻辑思维能力

    专业从事编程工作的人都知道,写程序最重要的是如何把大问题不断分割成小问题。在这个过程中,孩子必须思考如何把代码合理地安排在整个程序中,才能让程序流畅的处理输入、演算、直到输出,这对孩子的逻辑分析能力是一个极大的锻炼和提升。

    通过编程学习,不仅能开发少儿的潜能,增强逻辑思维能力,同时也有助于促进其他相关学科的学习,比如数学、英语等,对于孩子的智力开发也是一个有益的锻炼。

    为什么要学习编程?孩子学习编程有用吗?
    2、培养孩子专注度

    现在的孩子大都调皮贪玩。平时带孩子外出,小孩要么跑来跑去,要么不停吵闹。为了让孩子安静下来,很多家长都会给孩子一部手机或游戏机,让孩子上网或者玩游戏,孩子很快就会沉醉其中。当孩子热衷于某一样事物时,他们会表现出更好的的专注度。

    学习少儿编程的过程,就是针对孩子的这种特性,有点像玩游戏那样寓教于乐,让孩子在游戏中学习。编程能够让孩子在轻松愉快的过程中,学会和计算机打交道的方式,孩子不仅能玩到游戏,还能了解这个游戏是怎么设计出来的,从而增强对学习的兴趣,提高对编程的实践应用能力。

    3、促进孩子智力发育

    在美国,儿童编程已经成为孩子继阅读、写作、算术这三项基本能力外所需要掌握的第四项必备技能。在广州等一线城市,少儿编程课程的学习已逐渐趋向于从幼儿园的娃娃抓起。学习编程,对于锻炼孩子的思维能力和创造能力,促进孩子的智力发育无疑是大有裨益的。

    孩子在上学之前,就可以对科学技术有所掌握,这在东欧小国爱沙尼亚体现得十分明显。爱沙尼亚非常重视少儿编程教育,当地的孩子,在上学之前就已经接触了解一些关于编程的知识。上小学之后,学校统一进行编程课程学习,孩子们可以应用平板和智能手机完成处理复杂的事情,甚至于有的孩子所表现出来的编程能力令人赞叹。

    为什么要学习编程?孩子学习编程有用吗?
    反方:不赞成学习少儿编程

    1、剥夺孩子的童年

    编程技能学习对于很多成年人来说,都是一项非常复杂的程序,几岁的孩子还不具备解决问题和独立思考的能力,根本无法理解程序背后的逻辑关系。如果硬是要孩子坐下来学习编程,恐怕也只是勉为其难,还有可能加重孩子的学习负担,剥夺孩子童年的快乐与自由。

    2、全英文界面难操作

    安装Python需要到官方网站去下载程序,对于绝大部分孩子来说,来到这个页面之后都会有一种无从下手的感觉,因为这是全英文操作环境。就我国目前的教育现状而言,5-12岁年龄段的孩子有多少精通英语的呢?有的恐怕连汉字都认不全,又怎能奢望孩子在全英文操作环境中进行编程学习呢?

    3、己所不欲勿施于人

    童年对于孩子本该快乐无忧,近年来我们也一直倡导要解放孩子的天性,真正为孩子减负。然而让小孩学习编程无异于给孩子施压,可能这并不是孩子的兴趣,更多时候只是家长一厢情愿,担心孩子将来会吃亏,毕竟别家的孩子都在学了,所以才逼着自己的孩子学的,却没有好好考虑孩子的感受。

    4、学编程并非越小越好

    有专业人士指出,学习编程并非年纪越小越好,应该遵循教育规律和孩子的成长特点。首先孩子需要具备一定的英语基础、数学根底和阅读能力,才能理解编程的基本概念。国内有些培训机构将编程培训的年龄门槛设置过低,学龄前的孩子无法理解其中的理论,过早地参与其中,不仅难以达到编程教育的效果,还可能让孩子丧失学习的兴趣。

    如何拓展编程教培市场

    当阿尔法围棋(AlphaGo)相继击败人类职业围棋手、战胜围棋世界冠军之后,人工智能再次成为人们热议的话题,各行各业都在思考如何将人工智能为己所用。人工智能的核心之一就是程序,如果要大规模推广人工智能,就需要大量的程序员调剂,更有人放言称“代码才是未来世界的通用语言”。

    有专家指出,由于程序人员的缺乏,人类很有可能陷入全球性编程技能危机,因此培养信息技术类人才刻不容缓。对于教育培训行业而言,这也是一个时代发展赋予的机遇和挑战。

    在全球范围内,儿童编程教育已经是一个发展主流,16个欧美国家已将编程纳入了公立学校的日常课程。很多科技发达的国家,在培养编程人才方面已经先行一步了。

    我们的邻国日本,早在2012年就已在中小学生中普及编程教育;英国2014年新教育大纲规定编程为5-16岁学生的必修课;法国把编程纳入了初等义务教育的选修课程;北欧一些国家,如芬兰、爱沙尼亚等国家,也把编程作为一门非常重要的义务教育学科来学习。

    微信公众号:

    这里写图片描述

    展开全文
  • 什么是编程?该怎么学习编程?

    千次阅读 2020-01-24 02:05:28
    对于稍稍有一点技术追求者来说, 学习是唯一让自己变强的方法,对于很多初学者来说,都会遇到很多相同的问题,如果学习编程这种东西,没有兴趣的支撑, 坚持下去也是很吃力的, 同时也存在一些人生"逆行者", 喜欢折腾自己,...
  • 随笔-学习编程有没有必要做笔记?如何做笔记?

    万次阅读 多人点赞 2018-07-07 21:16:18
     对于刚刚学习编程或者已经学习了编程的朋友,难免会产生该不该做笔记的想法。是做好?还是多练习几遍比较好?下面将个人想法和大家分享一下,希望给正在迷茫的你能提供一点帮助 问题  1.学编程有没有必要做笔记...
  • 当初还没有学习编程的时候,真心觉得编程好难啊,这是人学的吗?怎么全是符号字母?这都是啥啊?真的是让人满头问号,目前编程行业工资比较高,很多人都想学一下编程,但又不知道从哪里开始学习,我觉得学习编程的...
  • 1. 对于想要准备学习编程的朋友来说,往往对编程有很多的疑惑,不知道如何抉择,常见的就是以下几个问题: 如何选择编程方向 怎么学习编程 如何学好编程 英语不好能不能学习编程 数学不好能不能学习编程 如何...
  • 学习编程的游戏网站

    千次阅读 2018-11-27 02:51:21
    学习编程的游戏网站 1. codecombat CodeCombat 是一个在真正的游戏中教学生们学习计算机编程的平台。这是一个社区项目,有上百位玩家贡献者们创建了各种关卡。支持 Java、JavaScript、Python、Lua、CoffeeScript 等...
  • 普通人如何学习编程

    万次阅读 多人点赞 2016-09-01 06:53:58
    在计算机使用如此普遍的今天,编程似乎也快要成为基础技能,那么普通人如何学习编程呢?
  •  上一篇文章如何学习编程之编程认识(一)讲述了学习编程前应该具备的一些特质和编程的一些认识,这一篇文章从一本好书和一份教程等两个方面讲述如何入门,每一个人学习的方法都不一样,希望本文能给你一点帮助 ...
  • 大学该如何学习编程

    千次阅读 多人点赞 2018-11-11 21:59:16
    一、我为什么写这篇文章? ​ 先自我介绍一下,我是一个对编程有点兴趣的双非本科应届生,目前在上海一家互联网公司做Java实习生...很长一段时间都挺迷茫,怎么学习编程?怎么才能做出那些有意思的东西?又或者是该...
  • 如何高效学习编程技术?

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

    千次阅读 2019-04-25 17:13:30
    初中生怎样学习编程语言?能否学习呢?有哪些好的方法呢?现在带着疑问跟随达内北京编程培训机构一起去了解一下吧。 初中生能否学习编程语言? 有很多人认为初中生不适合学习编程语言,认为初中生学习编程语言比较难...
  • 盘点几个在手机上可以用来学习编程的软件

    万次阅读 多人点赞 2019-04-05 20:20:08
    前天在悟空问答的时候,很荣幸被邀请参加回答“在手机上可以用来学习编程的软件有哪些?”这个问题,当时在回答的首页看到一个头条大微(小小猿爱嘻嘻)的回答,觉得十分受用,在此将其整理好,发布头条给大家学习,...
  • 学习编程一年的感受

    千次阅读 2018-10-30 15:29:01
    写一下自己学习编程的经过吧。 从2017年开始接触编程,那时候刚上大一。 最开始学的是C语言,那时候什么都不懂,只是知道编程大概就是写代码的,具体是什么一点也不知道。然后学C语言怎么学呢,一开始就是上课,...
  • 为什么程序员在学习编程的时候什么都记不住?

    万次阅读 多人点赞 2019-10-12 15:20:20
    在程序员的职业生涯中,记住所有你接触过的代码...每个人都会在学习编程语言的时候,努力记住所有一切,这也不足为奇。虽然有些人可以过目不忘,直接在脑海里就能想出问题的解决方案,但普通人却不能。特别是那些刚...
  • 我们知道,学习编程语言最好的方法是上手编码,但是如果你厌倦了传统的编码方法,想要通过一些有趣的方法来学习编程,那么下面即将介绍的编码游戏会是一个很好的学习方法。我们还可以让孩子们玩这些编码游戏,因为...
  • 学习编程能够从事哪些行业

    千次阅读 2019-03-01 17:02:56
    一直在谈如何学习编程,学习java、c/c++、python、JavaScript等一些基础的东西。可能有些人会问,那我们学编程能从事那些工作呢?  01互联网企业  最直接的工作就是到一个科技企业做程序员,人家码砖头,我们码...
  • 整理了18个可以免费学习编程的网站

    千次阅读 2020-10-24 10:54:09
    分享18个可以免费学习编程的网站。希望小伙伴们通过这些学习网站,能够提升自己的编程水平,学到自己想学的知识。
  • 关于学习编程的心得

    千次阅读 2016-10-17 23:49:41
    学习编程不仅仅需要有热情还需要毅力。 你看我现在,学习了编程大半年,当初每天学习八个小时的热情被时光削掉了一大半,还剩下的那么一点点是因为兴趣。 今天在洗澡的时候总结了一下:为什么自己会出现这种情况,...
  • 一年学习编程的感想

    千次阅读 2018-02-02 22:30:00
    从大一开始我就开始学习编程,那时候家里的哥哥就是弄这个的,所以我才会学习这个吧。是他让我感受到了他的神奇和魅力,大一上学期的时候没有电脑,我们一开始学习的是C语言,学习了下来什么都没有学会,就知道了...
  • 在线学习编程网站收集

    万次阅读 多人点赞 2013-06-16 14:38:42
    下面收集一些个人觉得比较好的在线学习编程网站。当然用google搜索下,会有很多推荐。   update 2015-11-11 收集到几个做题网站 http://www.codewars.com/ Codewars http://codeforces.com/  codeforces ...
  • 一个学习编程的网站

    千次阅读 2018-09-03 21:28:46
    推荐一个学习编程的网站: https://www.runoob.com/
  • 近给大家讲了一堂关于初学者如何从零基础到就业正确的学习步骤,在课堂中我提过两点...今天主要给大家讲一下初学者学习编程,如何更好的去提升自己的编程思维。 首先我们要明白一点,我们学习编程到底在学习什么...
  • 学习编程一年半心得体会

    千次阅读 2018-02-01 17:45:14
    本人专业不是专攻计算机软件方面的 但是由于软件方向接触的比较早所以就开始了学习编程的道路,记得当时是因为我们专业软件实验室招收新生,自己其实当时对这个一点也不了解,看到大家都在刷题,自己也跟着刷,后面...
  • 学习编程的一些感受

    千次阅读 2018-06-23 11:50:46
    在最初学习编程时(我觉得自己现在依然是个初学者),我遇到的绝大多数问题都能在百度上直接找到答案,很轻松。但是最近一段时间的学习过程中,尤其是在制作微信小程序时,我明显感觉到有一些问题不能轻松解决了,一...
  • 12个免费学习编程的网站

    千次阅读 2018-05-08 21:03:09
    曾几何时,编程对极客来说是最讨厌的事,但在...1. CodeAcademy最受欢迎的学习编程的网站之一就是CodeAcademy啦。事实上,已经有超过2400万人通过这个教育公司的迷人经验学习过如何编程,在CodeAcademy,通过上课...
  • 告诉你一个学习编程的诀窍(建议收藏)

    万次阅读 多人点赞 2020-04-23 16:13:17
    万事开头难,但你得坚持 我们学习编程啊,刚开始的时候,大家都会感觉有难度,编程毕竟是个有门槛的活,大家谁也不是天才,上来就盲打疯狂撸码的,所以啊,那些刚开始学习编程的,你们在学习的路上会遇到许许多多的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 334,322
精华内容 133,728
关键字:

学习编程