学习过程中一些心得

来源:互联网 发布:淘宝客如何骗取佣金 编辑:程序博客网 时间:2024/05/16 00:57

最近终于下定决心学一门”外语“了。整个学习过程中,有很多思想的火花。记录下来。总结才能有进步。归纳起来就两点。

1、升华了个人编程能力和思考方式

      写代码的过程中,自己很容易被以前的思维定势去转迷糊了。比如一个迭代,一个循环。总要一步一步的带进去。实际上。erlang的语法,足够做到你怎么想,这个迭代思路没有错。那就没有错。压根就不用去迭代验证。所以给我带来一种新的编程方式:

     对于一个业务逻辑,先考虑他的算法。然后用erlang写出来。反正代码够简洁,如果这个算法本身思维没有错。那就不用去验证了。直接考虑优化这个算法中涉及到的数据结构以及算法本身的效率性。

    其实这不能算新的编程方式,只是我个人感觉这是自我编程能力的一种升华。以前写代码就是先万兆业务逻辑很笨拙的写出整个流程。然后发现代码虽然能重构。但优化的空间变小了。由于项目的周期压力,没有经历去验证和审视。流程中间或多或少会有错误。但如果先把整个流程抛开,细致的分成一个一个得模组。针对这些模组块进行编程。效率和正确率都会得到提升。

2、学习Erlang过程中让我明白了为什么最近几年我很难去学另外一门语言

   以前尝试学过C和C++。书也买了几本。但就是坚持不下来,也学不进去。当时的解释是我太浮躁了。不适合学新的东西了。真是这样吗?错了!!。正巧前不久看了一本书《娱乐至死》,讲整个世界的信息往碎片化的方向在发展。而正巧这个学习语言的过程,让我突然明悟了这本书所说的精华以及我前面的问题在哪里。

   信息碎片化,就说明身边的信息不是整合在一起。他们相互之间没有任何逻辑关系。你5分钟之前看了某地方地震,可能5分钟之后你又看到一条很搞笑的娱乐新闻。这其实和我们学习编程是很有关联性的。我想学一门新的语言,假设我选择了C作为新的语种。我原来的学习方式是这样的。买一本书,然后在家边看书边实践。这个过程本身没有问题。但是,最关键的是现在中间多了个东西:搜索引擎

  为什么说多的这个东西影响了整个学习过程?我个人而言,是我不在家的时候,没法看书的时候,不在自己电脑边上的时候。无聊啊,想学点东西。好吧。那就上网查查C的一些信息。这个时候问题就出现了。铺天盖地的C语言的教程云云。实际上到这步还是没问题。问题在于里面的信息。

  大家都知道的,搜索引擎搜出来的信息之间是没有任何的关联性。那么,我一个初学者。看网上众多的C的教程。最后结果是什么?

  被各种术语搞得晕头转向。内存控制,堆,伐,进程,网络协议等等等。还偏偏这些信息之间没有任何关联性。有人在教程里面提到堆里面变量的操作。然后总结一堆。。。但关键点。堆是啥没有说。有人在教程里说用C做网络服务端很好很强大,但偏偏没有说实例代码中所有关联到的知识点。那这样的结果又是什么?

  可想而知,我被搞迷糊了。倒地从哪学起?恩,内存重要。我要注意内存的控制。恩,C的头文件编写也很重要,一定要学好了。好像有人说编译器之间的区别也很重要。。boots比stl有前途多了。。等等等等。但实际上,我需要知道的是什么?C的基础。。仅此而已。

  前不久还看了一本书,只看了开头。后面没仔细看。是说时间管理的。中间有一个论证说明了:人的大脑是会拒绝你所讨厌的事务的,而且是自动屏蔽掉。也就是你上午看的东西,下午就给忘了。那我上面说的这种情况下。。是不是C就成了潜意识里面的很难的东西了呢?

  而学erlang的时候反而没有这种困扰。原因很简单,erlang的资料偏少。而且正巧这几天特别忙,javaeye和csdn里面帖子就那么几个,还都是08,09年的信息。虽然多多少少有类似的垃圾信息,但完全和我没关系 :)。我可以每天下班了,打开编辑器,然后安安心心看一章书,然后写2,3个小时代码。整个知识体系可以很快的在大脑里面简历起来。

  综上所述,学习新的语言。尤其是在打基础的时候。原理搜索引擎。除非你没懂。有一些很针对性的问题。才去使用搜索引擎。

原创粉丝点击