我是如何自学编程的——“3遍读书法”

从工体到圣西罗 2014-08-13 10:19:42
加精
我大学本科念的是电子工程专业,所以到那个时候为止,我唯一使用过的编程语言就是C/C++、Assembly、以及 Matlab。后来一个偶然的机会我参加了一个“周末创业”的活动,并且开始渐渐对软件开发和计算机科学感兴趣,然后我发誓我要不择手段地进入这个洋溢着无限魅力的领域。但是,我需要学习其他的编程语言,以便于和大家协作一起搞项目。

在过去的一年半时间里,我已经学了Java(用于Android开发)、Python和JavaScript(&HTML / CSS)(用于Web开发)。在这“路漫漫其修远兮”的学习过程中,我总结出了一条规律:要想对书中和教材里的编程知识融会贯通,那么就要好好研读3遍!是的,你没有听错,就是3遍!这种“3遍读书法”用在理解新语言新概念方面的效果尤其显著。出于“大家好才是真的好”的共享心态,在这里我将详细说说我的这种方法,希望能对各位有所裨益。

第一遍通读

第一次阅读编程类书籍,只要能对全文有一个正确的理解即可。第一次阅读,我会尽可能地跟着作者的思路走,看看他们用于展示的例子。我也学习,学习语法,学着去了解程序是如何构建起来的,当然可能并不全面。第一次通读的时候,我不会去写任何代码,即便我大多数的编程书籍都能看得懂。在第一次阅读之后,我并不觉得我能一下子一步登天立马就掌握了如何用新的语言写代码。但是,这会让我有一种掌握全局的良好感觉。(顺便说一句,我通常一次只读取一章或一节,而不是整本书)。

第二遍研读

这一次,我就要写代码了。我会把每一章节所举的例子,自己试着也用代码输一遍。我之所以要先通读,然后再回过头来好好研读的原因就是,这样不但能让我知道每一章节具体讲什么,还能明白这些代码能干什么。这样我就能对整本书的前因后果、来龙去脉掌握的清清楚楚、明明白白。不光理解得更透彻了,而且对于代码也不再是盲目地囫囵吞枣,而是有预见性地先在下面的段落中知道了它的作用,然后在回过头去再次重新研读。这一步,让我记住了语法。

第三遍精读

第三遍的时候,我就不再满足于书上的例子了,我会自己发散思维,试着举一反三,自己举例子来应用这些代码。也会去看看书上提出的练习,然后试着靠自己去解决这些问题。到了这个阶段,每一章节的语法都尽在我心,胸有成竹,我自信这些个问题统统不在话下。

附耳过来,一般人我不告诉他……

我就是靠着这个方法自己一步步学会了Java,Python和JavaScript的。另外一个学习编程语言的好方法是做项目。如果你想知道更多有关于Java语言中的用户界面和图形,那么不妨建立一个PVP国际象棋游戏,这会迫使你不得不学会有关于图形、动画、图形用户界面,以及事件驱动等等。

不过两者的不同之处在于,单纯去搞项目(特定语言)而不经过知识的灌溉,即使你也能完成项目,但是写出来的代码绝对没有我的“3遍读书法”精炼、简捷、准确、一针见血。你也不可能真正掌握这门编程语言。我的意思是,如果你精通C语言,那么最后你写出来的Java语言可能会带着C语言的风格,搞得四不像。为什么会这样呢?因为其实你并不是真正会Java,你只是想完成项目而已。

我建议初学者如果想学新的编程语言,最好是从书里去学,而不是跟着教程死记硬背。书里面一般都会有具体的思路,这有助于我们的理解。如果你听从了我的建议,并且正在看书,那么请不要局限于你的工作,除了书中的练习题,还可以尝试着做做自己的项目。另外,请一定要自己亲手写一遍代码,不要想当然地以为阅读和理解代码就够了——请谨记那是远远不够的!

我不是专业的软件开发人员,不过这种方法的的确确帮助了我学习编程/开发,让我得以揭开这个世界的神秘面纱,领略她的优雅风情。如果各位有更好的方法,欢迎留言,谢谢。

原文来源:codeceo
...全文
28672 228 打赏 收藏 转发到动态 举报
写回复
用AI写文章
228 条回复
切换为时间正序
请发表友善的回复…
发表回复
imgsq 2015-03-11
  • 打赏
  • 举报
回复
好好学习天天向上
yiqeng 2014-11-13
  • 打赏
  • 举报
