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

我回顾了一下自己从学习编程到一直工作了十年的开发经历,也查了一些资料,总结出了在学习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交流群自行下载,所有资料都在群文件里,进去要跟大家多交流学习哦。

零基础如何高效学习编程|成就我的10个编程学习实用小技巧相关推荐

  1. 零基础如何高效学习Java 成就我的10个编程学习实用小技巧

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

  2. 非零基础自学Java (老师:韩顺平) 第10章 面向对象编程(高级部分) 10.6 抽象类

    非零基础自学Java (老师:韩顺平) ✈[[零基础 快速学Java]韩顺平 零基础30天学会Java] 第10章 面向对象编程(高级部分) 文章目录 非零基础自学Java (老师:韩顺平) 第10章 ...

  3. 零基础如何高效学好Java?Java怎么学?

    Java编程是一个技术活,没有专业知识,那是行不通的.这也决定了程序员的不可替代性,不是你随便招一个人就可以立马开工.很多人在转行跨界去接触一个自己从来不懂的行业时往往内心充满了恐惧,也许会高估了这个 ...

  4. 零基础的跨界自学拿到腾讯Offer的学习资料

    这是我的一个朋友自学资料包,通过这个资料包自学拿到了腾讯的Offer, 下面是他之前入门学习Python时候的学习资料,非常全面,从Python基础.到web开发.数据分析.机器学习.深度学习.金融量 ...

  5. 零基础转行Web前端开发自学靠谱吗?菜鸟学习前端的方法分享

    Web 前端开发行业长期处于供不应求的状态,薪资待遇也随之水涨船高,因此吸引了不少零基础转业者.那么,可能会有人问了:零基础转行Web 前端开发自学靠谱吗?这个问题没有确切的答案,毕竟每个人的情况都不 ...

  6. 零基础学python用哪本书好-Python入门到精通学习书籍推荐!

    1.Python基础教程(第2版 修订版) <Python基础教程(第2版修订版)>包括Python程序设计的方方面面,内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适 ...

  7. C语言零基础入门级数据类型+运算符+控制流+ASCII 码表+面试题【系统学习第二天】

    C语言零基础入门级数据类型+运算符+控制流 第一项 C语言->数据类型全讲解上 [1]整型int [2]整型修饰符short.long.unsigned [3]符号位 [4]格式控制符%d+%h ...

  8. 0英文基础能学计算机编程么,我零基础,英语和数学都不好,能学会编程吗?...

    零基础转行学IT的人很多 他们通常都会问达妹相同的问题 这些问题你可能也会有的: 不是计算机相关专业可以学吗? 学历不高能不能学 数学和英语都不好怎办? 达妹直接说"都行" 肯定很 ...

  9. 土木工程 “提桶跑路“,零基础转行Python,成功实现月入过万的学习之路!

    背景:普通本科,学的土木工程,转行之前完全没怎么接触过计算机编程,纯纯力工.目前无论从哪方面来看,转行后的工作都比从事本专业的工作要好.转行算是一次比较大的抉择,记录一下自己的历程,也为广大处在天坑专 ...

最新文章

  1. vue事件修饰符:通过@click.self的self属性来阻止内层向外层冒泡
  2. python两个数相加时_怎么用python让两个小数相加
  3. .net core针对async ()=的安全处理
  4. shell脚本和python脚本和go脚本的区别_Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例-Go语言中文社区...
  5. libpcre.so.1 cannot be found
  6. 线程---pthread_creat的问题
  7. php随机生成卡密,PHP随机生成不重复的8位卡号(数字)和卡密(字符串)
  8. 电气工程类中文核心期刊
  9. 计算机管理中没有大容量存储,控制器没有足够的带宽可利用为USB大容量存储设备的解决方法...
  10. labelimg标注yolo格式Bug
  11. matlab 残差plot,residualplot分析
  12. 抖音新号怎么快速涨粉(8种抖音运营吸粉技巧)
  13. 通过集成第三方IM实现聊天应用
  14. 《JavaScript 正则表达式迷你书》问世了!
  15. c语言编写8个发光二极管循环右移,1、P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。...
  16. 使用技巧-Z平台为第三方系统开放接口过程
  17. 设计水花飞溅柠檬汽水饮料广告的PS教程
  18. 企业怎样管理员工更有效?
  19. 如何在Ubuntu Linux上安装Steam游戏平台
  20. Spring Boot 使用 Druid 连接池详解

热门文章

  1. VS2017 报表控件找不到怎么办?
  2. POI2008 KLO-Building blocks
  3. 60万英语老师,在辛勤工作着,培养着一批又一批聋哑学生…
  4. PTA L2-014列车调度
  5. Vue基础--Vue中的双向绑定v-model指令
  6. 【无浪】花了两周时间纯手打打出来的Java记事本
  7. linux通过nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy
  8. Cadence Menus pulldown(下拉)菜单的建立
  9. Java程序模仿随机发红包
  10. 给虚拟机更换桌面壁纸和锁屏界面