根据最近csdn博客中各位博主的经验分享,总结一下快速有效学习一门编程语言的方法。
目录
一、快速学会一门新的编程语言的方法:
1.确定目标:确定的目标不是你每天学习多少内容 。是一个实际的任务、明确的目的 。确定的目标应该是这样的,如:在 6.1 日前完成小程序报修管理系统 ,6.10上线供客户使用 。你需要明确你要完成一个什么样的程序 ,什么样的系统 。
2. 找一个学习的导师:第一位导师,也是最常用的导师 :百度。前提是搜索的方法正确关键词正确;第二位导师,是你的一位前辈、老师或者朋友 ,比较有经验,能够指导你少走很多弯路,跳过很多坑 。
3.着手写程序:开始写程序,直奔主题。每一步遇到问题都去百度搜索解决,只要能解决问题就可以,不用太多原理,只要实现功能就可以。
4.回头系统学习基础知识。写了一个小的系统,信心倍增,梳理项目中的知识点将其学会。以项目为目标,少想多做先完成项目再系统学习。从实践中学习是最快的方法,多写多看多听多请教。
二、高效学习程序的方法:
学习编程语言的过程简单描述为:过、抄、仿、改、调、看、练、创、悟。
1.过:基础知识点不求深解,语言什么样的,适用场合、基本语法格式
2.抄代码:从书上抄、例子中抄、边抄边想边想边回忆语法
3.模仿改:仿照给出的代码写出自己的代码
4.勤调试:不断调试验证自己想法,继续思考,再次验证。熟悉调试工具调试方法
5.看n遍:出错或者遇到问题时,将代码从头到尾看n遍直到快记住,找出问题原因
6.练:2-5步三遍以上
7.创新:拿出一个没有写过的根据要求,一步一步写出来,写不出来参考6
8.悟:主动找到写代码的感觉和成就感,保持下去。
三、比较简洁的对需要快速掌握的部分分类:语言和系统
1.语言:类型、变量、运算符、循环控制语句、字符串操作、数组和集合、函数(参数、返回值)、面向对象编程(类、接口、抽象类、属性、继承、多态、封装等等)、多线程、放射、异常处理。
2.系统:控件(基本控件、列表控件、自定义控件)、事件(事件绑定、事件监听、)网络(网络基本协议、网络请求、网络框架)、存储(数据库、文件)、页面间交互(跳转和传参)、生命周期(控件的和页面的)、模块化
3.完整的项目:推送、埋点、性能监控、崩溃统计、设计模式(MVC、MVP和MVVM)等等。
四、快速掌握一门语言的50%
可以在几天至一周掌握最常用的50%:
1. 首先了解该语言的基本数据类型,基本语法和主要语言构造,(数据类型、变量、逻辑控制语句、表达式、函数);
2. 其次掌握数组和其他集合类的使用,可以理解一下泛型;
3. 简单字符串处理。查找替换,截断去字串之类的。
4. 基本面向对象或者函数式编程的特征,(编程模式)继承、多态、Lambda函数之类的;
5. 该语言如何进行callback方法调用,(回调机制)如何支持事件驱动编程模型。如:C++OX的 tr1::function/bind。
6. 序列化和反序列化,为了在不同平台之间传输对象;
7. 异常、错误处理、断言、日志和调试支持,对单元测试的支持。
8. 程序代码和可执行代码的组织机制,运行时模块加载、符号查找机制,
9. 基本输入输出和文件处理,输入输出流类的组织,搞清楚概念,用到的时候查就是了。
五、十步学习法和费曼学习法:
1.约翰Z森梅兹十步学习法:
利用好奇心吸收更多知识,对自己学习的内容有基本的了解,然后利用这些信息勾勒自己的学习范围,然后寻找资源制定自己的学习计划,“学习-时间-掌握-教授”
第一步:了解全局 只读教材的主题张洁对内容有全局的了解
第二步:确定范围,名明确自己到底学什么,为什么要学
第三步:定义目标,清晰的陈述,比如:我可以使用C++语言的功能写出小程序
第四步:寻找资源:图书、博客、在线专家以及源代码、示例项目、在线文档:从Google搜索关键词“beginner tutorials”开始,搜索相关的入门教程。Nettuts+上面有成千上百的教程,StackOverflow有学习资源。Quora也是一些不错的选择。
第五步:创建学习计划:如果5位不同作者都将内容非为相同模块和顺序,按照该方法制定自己学习目标
第六步:筛选资源。
第七步:开始学习,浅尝辄止,不会多到无力探索;
第八步:动手操作,边玩边学;
第九步:全面掌握学以致用;
第十步:乐为人师,融会贯通:写博客、视频创建教程、发表演讲于朋友交流、在线论坛回答问题。
2.费曼学习法:
第一步:选择目标(Specific具体、Measurable可测量、Attainable可实现、Relevant相关性、Time—based时效性);
第二步:教学(可以一对一讲述,可以写博客、录制视频、对手机录音);
第三步:纠错并深入学习(反复查资料、学习强化记忆);
第四步:简化(通俗易懂的自己语言说出来)。
六、通过向身边大佬请教总结的方法:
简要的说就是实践+看书+视频:
1.时间规划;
2.列出知识点并画脑图:工具xmind ;
3.做笔记:自己包里随身装笔记本。印象笔记:知识点和收获;
4.看书官方文档;
5.视频:bilibili,YouTube;
6.看源码:Github可以进去入口打个断点,一点点的下去,刨根问底的看这样好很多了,可以结合他的思维导图看。学习如何管理规模较大的项目;项目中应用的有趣的库;代码规范以及代码全局设计;文档风格;测试规范; 解决诡异问题的方法,以及发现项目中有问题的地方;
7.针对面试刷题:牛客网https://www.nowcoder.com,力扣:https://leetcode-cn.com
8.看博客:stackoverflow:https://stackoverflow.com,掘金:https://juejin.im,博客园:https://home.cnblogs.com/知乎、csdn、开源中国:https://www.oschina.net/blog 9.实践:不断实践、犯错、吸取经验、不断进步
七、激励自己坚持下去的方法:
如何让自己拼了命的发了疯的学习:
1.最好的激励办法=外部刺激+自我奖励;从内心深处明白自己想要什么,静下心来,全身心的投入进去,发自内心的喜欢它,热爱它,渴望它,真真切切的享受它 + 适当的外界奖励。
2.阶段性反馈机制,奖励机制很重要:只有努力的xx才可以xx。
3.每天完成一个小的阶段,奖励自己看电影或者弹吉他,使用时间管理软件如forrest、番茄ToDo、滴答清单等将目标量化。
4.Leecode等网站做题,做出一道题给人带来的成就感。
5.以解决问题为目标,然后在电脑桌上放几样能激励自己的事物,如喜欢的房子或者豪车等。
6.番茄工作法,25分钟高度集中,5分钟的奖赏。直播学习,bilibili上的学播。
7.自我奖励:享受时间过程大于结果。
8.坚持写csdn博客将自己的学习量化,不管激励自己。让别感觉自己很重要,想要成为专家需要1万小时
9.成为大牛会得到别人的认可,要成为“快去找xxx,这个问题只有他能解决”。多看看牛叉的人,跳出自己的生活圈。尝试去一些自己消费不起的餐厅。
10.洗脑:我就是喜欢学习,我就是喜欢学习,别让我停下来,不用多久我就能走上人生巅峰。
11.思维导图法:将一本书简化成一张表
12.制定可行的具体的计划、计划精确到每一天。设定目标并向朋友发送进展情况。
参考:
- https://blog.youkuaiyun.com/dataiyangu/article/details/97544551
- https://blog.youkuaiyun.com/lianghe_work/article/details/47041255
- https://blog.youkuaiyun.com/wjwj1203/article/details/105180907
- https://blog.youkuaiyun.com/myan/article/details/3144661
- https://blog.youkuaiyun.com/qq_35190492/article/details/103847147
- https://blog.youkuaiyun.com/qq_18887855/article/details/81228881
- https://blog.youkuaiyun.com/haoaoo/article/details/78018787