编程学习方法

转载 2012年03月21日 17:23:35
 

老鸟对菜鸟的一些建议

原文作者  张逸   地址  http://www.cnblogs.com/wayfarer/archive/2010/11/12/1875504.html

首先声明,我可不是要做什么导师,这样崇高的身份与我无缘。我害怕自己才疏学浅,而误人子弟。导师是要李开复、唐骏之流才能做的。因为之前在一家公司和西南大学有一些业务来往,所以应邀到西南大学做过一次讲座,并为软件工程专业的学生开设了一学期《设计模式》课程,认识了一些热情洋溢的未来程序员。如今,他们也踏上了工作岗位。于是,碰到了一些问题。承他们看得起,居然想到给我发邮件,让我帮他解惑。回复了邮件后,发现这些问题也许对很多菜鸟而言,大约会是常见的困惑。站在一只老鸟的角度来看,我的回答或许能够在一定程度上解决他们的困惑。至少,总结我的教训与经验,在学习方法上能给予他们启发,或者说可以少走许多弯路。想当初,我才涉入这个行业时,不也希望有老鸟愿意给我指导意见么?既然如此,那就分享一下。可人老了,总喜欢教训人,所以害怕邮件中的口吻与态度,让人产生不满。所以先来这一段啰嗦的声明。

 

这位同学的问题如下:

 

我最近遇到了一些学习上的方法,想向您请教一下。
进公司实习后我发现,还是有太多太多的技术需要学习,我一直记得你曾经告诉我们的,为了要找工作,我们必须得对一个方向够熟练,够精通,我一直都是朝JAVA这个方向发展的。最近我在拼命的学习一些以前没接触的技术,比如EJB,extjs,JSF等,虽然这些没SSH火爆,可学习一下我想以后总会有用的,可是渐渐的我发现一个问题,就是一门技术只要我过一两个月不用,然后人家在问起时,头脑里就是一头雾水,这种遗忘性非常严重,比如Hibernate的validatiion,search 虽然我没将其用于实际的项目中,但是在八月份的时候,我已经好好的学习了,而且还自己动手写了一些demo的,可是现在让我想的话,我完全就忘了,我看到张老师讲课时说的很多技术问题非常熟悉,我想请你指导我一下,要通过哪些方法来避免我这种“遗忘性”,我知道的除了经常写这方面的代码和在博客上写写外,其它没什么方法了,但是如果经常这样做,势必又会耽误学习其它新技术的时间,谢谢张老师在闲暇之余花时间来看我的邮件。

 

我的回复如下:

 

你问的这个问题很典型,我相信很多人都遇见过。事实上,我也没有你想象的那么厉害,很多技术我以前掌握的也会忘记。这与人类大脑的遗忘曲线有关,符合科学规律,所以不必为此烦恼。

怎么解决这个问题呢?我想有以下几条:
1、一门技术必须多用才能掌握,最好的办法是在项目中运用。如果你在真实的项目中使用了某一项技术,那么印象就会非常深刻。即使忘记,也能很快捡起来。
2、如果要学新的技术,仅仅是为了拓宽自己的知识结构,那肯定没有时间对这些技术做大量的练习了。这时候,就要对技术进行分类。看你掌握这门技术的目的。如果技术仅仅是一种工具,我认为只需要了解它能做什么,就OK了。因为即使你把它的整个使用方法搞懂,久了不用也会忘记。如果你知道这个技术能做什么,当做项目时需要用到,再去查阅相关的文档和资料,完全足以应付。如果这门技术非常重要,甚至有许多可借鉴之处,那么在搞清楚它能做什么的同时,还应该理解它的原理、思想以及实现的方法。
3、养成随时记录心得和教训的习惯。不管是项目中,还是学习过程中,凡是认为有价值之处,都有必要记录下来。不一定要发到博客上,只要保存起来就好。不过,在保存的时候,要做好合理的分类,以便于今后查阅。不要觉得这个耽误时间,它是非常有用的。我以前就没有充分认识到,导致之前做的项目碰到的很多问题,当时解决了就完了。到现在都无法回忆起来了。现在的我就告诫自己,一定要做到这一点。所谓“磨刀不误砍柴工”,耽误的这点时间是完全值得的。如果你只是不停地学,却不知道积累,那就和猴子掰包谷没有什么区别了。此外,这样的做法还有利于磨练你的文档编写能力、分类和总结的能力。重新整理这些内容,也有助于你再一次理清自己的思路。真的是非常有价值的做法。我记得以前在课堂上也给你们说过。事实上,Martin Fowler的《重构》一书,之所以能写成,就在于他遵循了这一做法。最近,我刚刚完成《重构》一书的点评,其中大量的点评内容也是我采取这种方式日积月累获得的。
4、最后一点,是学会选择。软件技术实在太多。要弄清楚你自己的目标。最重要的是要确定自己的职业发展,专业的说法叫“职业生涯规划”。是技术,管理,还是二者兼顾。然后,再有目的性的去学习知识。即使是技术领域,也有很多发展方向:网络、数据库、底层算法、框架、架构、UI设计,性能优化,系统集成,太多太多。不要漫无目的地学,这样也好,那样也好,所以都去学,结果学了又没用上。所以,要先确定目标,然后做出选择,再制定计划,包括短期计划和长期计划。

