编程的自学方法

作者 | 刘欣

地址 | http://t.cn/RYsdvuB

声明 | 本文是 刘欣 原创,已获授权转发,未经原作者允许请勿转载



前言

很多人通过我的QQ(14703250),微信(liuxinlehan) 问我类似这样的问题:
我已经看了很多Java的书,也看了很多视频,可总觉得心里没底,觉得还是什么也不会,好像有很多东西看过都忘了, 接下来该干嘛? 迷茫了!
我的回答无外乎是要多编程,多实践,做个小项目巩固学过的知识。
不知道提问者是否满意,反正我自己对这个回答也不满意, 这促使我思考关于学习方法的问题,写了篇文章分享给大家,欢迎讨论。


方法一: 看书,看视频,偶尔照着例子敲点小程序

策略: 先把那些 Java 知识点统统都看一遍,集合,IO, 反射,线程,html , javascript ,servlet, jsp  ,xml ,tomcat  ,spring,hibernate,对哪个例子有好感的话,在自己的电脑上敲一遍


估计很多人都是这么自学的, 这种方法的缺点是:
(1) 一叶障目,不见泰山, 容易陷入细节 做码农需要和无穷无尽的细节打交道,例如:html 那么多 tag,属性  , xml dtd ,schema 复杂的语法,  httprequest 那么多方法, 看着看着就烦了, 到底哪些是常用的? 哪些是不常用的?

自学者迷失在了细节当中, 产生了怀疑。
(2)  记不住 实践(编程)太少, 当然容易忘记了。

(3) 挫败感 就算很有定力,很有自制力,以及在未来拿高薪水的想象中, 利用断断续续的业余时间咬着牙终于把这些细节都看完了, 然后悲催的发现:
卧槽,还是写不出一个可以运行的像样的东西!
最终结果是:  我看完了,很多细节也忘了, 还是不知道怎么回事,还是蒙圈。
这种方法试图把所有的细节都搞定以后,再去做系统, 对自学来讲其实并不友好。


方法二:实用主义, 拿项目作为牵引来学习

策略: 拿项目作为驱动, 开始是不追求面面俱到, 而是追求一个可以运行的东西, 单点突破,以点带面, 最终掌握所有知识点。
如果你懂得敏捷开发, 就会明白这和敏捷软件开发的本质思想是何其像啊。 
这种方法的好处是: (1) 成就感 一开始就搞可以运行的系统, 慢慢的增加功能

(2) 在实践中学习 学习金字塔, 在之前的文章中已经提到过,这里再强调一下: 通过实践来学习是非常有效的。 


(3) 抓大放小

先学会最关键的,最实用的东西,先学会并且能实践一个关键知识点,然后再把周边的知识学会


(4) 思考才是进步的本质 !   实现系统过程中遇到了问题, 会逼着你思考,去动手解决问题

这种方法的缺点也很明显:
(1)  遇到问题容易卡壳, 需要有高手/师傅点拨一下 对于那些比较难的问题, 自己思考、尝试了很久以后,被点拨一下,恍然大悟,拨云见日的感觉非常的爽。
(2) 要求动手能力和主动思考的能力 伸手党是不行的。 
(3) 要有项目 终于说到重点了, 这不是废话吗 ?

但是找个项目应该并不难,你完全可以想一个小项目来做啊,比如说我最近碰到的一个小需求:
1. 普通用户可以注册,登录,最好和QQ账号关联 2. 老师(暂定只有一个)可以创建班级 3. 普通用户可以加入班级 4. 老师能够按月发布作业, 作业有标题和内容 5. 加入班级的用户提交作业 6. 老师可以查看作业,查看哪些人提交了作业,哪些没有提交
找一个身边的问题,把它简化, 实现出来,是很有效的。
学习编程本质上是个迭代的过程,不可能一下子把所有的问题搞定,用项目做驱动来学习符合这个观点。

还有哪些自学的方法, 欢迎讨论!



与之相关

我的 10 年自学编程之路

给编程生涯充电的 10 本书




转载声明:本文转载自「码农翻身」,搜索「coderising」即可关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值