回复
楼主好强大..
算盘 2014-11-13
  • 打赏
  • 举报
回复
楼主说的很好。
  • 打赏
  • 举报
回复
引用 232 楼 codeck 的回复:
个人觉得这篇文章有误人子弟的之嫌,首先并不是每个人都适合编程,在这条道路上很多人会半途而废,也有一部分也走不到至高点,最后剩下的只有少数几个人佼佼者,他们往往年纪轻轻在这方面就有卓越成就,思维超长,他们在公司、企业往往在程序的核心上起着决定性作用。我记得小米总监说过:“一个好的程序员胜任50个甚至100个程序员”。 有些新人他根本不懂书中讲的是什么,有什么用,这样的人看书也是浪费时间,而我当初也买了好多书,压根看不进去,后来无意看视频,跟着视频走,先把语法(for\if\while等)掌握好,然后就开始做项目,通过一个项目中可以学习很多函数、方法、思路等等,多做得几个项目后,一般人应该都具备程序员思维了,这时候面临的可能就不是语言问题,针对不同的项目会有更适合的语言,语言的灵魂就是算法。
我认为不是这样。任何人都可以成为程序员,但是尖端的程序员不是任何人都可以成为的,有天赋的才可能成为尖端的程序员。 大部分人只需要掌握某些熟练的编程技巧就可以普通的程序员。
  • 打赏
  • 举报
回复
值得收藏!!!
PCCYC 2014-11-11
  • 打赏
  • 举报
回复
个人觉得这篇文章有误人子弟的之嫌,首先并不是每个人都适合编程,在这条道路上很多人会半途而废,也有一部分也走不到至高点,最后剩下的只有少数几个人佼佼者,他们往往年纪轻轻在这方面就有卓越成就,思维超长,他们在公司、企业往往在程序的核心上起着决定性作用。我记得小米总监说过:“一个好的程序员胜任50个甚至100个程序员”。 有些新人他根本不懂书中讲的是什么,有什么用,这样的人看书也是浪费时间,而我当初也买了好多书,压根看不进去,后来无意看视频,跟着视频走,先把语法(for\if\while等)掌握好,然后就开始做项目,通过一个项目中可以学习很多函数、方法、思路等等,多做得几个项目后,一般人应该都具备程序员思维了,这时候面临的可能就不是语言问题,针对不同的项目会有更适合的语言,语言的灵魂就是算法。
Fluda 2014-11-08
  • 打赏
  • 举报
回复
这个方法适合在校学生或者是非程序员且自己的时间较多的小伙伴门
wyuldw 2014-11-06
  • 打赏
  • 举报
回复
不明觉厉,但好像动手才是最关键的吧!看太多遍不会想吐吗?
魏飞翔 2014-11-05
  • 打赏
  • 举报
回复
千灵域 2014-11-05
  • 打赏
  • 举报
回复
说的挺好的,我始终觉得要自己把所有的坑全部踩上一遍印象才是最深刻的。
snail010101 2014-11-04
  • 打赏
  • 举报
回复
坚持的下来才行啊 最近才知道坚持做一件事是有多难
LZJ39 2014-11-04
  • 打赏
  • 举报
回复
方法还不错,可以学学!
晚星2013 2014-11-04
  • 打赏
  • 举报
回复
谢谢楼主分享的经验
lizhuoliux 2014-11-02
  • 打赏
  • 举报
回复
楼主好强大。
竹间_ 2014-10-31
  • 打赏
  • 举报
回复
其实可以去上培训课
jitaji 2014-10-31
  • 打赏
  • 举报
回复
我很赞同楼主的学习方法,希望更多的人借鉴一下,不过不是每个人都能理解的,当然也不是每个人都是适合的。。。
Jackson-Huang 2014-10-31
  • 打赏
  • 举报
回复
个人感觉看完教程敲完,再思考,接着想象这些代码能用在哪里,就在把之前学习的运用上。楼主的观点也挺好的,每个对于学习的看法都有所不同,主要是要找到适合自己的,高效率的。只能不断地思考摸索。
qiusiu 2014-10-30
  • 打赏
  • 举报
回复
每一次拿起砖头那么厚的书就头疼,看不进。
mzg5050 2014-10-29
  • 打赏
  • 举报
回复
目标是2遍的飘过
eternalkelly 2014-10-28
  • 打赏
  • 举报
回复
找准方向,深入专研进去,总会有所建树。
加载更多回复(208)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