希望这对你能有帮助。保持联系!

一个非常正确且强大的编程学习方法

一旦你发现一个学习工具,它采用自上而下的方法,那么什么是最好的学习方法?我对这有一个具有争议性的观点:我认为尽可能快地记住基础知识对初学者而言是绝对有必要的。当成为更高级的学习者,记忆很快成为一个被丢...
  • wuchengzeng
  • wuchengzeng
  • 2015年08月25日 13:46
  • 3240

学习编程语言最好的方法是什么

每个人都有自己独特的学习模式,我们要做的第一件事,就是发现自己的学习模式。你的方式是什么?...
  • foruok
  • foruok
  • 2016年04月07日 07:24
  • 15626

一篇非常好的c++学习方法,转自贴吧

原帖地址:点击打开链接http://tieba.baidu.com/p/1113064961      Javascript是世界上最受误解的语言,其实C++何尝不是。坊间流传的错误的C++学习方法一...
  • lsgqjh
  • lsgqjh
  • 2015年04月10日 20:06
  • 4523

编程学习方法

  • 2013年04月05日 13:11
  • 58KB
  • 下载

编程学习方法总结——仅此献给自己

自己大学上学的时候浪费了太多时间和精力在一些无用的东西上了。到底什么占用了我很多的时间和精力,仅仅是两个字:选择。 大学四年我始终没有确定两个选择,一个是:选择学习什么编程语言。或者说我什么编程语言都...
  • misakahina
  • misakahina
  • 2014年02月06日 22:44
  • 1019

面向测试用例的编程思想和学习方法

关键词: 演绎法实验数据 图灵的模仿游戏 构造好的用例 触发各层逻辑 分析问题 检验结果     困难的问题分析起来其实是很有意思的,尤其是已经有答案的问题,如果回溯回去分析一遍往往会有脑洞大开的感觉...
  • u013458516
  • u013458516
  • 2015年11月01日 01:21
  • 415

最快速的编程学习方法究竟是什么?

最快速的编程学习方法究竟是什么?这是许多初学编程者的问题。
  • mm637827
  • mm637827
  • 2014年08月08日 17:44
  • 532

论编程学习方法的重要性

1、每日“多省吾身”Question 1:明天会上哪些内容的课程呢?   如果可以的话,你可以拷贝到往届学长学姐们的笔记,每天利用5分钟的时间大致浏览第二天的课程,从而能够从全局把握课程结构,从而使...
  • Thinkinsupre
  • Thinkinsupre
  • 2015年07月22日 23:09
  • 369

谈新技术学习方法-如何学习一门新技术新编程语言

转自:http://sunxiunan.com/?p=1597 学习一门编程语言或者编程技术的方式基本上是这样一个流程: 1,对学习这门语言或者技术的必要性进行评估。比如你是工作需要,...
  • u011374867
  • u011374867
  • 2013年08月28日 19:07
  • 716

我学习编程的好的学习方法!

我发现了自己学习程序的一套好的学习方法: 在此和大家分享一下。 我们要看一些类或者一些好的算法是怎么实现的,但是又苦于他们的复杂与庞大,我们该如何学习,消化并掌握呢? 我的学习方法就是: 第一步...
  • cwj649956781
  • cwj649956781
  • 2011年12月30日 01:19
  • 1374
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程学习方法
举报原因:
原因补充:

(最多只允许输入30个字)