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

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

    推荐阅读


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


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

    和你一起终身学习

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

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

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

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

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

    少儿学编程的必要性

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

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

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

    正方:赞成学习少儿编程

    1、增强逻辑思维能力

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

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

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

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

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

    3、促进孩子智力发育

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

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

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

    1、剥夺孩子的童年

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

    2、全英文界面难操作

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

    3、己所不欲勿施于人

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

    4、学编程并非越小越好

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

    如何拓展编程教培市场

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

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

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

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

    微信公众号:

    这里写图片描述

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

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

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

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

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

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

    我在网上看到有大佬列出 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

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

    展开全文
  • 学习编程一年的感受

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

    写一下自己学习编程的经过吧。

    从2017年开始接触编程,那时候刚上大一。

    最开始学的是C语言,那时候什么都不懂,只是知道编程大概就是写代码的,具体是什么一点也不知道。然后学C语言怎么学呢,一开始就是上课,看书。学校发了一本C语言教材,当时感觉挺无聊,书上前面就是一些数据类型什么的,到底能用来干什么呢?说实话,刚开始学C语言确实很无聊,感觉和高中上的那些课也差不多,就是上课刷题。当时学习C语言就是为了应付考试。

    然后学了大概一学期吧,在知乎、网易云课堂上看到一些C语言做的程序(小游戏之类的),感觉虽然也挺简陋,但是至少看起来是个程序。然后这时候有点兴趣了,就在网上自己看视频,然后真正开始敲代码了。不过也只是零零碎碎地敲代码,想学就学,累了就算。

    后来又了解python、c++这些语言,也买了几本书看了看,用python做了点小程序,甚至照着书上的代码做了一个真正的网站,虽然也很简陋。但是看到网站能运行还是很高兴的。

    后来基本上就是玩着学编程,期间接触过Qt,也想过做做算法题,断断续续地一直学到现在,学了也算是一年了。

    虽然现在编程水平还是很低,但是感觉比起一年前已经有很大提高了。从最开始用VC6.0写控制台程序,现在能用Qt写一点简单地窗口程序。 还有一件事就是,打字的速度变快不少。。

    虽然不知道自己最后能学到什么程度,但是就当是兴趣,继续学下去吧(如果有可能的话)。

     

     

    下面总结一下遇到的问题和经验吧。

    问题:

    刚开始怎么学编程? 我觉得看视频好一些(网易云课堂还有其他的一些网站上都有。),然后也要结合书一起看。最重要的是要敲代码。

    程序编译/运行出错怎么办? 先看语法错误(标点符号,中英文),再看逻辑错误。如果都没有找到,先百度一下。或者等会再看,不要太纠结。

     

     

     

     

     

     

    展开全文
  • 大学编程3年学习的感受

    千次阅读 2017-10-26 23:57:33
    大学编程3年学习的感受
  • 学习编程一年半心得体会

    千次阅读 2018-02-01 17:45:14
    记得当时是因为我们专业软件实验室招收新生,自己其实当时对这个一点也不了解,看到大家都在刷题,自己也跟着刷,后面就剩我们个人,所以进了这个实验室,踏上了学习编程的道路。   我记得开学半个月,还没开始...
  • 我是如何学习编程

    万次阅读 多人点赞 2019-04-15 22:58:25
    我是如何学习编程
  • 真的是让人满头问号,目前编程行业工资比较高,很多人都想一下编程,但又不知道从哪里开始学习,我觉得学习编程的过程用一句话来说再合适不过了,就是一个好的开始是成功的一半,你开始了,那么你也就成功一半了...
  • 大学四,我是如何学习编程的?

    千次阅读 多人点赞 2019-12-04 23:40:27
    大学四,我专业是计算机专业...今天我分享下,如何在学校里免费技术,沉淀一些编程技能。 编程书籍 这是我大学看过的书籍。 设计模式 这里简单介绍一下: 设计模式是软件设计中常见问题的一般可重复解决方...
  • 所谓术业有专攻,如果将来志在编程世界的网友就要注意了,今天给大家推荐一下2014最流行的编程语言,他们可以说是未来程序员们生存的工具。 1.JavaScript JavaScript在Web应用上有着非常大的
  • 为什么要学习多种编程语言

    万次阅读 2019-02-23 11:51:38
    过年期间文章停更周,今天正式回归。今天的文章可能是一个老生常谈的问题,软件工程师到底是否需要掌握多种编程语言? 如果一直看我博文的人应该了解,我掌握的编程语言就不少,系统编程的C/C++,Web开发的Java和...
  • 如何开始学习编程

    万次阅读 2017-12-14 18:55:55
    如何入门编程,开始学习自己的第一门语言?
  • 这样学编程,直接原地起飞啊!

    万次阅读 多人点赞 2021-04-22 10:41:37
    今天来给大家分享一些学习编程的心得,真的颠覆了我以前对学习编程的刻板印象,可以这么说,如果你恰好处在大学阶段,看到了这篇内容,OK,恭喜你,如果你能按照我说的去做,大三大四的时候绝对能领先同学一大截,...
  • 普通人如何学习编程

    万次阅读 多人点赞 2016-09-01 06:53:58
    在计算机使用如此普遍的今天,编程似乎也快要成为基础技能,那么普通人如何学习编程呢?
  • 怎样学习一门编程语言

    万次阅读 多人点赞 2015-04-06 02:12:38
    选择一门语言确定你感兴趣的领域你可以开始学习任何编程语言(尽管其中一些被描述地比其他的更加“易学”),你得去问自己自己想用通过学习这门语言完成什么样的工作。这将会帮助你确定你应该追求的编程方式并且提供...
  • 高中生如何学习编程

    万次阅读 2013-10-08 17:23:36
    高中生完全具备学习计算机编程的能力,关键在于如何选择一门合适的语言来作为入门学习的语言,本篇介绍作为初学者如何从浩瀚的资料中,挑选合适的资料来进行学习,也是博主自己学习过程的总结,希望找到更多的自学者...
  • 年轻人学几编程语言

    千次阅读 2018-11-24 01:20:52
    有的语言是必的,比如学编程的都该学习一下安卓开发,就算是入个门,开发个间单的计算器,浏览器。 还有网站设计也,怎么安装iis,怎么写php,asp动态网页。 其他的就是EXCELVBA,ACCESs数据库等。 有好多...
  • 写给想和在学编程的你们,学习编程的7个好处

    万次阅读 多人点赞 2020-03-29 19:20:41
    其实选择学编程是能变人生的。可能很多人学编程,报了一个编程培训班,为了就是拿到更高的工资或者有更好的工作环境。最后坚持下来的都会发现编程给我们很多个人能力和技能的提升。
  • 什么是编程?该怎么学习编程?

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

    万次阅读 2018-01-22 16:54:32
    编程现在已经变成最受欢迎的...如果,你还没有学会编程,让我们看一下在 2018 你可能会学习编程语言有哪些。 Python 毫无疑问, Python 现在已经统治着编程市场。它发起于 1991 ,自从 YouT
  • 2019给Java编程初学者的建议(附学习大纲)

    千次阅读 多人点赞 2019-01-06 12:24:54
    本文非灌水,绝对干货,给编程入门的小白提供的建议和学习大纲,编程行业非常火爆,但也有很多人转行,所以请慎重考虑
  • 一位想学习编程拯救他人的初中生

    千次阅读 多人点赞 2019-02-16 17:15:28
    老师,我是一位初中生,我想向你学习软件编程,我想帮助那些被骗无数遍还上当的人们,因为我知道,想帮助他们,需要有编程序的能力,而我想要学习。 看到这样的留言,一时不知道如何回复才好,不知道为什么一个...
  • 2019你应该学习哪种编程语言?

    万次阅读 多人点赞 2019-01-19 12:37:34
    ▲点击上方"什么技术值得",关注持续获得知识无论您是专业开发人员还是初学者,对学习新的编程语言总是一个好主意。当然,并不是每个专业或有抱负的开发人员都必须绝对学习的单一...
  • 一个计算机专业学生几年编程经验汇总(收藏) 收藏  来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路。说得伟大一点是希望大家...
  • 大学该如何学习编程

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

    千次阅读 2013-12-17 18:15:02
    摘要:在本文中,我们介绍了来自两岸三地的编程学习网站,通过它们,不仅可以一窥国内App开发的发展现状,而且这些网站各有特点,无论是主打游戏学习还是视频学习,对于想自学的开发者而言,都是个好去处。...
  • 2019最值得学习编程语言TOP5

    千次阅读 2019-01-09 14:09:36
    选择何种编程语言似乎无关紧要,因为大多数流行语言基于...本文将推荐五种当下和未来一段时间最值得学习五种编程语言,并逐一介绍它们的特点和优点,以及面试中需要注意的要点。 对于初学者来说,选择编程语言...
  • 关于初学者怎么样学习WEB编程

    千次阅读 2011-09-11 12:51:34
    最近很多人在WEB编程开发这个版块发表帖子,例如"我是初学者,我应该从哪里开始学习","我的某方面不好,对WEB编程有没有影响","学习WEB编程的话从什么地方写起,ASP ASP.NET PHP JAVA 先哪个,后学哪个."等等,...
  • 已经写了7-8年代码,也是老程序员一枚了,在感叹青春不在的同时,程序员作为一个技术原则上年龄越大经验越是丰富,其实...30岁开始学编程从常规来讲有点晚了,如果能够克服以下个困难未尝不可以尝试学习学习下: 1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 372,036
精华内容 148,814
关键字:

学编程大概要几年