Hello World
Spiga

关于基础与能力,谈一点我的看法

2009-04-25 00:14 by 老赵, 26650 visits

时不时会有朋友写信问老赵学习上的一些迷茫,其中都有一些共性。例如说不知道该如何学习,说不知道朝哪个方向前进。也例如大家虽然基本上都知道“算法”的重要性,但是却总觉平时用不到。说它锻炼能力,但“能力”是看不见摸不着的,学着学着就会“麻木”,感觉就“学不进去”了。当然这方面有几个原因,有主观也有客观的,有需要周围环境的改变,也有需要自己精神上“强壮度”的提高。这里呢,我们有时就不提“算法”这个太具体的名词了,而使用“基础”来表示这一类“似乎重要,但不知道重要在哪里”的东西。

还是先从算法,数据结构这类大家从学校里首先都会学到的东西谈起吧。如果说平时用不到算法,那肯定是不可能的。什么是算法?解决问题的方法都是算法,程序中任何对象及其关系都是数据结果。当然您可能会说,这里的说的算法和数据结构是指“有名”的那种,例如大家都耳熟能详的快速排序,图、树等等。当然,说到这个份上,可能就是要分两条路走了。一,您的确只是一直在做普通的CRUD;二,您对于这些知识理解不够,而无法感受到对它们的使用,很多时候我们运用所学的东西是自然而然的——更直接地说出来可能不太中听:“为您掌握的不好,自然觉得没用”。

打个比方,基本上所有的系统都会有“分类系统”,一个大分类下面有多个子分类,子分类下还会有更多子分类。那么现在有了个需求:由于需要垂直地列在一个下拉框中供用户选择,而分类之间的关系使用缩进来表示。在这里分类结构其实就是一颗树,而这个任务其实就是对树的深度优先遍历,于是可能您对书本印象比较深刻的话,就会说用递归,用回溯法。但是不少朋友虽然会解决这问题,解决的方式也不错,可是却没有意识到自己在用什么算法或是数据结构——只是解决了一个问题而已。这其实也比较正常,如果您回忆一下可能就会想起来,学习算法往往都会是依靠“演变”来的,只要具备了一定了逻辑思考能力,算法和数据结构在“一定程度”上也是较为“自然”的东西,并非需要死记硬背。老赵认识个朋友,在做题的过程中把AVL树给彻底忘了——是彻底忘了有这个东西,但是他发现二叉树的退化之后,就自己设法通过旋转来保持平衡。当然这种演变是一种“能力”,我们稍后再详谈。

不过很多时候出现的情况往往都是“不知道”导致“不会做”,至少也是“做不好”。打个比方,在您的程序中会用到大量的容器,您知道System.Collections命名空间下的容器都是用什么数据结构实现,适合什么样的操作吗?如果要求您在图片上打印文字,并且按照固定长度换行,您会使用类似二分法的O(logN)算法,还是直接遍历的O(N)算法呢?再比如把表达式树用作缓存,如果您不了解前缀树二叉搜索树,以及哈希表的实现方式,可能就只能做出字符串这个低效的选择了。您可能又会想到说,“平时项目真的遇不到”,那么老赵还是重复刚才的话“这个可以遇到”——只是您不知道有其他选择而已。

如果跳出所谓算法和数据结构,其实任何的基础对您工作的作用大都类似。按照老赵之前举过的例子,很多东西都是这样:

  • 了解Windows,才能写出更好的.NET应用程序,或者作postmortem调试。
  • 了解计算机体系结构,才能在多CPU,多核时代写出真正高效而又正确的应用程序。
  • 了解内存分页或线程调度方式,对您应用中设计缓存策略或任务分配有很高的参考价值。
  • ……

能够从纷繁复杂的选择之中作出最合理的判断和决策是一种能力,这需要对大量事物进行了解,分析,沉淀,并且能够在脑海中形成映射。如果把人脑看作是一种存储器的话,其中可以就是在一个个单元格中存放着两大类信息:“知识”和“能力”。“知识”可以把问题转化为解决方案,而“能力”则是把知识转化为另一种知识。老赵不知道人脑在得到一个问题的时候是怎么去寻找知识的,这涉及到不同人的索引方式。但是无论是哪种方式,信息越多,查找一次所需要的时间也势必越多。如果没有找到直接能够解决问题的“知识”,则需要一个或多个“能力”把已有知识通过一次或多次转化为另一种,可能是我们原本所没有的知识,而这种能力,我们经常会把他们叫做“推理”,“演变”或者是“融会贯通”能力。

这也就是所谓“能力”最为关键的作用,它们可能也是人类在无法借助外力的情况下唯一获取新知识的途径。

我们假设人脑可以存放的总信息数量确定,在这种情况下,知识太多,能力便少,则获得新知识的成本增加;知识太少,能力虽多,却在解决问题时都需要“推理演变”一番,这也是一种浪费,就好比很少有人会用“公理”去证明一个命题,因为使用“定理”或“推论”效率可以更高。因此,把“知识”和“能力”进行分配是一种艺术,只有达到一种和谐的平衡,一个人才能更好更快地解决问题。

老赵很笨,没有学习的诀窍,唯“埋头苦学”,“勤于思考”把字箴言尔,对我来说无论是“知识”和“能力”都由此而来。有朋友可能会说,我平时不主动学习,等需要的时候再去了解。老赵不同意这个观点,因为这里有个悖论:如果您不自主学习,又如何可以在真正遇到问题的时候知道该使用什么东西呢?做出合适的选择是一个需要积累的过程,而如果不主动学习,很可能最终只会造成重复劳动。就像刚才提到那样,我们需要对大量事物进行了解,分析,沉淀。可能有时候学不进去也要学吧,可能发现美的那一刻,只是因为量变终于引起质变了。

如果您不知道学什么,把大学课本翻出来从头学习,您一定会有所收获的。最近我也在构思一个《老赵书托》系列,希望可以推荐一些好书,对大家有所帮助。


其实引发老赵写下这篇文章的原因是一次(或者说是几次)面试。某培训机构总是打电话来想要“介绍”他们一些学生来公司面试,其语言诚恳让人不忍拒绝。可是一次又一次强调我们需要基础扎实的学生,但是每一次带来的让人很不满意。我在想,他们花了那么长时间读完大学,然后再花大笔大笔的钱去培训机构“进修”,那么多年下来还是如此水平,连我都不由得为他们心痛。当然这样的情况是普遍状况,与是否是某培训机构的学生无关,这是我进行数百次面试中所发现的共同点。例如刚才培训机构的学生,没有一个人能够把一个数组中所有元素反序一下,而一题简单的字符串分割就能考倒9成的面试者。这样的能力让人如何可以接受?理由更加荒唐,有的说“我是学测试的,不是做专业开发的”,“我是做应用的,不熟悉算法”——这种问题算是专业开发吗?算是算法吗?

真心希望现在正在阅读文章的您,就算可以不屑这篇文章,也请你停留片刻,思考一下,您的状况究竟如何呢?

Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

106 条回复

  1. 老赵
    admin
    链接

    老赵 2009-04-25 00:18:00

    刚开始时情绪澎湃,写着写着忽然没有感觉了

  2. chegan
    *.*.*.*
    链接

    chegan 2009-04-25 00:21:00

    基础很重要阿,在强调都不过分。
    这个真帅阿,不是ps过的吧

  3. Artech
    *.*.*.*
    链接

    Artech 2009-04-25 00:26:00

    学习是一种习惯,不需要太多功利!

  4. 老赵
    admin
    链接

    老赵 2009-04-25 00:27:00

    --引用--------------------------------------------------
    Artech: 学习是一种习惯,不需要太多功利!
    --------------------------------------------------------
    只要能保持学习,功利就功利吧。

  5. 寂寞高手1[未注册用户]
    *.*.*.*
    链接

    寂寞高手1[未注册用户] 2009-04-25 00:30:00

    目标:
    子目标:
    操作步骤:
    前提条件
    评测手段:
    milestone:
    成功概率:

    如果按这样的提纲写,可能会更有感觉。

  6. 老赵
    admin
    链接

    老赵 2009-04-25 00:38:00

    @寂寞高手1
    这篇文章其实就是随感,你这么搞太正式,搞不动。

  7. Astral.Road
    *.*.*.*
    链接

    Astral.Road 2009-04-25 00:45:00

    唔,基本很多东西 在没用到的时候的确是很难找到针对的应用,很多需要组合变形.
    的确是很枯燥.
    在稍微有点经验的时候, 或者做了一段时间的开发后, 再去翻翻一些基础的东西,可能会比较有收获.

    不过老赵最后举例的那些同学,的确是比较汗了些.
    以前偶尔有面人也是问分割字符串,或者字符串里有几个某字母. ^_^

  8. 老赵
    admin
    链接

    老赵 2009-04-25 00:47:00

    @Astral.Road
    我想说,他们不觉得浪费时间浪费精力吗?
    还有他们连这些都不会,究竟可以做什么?这几年做了什么?

  9. Kuoching Ju
    *.*.*.*
    链接

    Kuoching Ju 2009-04-25 00:50:00

    走过一段路后,才发现基础是那么的重要!

  10. 枫
    *.*.*.*
    链接

    2009-04-25 00:57:00

    我觉得首先是要能够做出来,然后才会去想如何做的更好

    基础能帮你做的更好,但能不能做出来则是靠经验,这也是为什么相当一部分人经历了很多才觉得基础很重要。

    其实我觉得呐喊能起到的用处很有限,之前我也会对你说的这些不以为然,但现在我却很想去补一些基础性的东西。

  11. James.Ying
    *.*.*.*
    链接

    James.Ying 2009-04-25 01:04:00

    没学习过算法和数据结构,现在要抓紧学一下了,不过很多东西都很难理解,或许没学过大学数学也有关系的吧

  12. Astral.Road
    *.*.*.*
    链接

    Astral.Road 2009-04-25 01:04:00

    @Jeffrey Zhao
    自己汗颜一下, 其实算起来大学里也浪费了一半还多的时间. 虽然不会被列入老赵说的那类的,但是也够受的,估计就混日子.
    好在断断续续的还算在前进, 现在还算是自己知道要学什么.做什么.看起来至少并不大担心小康问题. 但是想起来完全白白浪费的时间,还是时常后悔.

    这可能不只是基础和能力的问题,也不只是学习的问题, 更多的是对人生的认识吧. 最无聊的说, 你总是得赚钱养活自己的. 我想他们都没认识到,他们即将需要靠自己填饱自己的肚子.
    这问题 我也有怨念过, 抱怨教育体制 还是家庭教育还是社会,或者真正错的是自己? 浑浑噩噩的过日子的总是更多一些吧. 所以 sigh.

  13. 老赵
    admin
    链接

    老赵 2009-04-25 01:12:00

    最近我也在构思一个《老赵书托》系列,希望可以推荐一些好书,对大家有所帮助。

  14. 周强
    *.*.*.*
    链接

    周强 2009-04-25 01:46:00

    @枫
    有同感。
    基础知识的学习个人感觉是比较枯燥的,关键是它在相对来说短时间内无法让人有成就感,久而久之,自然就失去学习的动力了。当然,也不乏有一些定力与信念较强的人。

    对于绝大多数定力不够强的人来说,我觉得大可不必遵循“先基础,后应用”这样的法则来学习。可以尝试一下“先应用,后基础”,当然,在这样做之前您一定要有“思考和钻研”的精神,思考可以让你发现问题,而钻研可以让你解决问题。

  15. Astral.Road
    *.*.*.*
    链接

    Astral.Road 2009-04-25 02:08:00

    数据结构 算法一类的,虽然会有说数学要求什么的, 不过 看过的大部分(其实也没多少)好像都没这样的感觉,至少我大学高数也是惨淡的很.
    很多数据结构 或者算法, 是很有趣的, 或者是精致或者是灵巧,让人赞叹. 甚至都可以当娱乐.
    有时候,唔,资料,教材上写的东西,很多时候只说明了本身, 让人很难联系到实际应用,会产生一种这玩意是干嘛的,这样又能怎么样的想法.于是理解起来的确是很痛苦. 我遇到这样的情况的时候,可能会仔细看一遍 并不大强求. 然后过一些时间再看, 在这一段时间里可能会遇到应用,也可能在思考一些解决方案的时候尝试过这个不是很好理解的东西, 也可能完全没办法,那么再看. 总之一次一次又一次, 的确没什么非常好的办法. 或者是有好的指导老师,好的书, 能够用很好的示例说明. 那样就很享受了.
    PS:实在是比较痛恨大学的教科书. 错误不说,还有一把的自己解释自己的示例.大家都望而却步了,老师水平是不错,但是不会讲课,想听的都只能干瞪眼. 于是 全年级成绩开根号再乘10. ^_^

  16. pythonic
    *.*.*.*
    链接

    pythonic 2009-04-25 08:37:00

    期待您的《老赵书托》系列……

  17. weicheng3[未注册用户]
    *.*.*.*
    链接

    weicheng3[未注册用户] 2009-04-25 08:48:00

    说的很有条理啊,以后有人要是问如何学习,如何选择努力方向,让人看老赵这篇文章就ok了.

  18. Haozes
    *.*.*.*
    链接

    Haozes 2009-04-25 08:51:00

    《老赵书托》系列
    用豆瓣豆列列出来最好哇.

  19. ben123[未注册用户]
    *.*.*.*
    链接

    ben123[未注册用户] 2009-04-25 09:00:00

    每次看老赵说这些我就老反省自己。希望系列早点出来.

  20. 冰の酷龙
    *.*.*.*
    链接

    冰の酷龙 2009-04-25 09:22:00

    看了老赵这篇文章,心里总算舒服些了,我一直希望自己基础能够好一些,再好一些,我看过数据结构后更是如此。现在写程序比以前舒服多了,不用老是因为解决一个问题而不停百度谷歌了。谢谢老赵如此鼓舞人的文章,也希望你的书早点出来。
    我这里也推荐一本,编程珠玑,虽然还没看完,但是感觉作者写程序的思路不拘一格。很适合自我思考。

  21. xjb
    *.*.*.*
    链接

    xjb 2009-04-25 09:23:00

    和老赵学习。
    “只是您不知道有其他选择而已”。
    我自以为是老鸟了,但比较偷懒。

  22. yonbin
    *.*.*.*
    链接

    yonbin 2009-04-25 10:23:00

    基础从何学起呢?

  23. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-04-25 11:25:00

    我说点不好听的吧.

    如果你拿着一本数据结构或者算法的书,或者任何很这个行业有关的书,但是看不下去的话,离开这个行业吧。
    如果你上了大学,又参加了培训,还是找不到工作的话,离开这个行业吧。
    如果你总是觉得迷茫,同时又总在迷茫中浪费时间来更迷茫的话,离开这个行业吧。

    因为你在这里得不到想要的东西,早点离开对自己比较好。

    基础不好是为什么呢?不重视,不听话,没兴趣,浮躁,觉得太难?
    不重视,不听话-大学该学的东西不好好学,出了学校呢?别人的意见你还会听么。
    没兴趣-没兴趣是无法在这个行业存活的
    浮躁 - 能存活,但是不会活的很好
    觉得太难-你没这方面的能力,或者不想努力

    好吧,我承认任何人在大学里的时候都会犯傻的,因为年轻嘛,所以已经毕业的现在开始努力还不算太晚;对于还在学校的,这么多过来人都说基础很重要,如果你还不开始重视的话,那就没办法了,迟早有一天你会后悔的。

  24. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-04-25 11:26:00

    --引用--------------------------------------------------
    yonbin: 基础从何学起呢?
    --------------------------------------------------------
    从大学课程表开始

  25. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-04-25 11:28:00

    --引用--------------------------------------------------
    Jeffrey Zhao: 最近我也在构思一个《老赵书托》系列,希望可以推荐一些好书,对大家有所帮助。
    --------------------------------------------------------
    我希望不会有太多的书在这个列表了,人在选择太多的时候,会迷茫和浮躁的。

  26. 老赵
    admin
    链接

    老赵 2009-04-25 11:52:00

    --引用--------------------------------------------------
    冰の酷龙: 我这里也推荐一本,编程珠玑,虽然还没看完,但是感觉作者写程序的思路不拘一格。很适合自我思考。
    --------------------------------------------------------
    编程珠玑我肯定会推荐的,大师的思想光辉照万代啊。

  27. 老赵
    admin
    链接

    老赵 2009-04-25 11:53:00

    --引用--------------------------------------------------
    Nick Wang: 我希望不会有太多的书在这个列表了,人在选择太多的时候,会迷茫和浮躁的。
    --------------------------------------------------------
    不会多的,我会每篇文章推荐一本,会仔细地说,不会一句话带过。

  28. Ivan-Yan
    *.*.*.*
    链接

    Ivan-Yan 2009-04-25 12:29:00

    期待老赵的书籍推荐~

  29. Kevin-moon
    *.*.*.*
    链接

    Kevin-moon 2009-04-25 12:33:00

    @Jeffrey Zhao
    不会多的,我会每篇文章推荐一本,会仔细地说,不会一句话带过。
    ---------------------------------------------
    期待中...

  30. 张荣华
    *.*.*.*
    链接

    张荣华 2009-04-25 12:54:00

    还是比较期待老赵的书托系列,现在买书只能看排行,这个还是比较有用的。
    另外个人感觉基础就像内功,会无形的影响你。

  31. 王德水
    *.*.*.*
    链接

    王德水 2009-04-25 13:07:00

    这些都学了,但是忘了,为什么呢?

    大学时数学觉得学得还可以,但是突然提起来就忘了,你要问我cos是啥意思,我可能都不记得了

    很多都学了,但学了有忘了,因为工作当中确实用的少呀

  32. 一舟
    *.*.*.*
    链接

    一舟 2009-04-25 13:07:00

    刚刚看楼主文中提到的一篇帖子(了解计算机体系结构),里面讲到加总两个算法。呵呵。我看后很受启发,不过我的理解方式很奇特。反正堆栈里面的数据都是一个个压进去,再一个个弹出来,所以更彻底的高速计算应该如下:


    int SumC(int[,] array, int n)
    {
    int sum = 0;
    for (int x = n-1; x >= 0; x--)
    {
    for (int y = n-1; y >=0 ; y--)
    {
    sum += array[x, y];
    }
    }

    return sum;
    }

    测试结果:
    SumC: 00:00:01.0085138
    SumB: 00:00:01.1931621

  33. 蓝天之上
    *.*.*.*
    链接

    蓝天之上 2009-04-25 13:40:00

    @王德水
    学校在学习,培训业学习,但是在不知不觉中确实会用到,但是得从头开始研究!总是这样不停反复,所以需要向初中学习数学那样,把提取公因式。。等,数据结构知识必须一样深入骨髓!这样才会走的稳走得快...
    一样迷茫中//....明知道基础重要确实不知道如何学习,容易犯懒,浅尝辄止的最求新东西!~

  34. GeorgeHuang
    *.*.*.*
    链接

    GeorgeHuang 2009-04-25 14:02:00

    迷茫中,有些地方说到了我的弱点,但貌似没有解决我的困惑,看来还是要我自己去寻找。

  35. 老赵
    admin
    链接

    老赵 2009-04-25 14:05:00

    --引用--------------------------------------------------
    Nick Wang: 我说点不好听的吧.

    如果你拿着一本数据结构或者算法的书,或者任何很这个行业有关的书,但是看不下去的话,离开这个行业吧。
    如果你上了大学,又参加了培训,还是找不到工作的话,离开这个行业吧。
    如果你总是觉得迷茫,同时又总在迷茫中浪费时间来更迷茫的话,离开这个行业吧。

    因为你在这里得不到想要的东西,早点离开对自己比较好。

    基础不好是为什么呢?不重视,不听话,没兴趣,浮躁,觉得太难?
    不重视,不听话-大学该学的东西不好好学,出了学校呢?别人的意见你还会听么。
    没兴趣-没兴趣是无法在这个行业存活的
    浮躁 - 能存活,但是不会活的很好
    觉得太难-你没这方面的能力,或者不想努力

    好吧,我承认任何人在大学里的时候都会犯傻的,因为年轻嘛,所以已经毕业的现在开始努力还不算太晚;对于还在学校的,这么多过来人都说基础很重要,如果你还不开始重视的话,那就没办法了,迟早有一天你会后悔的。
    --------------------------------------------------------
    很直,基本同意。

  36. 老赵
    admin
    链接

    老赵 2009-04-25 14:06:00

    @一舟
    这个性能更好的原因是什么?

  37. T2噬菌体
    *.*.*.*
    链接

    T2噬菌体 2009-04-25 14:11:00

    从高中开始写程序,至今8年;从大学开始正式学习计算机专业,至今5年。这段时间,从未间断数学的学习。现在读了研究生,更是庆幸自己对数学的重视。现在研究中遇到的很多问题,如果没有良好的数学功底,就会举步维艰。

    如果说在计算机学习中,对我最重要的两门课。我一定选择是离散数学和算法分析。

    最近正在研究模糊性态的软件架构决策,用到的依然是本科学习的数学知识,如概率统计、模糊数学、数理逻辑、代数结构都是不可或缺的。

  38. 戈多
    *.*.*.*
    链接

    戈多 2009-04-25 14:29:00

    头像是谁。。。。。。。。。。。。。。。

  39. 过路人[未注册用户]
    *.*.*.*
    链接

    过路人[未注册用户] 2009-04-25 14:31:00

    呵呵,基础基础!老赵在文章中提到的算法,.NET都是自带的,现在很多的培训机构也都是培训些最基础的东西,数据结构估计是不会教的。

  40. 一舟
    *.*.*.*
    链接

    一舟 2009-04-25 14:42:00

    --引用--------------------------------------------------
    Jeffrey Zhao: @一舟
    这个性能更好的原因是什么?
    --------------------------------------------------------
    呵呵,班門弄斧了

    我以前一直喜欢倒序计算,也是很久以前看过一本说算法优化的书。具体的原因太复杂,浅显一点说吧。
    对栈(我对堆和栈经常混了)操作就是先进后出,所以赋值时一个个Push进去,而取值时一个个Pop出来,有点像Msmq一样,这个算法刚好符合它的push ,pop顺序,所以它在栈上操作没有跳跃,速度非常快。

    另外,我用realease模式测试的结果如下:

    SumC: 00:00:00.5307812
    SumB: 00:00:00.7840975

  41. 老赵
    admin
    链接

    老赵 2009-04-25 14:55:00

    --引用--------------------------------------------------
    过路人: 呵呵,基础基础!老赵在文章中提到的算法,.NET都是自带的,现在很多的培训机构也都是培训些最基础的东西,数据结构估计是不会教的。
    --------------------------------------------------------
    框架包含再多,也不能足够应对各种应用程序需求。

  42. 老赵
    admin
    链接

    老赵 2009-04-25 14:55:00

    @一舟
    谢谢说明,似乎有所理解了。:)

  43. 一舟
    *.*.*.*
    链接

    一舟 2009-04-25 15:10:00

    --引用--------------------------------------------------
    Jeffrey Zhao: @一舟
    谢谢说明,似乎有所理解了。:)
    --------------------------------------------------------
    献丑了。希望不会给大家带来误导!我也是只知其然,希望楼主抽空解析一下哦,让我们大家明白所以然!
    你那个例子比较经典啊!

  44. xyunsh[未注册用户]
    *.*.*.*
    链接

    xyunsh[未注册用户] 2009-04-25 16:33:00

    期待《老赵书托》

  45. yeah[未注册用户]
    *.*.*.*
    链接

    yeah[未注册用户] 2009-04-25 17:19:00

    勤思考是好事。

  46. 幸存者[未注册用户]
    *.*.*.*
    链接

    幸存者[未注册用户] 2009-04-25 17:59:00

    --引用--------------------------------------------------
    Nick Wang: 我说点不好听的吧.

    如果你拿着一本数据结构或者算法的书,或者任何很这个行业有关的书,但是看不下去的话,离开这个行业吧。
    如果你上了大学,又参加了培训,还是找不到工作的话,离开这个行业吧。
    如果你总是觉得迷茫,同时又总在迷茫中浪费时间来更迷茫的话,离开这个行业吧。

    因为你在这里得不到想要的东西,早点离开对自己比较好。

    基础不好是为什么呢?不重视,不听话,没兴趣,浮躁,觉得太难?
    不重视,不听话-大学该学的东西不好好学,出了学校呢?别人的意见你还会听么。
    没兴趣-没兴趣是无法在这个行业存活的
    浮躁 - 能存活,但是不会活的很好
    觉得太难-你没这方面的能力,或者不想努力

    好吧,我承认任何人在大学里的时候都会犯傻的,因为年轻嘛,所以已经毕业的现在开始努力还不算太晚;对于还在学校的,这么多过来人都说基础很重要,如果你还不开始重视的话,那就没办法了,迟早有一天你会后悔的。
    --------------------------------------------------------
    你的意思是说,如果一个人不适合这个行业,他就没有在这个行业生存的权利?

    我觉得任何人都有能进入任何行业,前提是:
    1,有能力在这个行业生存
    2,有能力承担随之而来的后果

  47. DiryBoy
    *.*.*.*
    链接

    DiryBoy 2009-04-25 19:40:00

    [QUOTE]------------------
    我们假设人脑可以存放的总信息数量确定,在这种情况下,知识太多,能力便少,则获得新知识的成本增加;知识太少,能力虽多,却在解决问题时都需要“推理演变”一番,这也是一种浪费,就好比很少有人会用“公理”去证明一个命题,因为使用“定理”或“推论”效率可以更高。因此,把“知识”和“能力”进行分配是一种艺术,只有达到一种和谐的平衡,一个人才能更好更快地解决问题。
    -------------------[/QUOTE]
    一直就想找这种平衡。知识方面,曾经因为对中国教育的成见等原因尽管很喜欢计算机却没有报计算机专业,现在没学到多少基础知识,只能恶补。知识这东西,人家系统地跟我讲的时候,我可能会因为思维方式跟人家组织的方式不同而感到不爽,然后不接受,自己单干去自学,却又很难系统起来,更多时候也许应该是一种 Merge 的过程吧,就是从各种说法各种方式中提取出好的,去掉不好的,一点一点地积累起来。能力方面,我觉得要多看多动手多体会才能培养起来的。微软能有气魄出新东西,如果单是跟着学就觉得辛苦的话,这就是差距。

  48. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-04-25 20:37:00


    --------------------------------------------------------
    你的意思是说,如果一个人不适合这个行业,他就没有在这个行业生存的权利?

    我觉得任何人都有能进入任何行业,前提是:
    1,有能力在这个行业生存
    2,有能力承担随之而来的后果
    --------------------------------------------------------
    我没说过生存权利的话题,谁都有权利选择,谁都有权利决定自己的事,只是如果你本来不适合,你很有可能得不到你所希望的东西,那最好还是不要浪费太多时间在这,不如找个适合的方向和行业发展。

  49. 流衡
    *.*.*.*
    链接

    流衡 2009-04-25 21:20:00

    期待 《老赵书托》,呵呵!

  50. xiao_p(未登录)[未注册用户]
    *.*.*.*
    链接

    xiao_p(未登录)[未注册用户] 2009-04-25 22:25:00

    我总感觉基础应该分为两部分,一部分是在某个方向上构建的知识体系,比如软件开发的知识体系,另外一部分则是人的思维过程,思维习惯,以及行为习惯和对待问题的态度。

    知识体系的构建无它,唯有埋下头来认真的去学习和思考,对这个行业广播的见闻和某一领域深度的挖掘也有一定的帮助。

    而行为习惯和思维模式则具有一定的通用性,可以和以往的经验和习惯挂钩。

    这样才是比较完整的基础。


  51. ddda
    *.*.*.*
    链接

    ddda 2009-04-25 22:26:00

    “知识”可以把问题转化为解决方案,而“能力”则是把知识转化为另一种知识。

    这一句话备受鼓舞

  52. wxws
    *.*.*.*
    链接

    wxws 2009-04-25 22:42:00

    《老赵书托>>有哪些书呀,你快点写出来呀

  53. 老赵
    admin
    链接

    老赵 2009-04-25 22:50:00

    @wxws
    别急,这要慢慢来,否则和真正的书托有什么区别呢?

  54. 00654
    *.*.*.*
    链接

    00654 2009-04-25 23:41:00

    算法很重要啊。
    但是我就是不懂啊。
    我小学都没毕业 。
    更别说什么算法了。
    我的算法就是 99乘法表。

  55. 周强
    *.*.*.*
    链接

    周强 2009-04-26 00:51:00

    --引用--------------------------------------------------
    Nick Wang: 我说点不好听的吧.

    如果你拿着一本数据结构或者算法的书,或者任何很这个行业有关的书,但是看不下去的话,离开这个行业吧。
    如果你上了大学,又参加了培训,还是找不到工作的话,离开这个行业吧。
    如果你总是觉得迷茫,同时又总在迷茫中浪费时间来更迷茫的话,离开这个行业吧。

    因为你在这里得不到想要的东西,早点离开对自己比较好。

    基础不好是为什么呢?不重视,不听话,没兴趣,浮躁,觉得太难?
    不重视,不听话-大学该学的东西不好好学,出了学校呢?别人的意见你还会听么。
    没兴趣-没兴趣是无法在这个行业存活的
    浮躁 - 能存活,但是不会活的很好
    觉得太难-你没这方面的能力,或者不想努力

    好吧,我承认任何人在大学里的时候都会犯傻的,因为年轻嘛,所以已经毕业的现在开始努力还不算太晚;对于还在学校的,这么多过来人都说基础很重要,如果你还不开始重视的话,那就没办法了,迟早有一天你会后悔的。
    --------------------------------------------------------

    不太同意你的观点。
    1. 拿起数据结构却看不下去就离开这个行业。我觉得很多人学不进去,倒不是不适合这个行业,而是学习方法的问题。就比如给你一块铁,你要把它打造成一把镰刀,你师傅告诉你说“打铁只要踏踏实实一锤一锤打就可以了”,然后你就老老实实的锤,结果锤了一段时间你却发现,这块铁很硬,不是那么好锤。然后你师傅对你说“你不适合打铁,你离开吧”;试想,如果你师傅不是叫你离开,而是告诉你打铁的方法,“如果你觉得这块铁不好锤,你可以先把这块铁烧红,然后会比较容易锤”。其实大家向老赵倾诉“不好学,学不进去”,是想问问老赵,学习要学的东西,我自己的学习方法似乎有点行不通,或者学习效率不高,有没有什么比较好的方法,比如说学习顺序什么的。

    2.上了大学,又参加了培训,还是找不到工作,离开这个行业?真的是因为能力问题而找不到工作吗?是不是因为自己的能力和期望定位有问题?是不是还有什么其它外部因素影响到我找工作。所以说在这个问题上,不全面分析,就建议离开,稍微有点儿武断了。

    3.如果一个人向我倾诉自己很迷茫的话(迷茫肯定是不知所措,浪费时间的),我不会立即建议他离开这个行业。如果我是有经验的过来人,我觉得我会对他建议,让他尽快摆脱迷茫。比如曾经有人跟我说"数据库我已经掌握到一定水准了,《技术内幕》我已经反反复复看过三四遍了,而且都是理解性的看。可我总是觉得我的数据库知识还是比较零散,没有形成体系,现在很迷茫,不知看什么书可以帮助我"."如果我现在问你,什么是表?什么是行?也许你还不能一下明确的答出来,还会语塞,你应该去买一本《数据库系统概念》读一读,那样应该可以解决你的疑惑,因为几年前我跟你一样有过同样的迷茫。"

  56. 幸存者[未注册用户]
    *.*.*.*
    链接

    幸存者[未注册用户] 2009-04-26 02:19:00

    --引用--------------------------------------------------
    我没说过生存权利的话题,谁都有权利选择,谁都有权利决定自己的事,只是如果你本来不适合,你很有可能得不到你所希望的东西,那最好还是不要浪费太多时间在这,不如找个适合的方向和行业发展。
    --------------------------------------------------------
    你应该知道二八定律,这个世界有些基本规律是不以人的意志为转移的。

    如果每个人都那么容易找到适合的方向并且一展所长,那中国早该进入共产主义了。

    其实,职业本质上也是由供求关系决定的,这个行业有多大的需求就有多少人从事这个行业,要是不适合的都不干了,谁来顶这个缺?

  57. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-04-26 04:09:00

    --引用--------------------------------------------------
    周强:
    1. 拿起数据结构却看不下去就离开这个行业。我觉得很多人学不进去,倒不是不适合这个行业,而是学习方法的问题。就比如给你一块铁,你要把它打造成一把镰刀,你师傅告诉你说“打铁只要踏踏实实一锤一锤打就可以了”,然后你就老老实实的锤,结果锤了一段时间你却发现,这块铁很硬,不是那么好锤。然后你师傅对你说“你不适合打铁,你离开吧”;试想,如果你师傅不是叫你离开,而是告诉你打铁的方法,“如果你觉得这块铁不好锤,你可以先把这块铁烧红,然后会比较容易锤”。其实大家向老赵倾诉“不好学,学不进去”,是想问问老赵,学习要学的东西,我自己的学习方法似乎有点行不通,或者学习效率不高,有没有什么比较好的方法,比如说学习顺序什么的。

    2.上了大学,又参加了培训,还是找不到工作,离开这个行业?真的是因为能力问题而找不到工作吗?是不是因为自己的能力和期望定位有问题?是不是还有什么其它外部因素影响到我找工作。所以说在这个问题上,不全面分析,就建议离开,稍微有点儿武断了。

    3.如果一个人向我倾诉自己很迷茫的话(迷茫肯定是不知所措,浪费时间的),我不会立即建议他离开这个行业。如果我是有经验的过来人,我觉得我会对他建议,让他尽快摆脱迷茫。比如曾经有人跟我说"数据库我已经掌握到一定水准了,《技术内幕》我已经反反复复看过三四遍了,而且都是理解性的看。可我总是觉得我的数据库知识还是比较零散,没有形成体系,现在很迷茫,不知看什么书可以帮助我"."如果我现在问你,什么是表?什么是行?也许你还不能一下明确的答出来,还会语塞,你应该去买一本《数据库系统概念》读一读,那样应该可以解决你的疑惑,因为几年前我跟你一样有过同样的迷茫。
    --------------------------------------------------------
    1. 学习方法有问题。这个行业就是需要不断的学习,如果你的学习方法有问题,学习效率低,那么从长远考虑,就是会比较吃亏。至于你所说的打铁的例子是不成立的,因为现在有互联网,你可以很容易得找到好的师傅(不一定是一个人)。
    2.你说的没错,但是考虑到现在培训机构的水平,如果你的能力可以达到要求为什么还要去培训机构呢?去了培训也提高不了你的水平。至于期望和定位,我相信能来博客园的,就不是那种想混日子的人,期望都不会太低的。
    3.我没说一迷茫就怎么样,人人都有迷茫的时候,我也有,现在这不就是在告诉你怎么摆脱迷茫么?可是有的人就是迷茫完了再迷茫,没完没了的迷茫,今天做这个做一点,明天做那个做一点,最后时间都花在迷茫本身,而不是怎么走出迷茫上面了。

  58. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-04-26 04:20:00

    --引用--------------------------------------------------
    幸存者:
    你应该知道二八定律,这个世界有些基本规律是不以人的意志为转移的。

    如果每个人都那么容易找到适合的方向并且一展所长,那中国早该进入共产主义了。

    其实,职业本质上也是由供求关系决定的,这个行业有多大的需求就有多少人从事这个行业,要是不适合的都不干了,谁来顶这个缺?
    --------------------------------------------------------
    地球没了你我照样转,个人在这个世界中是非常渺小的,我只是希望作为个体,能够活得快乐一些。我的想法仅仅是我自己的想法,你没必要同意,也不一定要听从,而且这些想法也绝对不会对IT业有多大的影响。

  59. 周强
    *.*.*.*
    链接

    周强 2009-04-26 09:39:00

    @Nick Wang
    ------------------------------------------
    1. 学习方法有问题。这个行业就是需要不断的学习,如果你的学习方法有问题,学习效率低,那么从长远考虑,就是会比较吃亏。至于你所说的打铁的例子是不成立的,因为现在有互联网,你可以很容易得找到好的师傅(不一定是一个人)。
    2.你说的没错,但是考虑到现在培训机构的水平,如果你的能力可以达到要求为什么还要去培训机构呢?去了培训也提高不了你的水平。至于期望和定位,我相信能来博客园的,就不是那种想混日子的人,期望都不会太低的。
    3.我没说一迷茫就怎么样,人人都有迷茫的时候,我也有,现在这不就是在告诉你怎么摆脱迷茫么?可是有的人就是迷茫完了再迷茫,没完没了的迷茫,今天做这个做一点,明天做那个做一点,最后时间都花在迷茫本身,而不是怎么走出迷茫上面了。

    --------------------------------
    1. 我明白你说的意思了,因为现在有互联网,学习上有问题,是不能去向别人取经的,只能GOOGLE。在博客园时不时的看到什么“北京技术交流会”,“上海技术交流会”等,按照你的观点,参加这些会的人都应该离开这个行业,都有什么好交流的,你们有啥问题的,互联网哪里搜不到?回到“打铁”,当你觉得铁在为烧红之前锤击比较难锤时,千万别跟打铁行业的人请教,也千万别说自己感觉到了困难,否则“你离开吧”。另外,我始终认为,不同的知识有不同的学习方法,哪怕是讲同一门知识的不同的书,也有不同的学习方法。当你拿到一本书,你以前的学习方法是否是凑效的?
    这个行业确实需要不断学习,可是当你拿到一本新书,你就能保证你以往的学习方法对这本书事凑效的?你是否把“学习能力”和“学习方法”这了两个概念搞混了?
    2.培训机构一定差?参加培训的人一定是能力平平才去培训?哪些想拿到“OCP”的人还必须参加一个官方制定的5天的培训呢。抛开这个特例不谈,如果一个人培训完后,其实际能力按照业界标准只能获得3000/月的工作,而他却因为自己的定位问题,想找5000/月的工作,难道你就跟他说“你离开吧,你找不到工作”。
    3.你这那是教人。分明是把别人推向另外一个深渊。别人一遇到难,不论三七二十一,你离开;那些今天做这个,明天做那个的人,思想是否被你这种言论影响了?所以才“啊,今天做AD,要学习各种相关协议的工作原理,好难啊,网上某某告诉我,我克服不了困难,应该离开这个行业;明天做C#开发,好难啊,还要学习数据结构,某某告诉我,我应该离开这个行业;后天做数据库,好难啊,还要学习存储引擎和关系引擎的工作原理,某某告诉我,我应该离开”。你不教别人方法去克服困难也就算了,却教给别人“一遇困难”就放弃...

  60. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-04-26 10:02:00

    --引用--------------------------------------------------
    周强: @Nick Wang

    ------------------------------------------

    1. 学习方法有问题。这个行业就是需要不断的学习,如果你的学习方法有问题,学习效率低,那么从长远考虑,就是会比较吃亏。至于你所说的打铁的例子是不成立的,因为现在有互联网,你可以很容易得找到好的师傅(不一定是一个人)。

    2.你说的没错,但是考虑到现在培训机构的水平,如果你的能力可以达到要求为什么还要去培训机构呢?去了培训也提高不了你的水平。至于期望和定位,我相信能来博客园的,就不是那种想混日子的人,期望都不会太低的。

    3.我没说一迷茫就怎么样,人人都有迷茫的时候,我也有,现在这不就是在告诉你怎么摆脱迷茫么?可是有的人就是迷茫完了再迷茫,没完没了的迷茫,今天做这个做一点,明天做那个做一点,最后时间都花在迷茫本身,而不是怎么走出迷茫上面了。



    --------------------------------

    1. 我明白你说的意思了,因为现在有互联网,学习上有问题,是不能去向别人取经的,只能GOOGLE。在博客园时不时的看到什么“北京技术交流会”,“上海技术交流会”等,按照你的观点,参加这些会的人都应该离开这个行业,都有什么好交流的,你们有啥问题的,互联网哪里搜不到?回到“打铁”,当你觉得铁在为烧红之前锤击比较难锤时,千万别跟打铁行业的人请教,也千万别说自己感觉到了困难,否则“你离开吧”。另外,我始终认为,不同的知识有不同的学习方法,哪怕是讲同一门知识的不同的书,也有不同的学习方法。当你拿到一本书,你以前的学习方法是否是凑效的?

    这个行业确实需要不断学习,可是当你拿到一本新书,你就能保证你以往的学习方法对这本书事凑效的?你是否把“学习能力”和“学习方法”这了两个概念搞混了?

    2.培训机构一定差?参加培训的人一定是能力平平才去培训?哪些想拿到“OCP”的人还必须参加一个官方制定的5天的培训呢。抛开这个特例不谈,如果一个人培训完后,其实际能力按照业界标准只能获得3000/月的工作,而他却因为自己的定位问题,想找5000/月的工作,难道你就跟他说“你离开吧,你找不到工作”。

    3.你这那是教人。分明是把别人推向另外一个深渊。别人一遇到难,不论三七二十一,你离开;那些今天做这个,明天做那个的人,思想是否被你这种言论影响了?所以才“啊,今天做AD,要学习各种相关协议的工作原理,好难啊,网上某某告诉我,我克服不了困难,应该离开这个行业;明天做C#开发,好难啊,还要学习数据结构,某某告诉我,我应该离开这个行业;后天做数据库,好难啊,还要学习存储引擎和关系引擎的工作原理,某某告诉我,我应该离开”。你不教别人方法去克服困难也就算了,却教给别人“一遇困难”就放弃...
    --------------------------------------------------------
    1. 是你举的打铁的例子,哪有师傅明知道要烧红了再打却不告诉你的道理。如果他不告诉你只能说他是庸师,在以前没有互联网的时候,你可能懵懂不知道这是庸师,可是现在有了互联网,你不会搜一搜啥样的是庸师啥样的是明师么?
    2.培训机构不一定差,可是因为找不到工作而去的培训机构一定不怎么样。
    3.不是我告诉你能不能克服困难,而是应该你自己回答。毕竟离开与否是你自己的事,做决定也是你自己负责,别人说什么都是别人的意见,你可以参考,但是不能说别人要对你的选择负责。这里讨论的都是个人想法,没人说自己的想法一定就对,你一定就要照着做,就好像你现在说你的想法一样。你可以保留你的意见,我也会保留我的,没必要争个你对还是我对。

  61. 周强
    *.*.*.*
    链接

    周强 2009-04-26 12:37:00

    @Nick Wang
    1.打铁终归是一个比喻,请回到问题的本质。目前的情况是:很多的过来者都在对后来者千叮万嘱“基础很重要,数据结构很重要”,却鲜见有人谈“该以一个怎样的方法来学习数据结构”(也许是我信息量太少)。而如果碰到向您这样的,您直接来一句“你不适合这个行业,你离开吧”。
    2.第二个问题不想再多说。我只对您“上了大学,又参加了培训,还是找不到工作的话,离开这个行业吧”这句不全面分析问题就直接“忠告式”的言论感觉草率,特别这是影响别人一生的忠告。
    3.我没有想跟你一定要争个你对还是我对。你对还是我对一点儿意义都没有。但是“理对还是理错”意义不说很大,应该还是有吧。特别是博客园作为一个业内人士集中交流的平台,而您又作为一个前辈,而老赵的帖子又这么多人看,影响还是有吧。当然你可以说“你说的别人不一定照做,关键在个人的决定”。但是,我清楚的记得在大学的哲学课上有讲过这么一个理“内因是造成质变的本质,而外因是质变的促进”。如果有人“离开了这个行业”这个质变发生,那么您的言论是不是可以看做一个促进质变的外因呢?

  62. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-04-26 15:59:00

    --引用--------------------------------------------------
    周强: @Nick Wang

    1.打铁终归是一个比喻,请回到问题的本质。目前的情况是:很多的过来者都在对后来者千叮万嘱“基础很重要,数据结构很重要”,却鲜见有人谈“该以一个怎样的方法来学习数据结构”(也许是我信息量太少)。而如果碰到向您这样的,您直接来一句“你不适合这个行业,你离开吧”。

    2.第二个问题不想再多说。我只对您“上了大学,又参加了培训,还是找不到工作的话,离开这个行业吧”这句不全面分析问题就直接“忠告式”的言论感觉草率,特别这是影响别人一生的忠告。

    3.我没有想跟你一定要争个你对还是我对。你对还是我对一点儿意义都没有。但是“理对还是理错”意义不说很大,应该还是有吧。特别是博客园作为一个业内人士集中交流的平台,而您又作为一个前辈,而老赵的帖子又这么多人看,影响还是有吧。当然你可以说“你说的别人不一定照做,关键在个人的决定”。但是,我清楚的记得在大学的哲学课上有讲过这么一个理“内因是造成质变的本质,而外因是质变的促进”。如果有人“离开了这个行业”这个质变发生,那么您的言论是不是可以看做一个促进质变的外因呢?
    --------------------------------------------------------
    1. 怎么学这个东西个人有个人的方法吧,如果没啥方法,就看书-写代码-再看书-再写代码,没啥取巧的方式。
    2,3基本同意

    我一直认为这个行业是需要一点天赋的,我指的天赋不是一出生就有的,也不是智力方面的因素。假定大家的智力水平相当,由于每个人从小到大接触的东西,做过的事,喜欢不同的课程,以及性格的不同,就会在学习计算机方面(例如数据结构),造成一些差异,有些人理解的快一些,有的人理解的慢一些(一般来说数学思维好的学的就快),当然这本身不意味着这个人比别人差,只是在计算机这一个方面比较而言,会弱一些。在这种情况下,你也可以通过努力来弥补这方面,但是对于那些真的在这方面比较弱的(可能是选错了专业),或者是努力程度达不到的(个性原因),为什么不早一点转向自己比较强的方面,然后有更大的作为呢?
    如果谁觉得我的生活不错,那不需要迷茫也不需要来凑这个热闹;如果谁真的迷茫了,一定是对现状有所不满,希望能够改善。那么,好好的想一想,到底是什么阻碍了你前进的脚步,不要怪环境,不要怪机会,一切从自己身上找起。是不够努力,还是不够天分,还是怎么样,然后在作出选择。

  63. 蛙蛙池塘
    *.*.*.*
    链接

    蛙蛙池塘 2009-04-26 22:12:00

    知识是学不完的,钱是赚不完的,帖子是看不完的,工作是忙不完的,一切顺其自然吧,我不信谁这一辈子从来没有迷茫过。。

  64. 老赵
    admin
    链接

    老赵 2009-04-26 22:39:00

    @蛙蛙池塘
    只是有人从迷茫中清醒了,有人从迷茫中沉沦了……

  65. 蛙蛙池塘
    *.*.*.*
    链接

    蛙蛙池塘 2009-04-27 09:15:00

    @Jeffrey Zhao
    :),要越战越勇!

  66. 妖居
    *.*.*.*
    链接

    妖居 2009-04-27 15:06:00

    几天前还和AnyTao讨论“知识”和“智慧”的关系。呵呵可能和老赵的文章有点远了。“知识”是可以传授的,但是“智慧”只能靠自己来悟。所以我们在吸收别人知识的同时,也要注意感悟出属于自己的智慧。

  67. leoxu
    *.*.*.*
    链接

    leoxu 2009-04-28 10:18:00

    基础很重要,学习态度更重要。
    知其皮毛很重要,知其所以然更专业。
    基础是慢慢积累的,平时的观察思考很重要。
    我相信智商不高的人的基础也能赢过他人。
    如果把学习当成一种信仰,感觉会更有动力,更有激情。

  68. 装配脑袋
    *.*.*.*
    链接

    装配脑袋 2009-04-28 12:10:00

    如果你是法师,就多增加一点智力;如果是德鲁伊,就多增加一点感知;如果是牧师,就多加点魅力吧……

  69. 老赵
    admin
    链接

    老赵 2009-04-28 12:12:00

    @装配脑袋
    果然还是脑袋最厉害,说得东西我一点不懂……

  70. 韦恩卑鄙
    *.*.*.*
    链接

    韦恩卑鄙 2009-04-28 16:15:00

    脑袋 我是增强萨满 只剩下毅力这一点可以加了


    老赵
    没有针对性地乱说两句

    在基础和能力之间 一直有一个"态度"作为权来平衡。 态度如果正确 大可以把能力和基础互相平衡,态度不正 那么彼此就会出现累赘的状况
    比如经验主义就是基础太好态度不正 导致能力下降 比如“用不到 太学术没有用” 就是基础不好自恃能力,但是真有问题可能因为基础所累。

    有一个好的态度很重要

  71. 躺着读书[未注册用户]
    *.*.*.*
    链接

    躺着读书[未注册用户] 2009-04-28 22:26:00

    @Jeffrey Zhao

    其实对大多数人来说,那些基础知识没必要像老赵这样清楚。一些什么东西关键是要知道是什么?在什么情况下用。总之是一定要知道有这个东西,到用的时候按自己的知识去查书,查资料,就行了。

  72. 老赵
    admin
    链接

    老赵 2009-04-28 23:23:00

    @躺着读书
    我其实应该也就是你说的这个情况,也就是多保留索引,内容可以相对省略一些。

  73. 在别处
    *.*.*.*
    链接

    在别处 2009-04-29 08:37:00

    啥时候出系列第一集,等着买书呢,呵呵。

  74. 老赵
    admin
    链接

    老赵 2009-04-29 09:10:00

    @在别处
    5/1会写一篇“序”,别急,每一本都是要花很多精力才能消化的……

  75. CowboyRyan
    *.*.*.*
    链接

    CowboyRyan 2009-04-30 14:10:00

    @Jeffrey Zhao
    多思考,让我想起,“纸上得来终觉浅,绝知此事要躬行”,我相信每门学科不是没用,重点是我们是否运用到日常生活,工作当中。实践是最能让人领悟的途径。

  76. heros
    *.*.*.*
    链接

    heros 2009-05-02 22:37:00

    --引用--------------------------------------------------
    韦恩卑鄙: 脑袋 我是增强萨满 只剩下毅力这一点可以加了


    老赵
    没有针对性地乱说两句

    在基础和能力之间 一直有一个"态度"作为权来平衡。 态度如果正确 大可以把能力和基础互相平衡,态度不正 那么彼此就会出现累赘的状况
    比如经验主义就是基础太好态度不正 导致能力下降 比如“用不到 太学术没有用” 就是基础不好自恃能力,但是真有问题可能因为基础所累。

    有一个好的态度很重要

    --------------------------------------------------------
    有态度,还要有思想

  77. DonLiang
    *.*.*.*
    链接

    DonLiang 2009-05-04 11:27:00

    嘿,老赵,书的话,我推荐一本,李笑来老师(www.xiaolai.net)的《把时间当朋友》,其博客的《想明白》系列也可以推荐。

  78. 老赵
    admin
    链接

    老赵 2009-05-04 11:32:00

    @DonLiang
    xiaolai的东西我可是一直关注的,呵呵,我非常喜欢讲道理思考问题的人。
    不过我这次推荐的肯定是专业书……

  79. wang2855[未注册用户]
    *.*.*.*
    链接

    wang2855[未注册用户] 2009-05-06 15:02:00

    老赵 出书的话,请一定告诉我下,谢谢!。
    我就是基础太差了,数学不好,一直在做普通的CRUD,干了近十年还是觉得
    没有成就感,薪水也低,以后的路全靠你们这些导师指点了。谢谢!
    我不同意 Nick Wang 说的,让人放弃的话。
    我很赞赏 周强 的观点!我在北京,快35了,干了十年薪水才8k,今年面试了许多公司,感觉人家都嫌我的基础不好,虽然b/s,c/s都做过,但也仅是经验,目前很困惑,进了一家公司,却进不到核心部门(因为那个部门都用到得是底层
    算法,多线程开发,能锻炼人),目前在非核心部门做内部用的普通应用软件,没有什么技术含量,感觉很没有前途!想跳槽但是又没有找到更合适得!

  80. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-05-06 15:29:00

    @wang2855
    不需要你同意……

    走出困境靠的不是名师,而是自己。再好的老师也不能每分钟的手把手的带你,更多的还是要靠自己努力。底层算法和多线程很难么,没学过就学呗,学了就不难了,这些东西是不需要别人教的。

  81. Nick Wang
    *.*.*.*
    链接

    Nick Wang 2009-05-06 15:37:00

    好老师能帮你确定走哪条路,但是路还是要自己走的。

  82. 走 肖  龙之神[未注册用户]
    *.*.*.*
    链接

    走 肖 龙之神[未注册用户] 2009-05-20 13:11:00

    我说老赵 你直接告诉新人去学 汇编语言和哲学 不就得了 出来的保证个个牛人 基础 钢钢的 !!!!!!

  83. alawn[未注册用户]
    *.*.*.*
    链接

    alawn[未注册用户] 2009-05-20 15:05:00

    培训出来的或者做了N年的,有些基础可能是不好,但是有市场空间。大家都是牛人,个个基础很好,人人像老赵一样。这种想法是很好,但是实现难,呵。。

  84. Janzhen[未注册用户]
    *.*.*.*
    链接

    Janzhen[未注册用户] 2009-05-28 10:10:00

    博主说得真好,回首大学四年,这些课程的分数是拿到了,真正掌握的远没分数高。快要毕业了,看来要重温这些书了。

  85. 朱才
    *.*.*.*
    链接

    朱才 2009-06-03 08:43:00

    非常同意!

  86. woalang
    *.*.*.*
    链接

    woalang 2009-06-22 18:24:00

    谢谢老赵,每每读到深刻之处,不禁感叹自己菜。还得多加强学习啊。

  87. 空逸云
    *.*.*.*
    链接

    空逸云 2009-07-20 16:14:00

    赵大哥,请允许我这么叫您.每次看到您的身影或言论,总觉得你的身影是那么高大,我想和您靠齐.您也说过,很多朋友问您有什么学习方法.这也是我一直苦苦追寻的东西.我一直在思考,程序这样东西,应该怎么来学呢?我自己在尝试多种方法,可惜似乎正确的寥寥无几,我想向您借鉴一下,可能您也会说:"嗯,这个学习方法也没什么方法,就是多看代码,多写代码.."等等之类的,您说您是一个愚笨的人,只能埋头苦学,这个我不太赞同的.至少您总结出了一套好的学习方法..您也可能说这只能意会不能言传..唉.烦难啊不说别的.就说说您怎么学Ajax或Asp.net的.呃.在这之前您已经学习了JS和C#.那么在学习Asp.net Ajax的时候您除了学习它的那些机制的使用,您是否也是往下深入看它的源码呢?这个读代码的过程您是如何读的呢?那么多的代码,十分繁杂啊.一眼看过去头都晕了,您是否用了什么总结的办法呢?而Asp.net这写没开源的您又是如何学的呢?您也说过用reflector去看它的源码.我想,要提高和深入了解一个框架这是必不可少的一部分吧?还是一样.这些代码,一看就被吓到了.汗颜啊.这里,您可以提供您的总结方法吗?或许您很忙,无法回答我的问题,也不屑回答我的问题. 但是鄙人还是很希望您的解答.:-),另外园子里其他大哥肯委身赐教小弟当然求之不得.

  88. 老赵
    admin
    链接

    老赵 2009-07-20 17:27:00

    @空逸云
    我用.NET Reflector看源代码的,我觉得asp.net ajax源代码不算太难看懂……真要我说怎么看,我真不知道该怎么说……

  89. 空逸云
    *.*.*.*
    链接

    空逸云 2009-07-21 08:42:00

    @Jeffrey Zhao
    呃.这的确是一个很棘手的问题.很多人也答不上来.那我换种说法吧!请问您读代码时如何读的?您说用.NET Reflector看源代码.呃.对于您现在这种阶段来说是很容易看懂.可是如果遇到一段您不懂的呢?很多时候我读代码都要借助Degugger.我想您应该也是如此吧.但是那段您读不懂的代码又不能调试,这时,您会怎么做呢?呃.还有,在阅读一个框架的源代码的时候(很庞大的工作量啊).我的话很容易就忘记是从那个方法进入那个方法.做了什么.读一段代码总会消耗我很长的时间.时间长了,没什么收获,反而更混乱了,这时就很烦躁,很不想继续读下去.不知道您是否有出现过这种状况呢?我想应该有吧.每个大牛都是从小菜过渡而来的吧.出现了这种状况您是如何解决的.读代码的时候,您是否会借助画UML图之类的来理清思绪?把框架分成一小块一小块的.或许您说.这没什么,就是要有毅力,要坚持.我想,一个人从亢奋到颓靡,是因为有收获所以亢奋.于是想收获更多.就继续往下走,谁知道走进个死胡同.不但没收获,还迷了路,..这种情况下.一般人都很难在说坚持了吧.呃,或许您说:"哎,小子啊,都不知道是要我教你读代码,还是你在教我了.你说的就是一种很好的方法啊.".说实话,这些都是我在网上找到的一些达人的贡献心得.只不过说简单,做起来难,例如说把源码分块,如何分,应该有个度吧?做笔记,帮助阅读.我们该如何做笔记,怎么判断一样东西对我们是否有用.这都是很大的问题..再问一下.您在学Ajax的时候(您是MVP,那时候应该是技术尝鲜,阅读MS内部资料吧?)是否学到一块就去研究它那一块的源码,还是粗略了解运行流程原理之后跳过.等到所有Ajax的内置功能学完了再一次性深入研究呢?

    很感谢您抽出时间来为我解答疑问!

  90. 老赵
    admin
    链接

    老赵 2009-07-21 09:45:00

    @空逸云
    我好像没有用Debugger看过代码,也没有用过UML。
    其实看代码能力和写代码是一体的,我觉得多写点代码,让思路可以顺利地变成代码,那么反过来也会容易得。
    看得时候,一个类一个类的看,能够拿到源代码最好,.NET Reflector的优势也是在于它不断跳转,搜索。
    中国MVP看不到什么微软内部资料的,一般我还是从文档看起,知道代码运行的效果,然后推测它的实现方式,再去看代码。

  91. 空逸云
    *.*.*.*
    链接

    空逸云 2009-07-21 09:54:00

    @Jeffrey Zhao
    很感谢,我想应该是我实践的不多吧!所以写起代码来有点迷迷糊糊的感觉,看代码也会用.NET Reflector跳来跳去的,一般不会先去看整个类,我想这应该就是我的问题所在,呃,您所说的一个类一个类的看,是主要看类里面包含的方法字段内容还是方法的实现也看.这样的话不做笔记应该是记不住的.

    一般我还是从文档看起,知道代码运行的效果,然后推测它的实现方式,再去看代码

    这就是先思考吧!.呵呵,多谢您的指点,不知道您看完一个类理解它一般需要多长时间.说实在的.我是一个很容易暴走的人..汗颜啊.努力向您看齐.!

  92. starfork
    *.*.*.*
    链接

    starfork 2009-07-25 09:42:00

    Nick Wang:我说点不好听的吧.<br/><br/>如果你拿着一本数据结构或者算法的书,或者任何很这个行业有关的书,但是看不下去的话,离开这个行业吧。<br/>如果你上了大学,又参加了培训,还是找不到工作的话,离开这个行业吧。<br/>如果你总是觉得迷茫,同时又总在迷茫中浪费时间来更迷茫的话,离开这个行业吧。<br/><br/>因为你在这里得不到想要的东西,早点离开对自己比较好。<br/><br/>基础不好是为什么呢?不重视,不听话,没兴趣,浮躁,觉得太难?<br/>不重视,不听话-大学该学的东西不好好学,出了学校呢?别人的意见你还会听么。<br/>没兴趣-没兴趣是无法在这个行业存活的<br/>浮躁 - 能存活,但是不会活的很好<br/>觉得太难-你没这方面的能力,或者不想努力<br/><br/>好吧,我承认任何人在大学里的时候都会犯傻的,因为年轻嘛,所以已经毕业的现在开始努力还不算太晚;对于还在学校的,这么多过来人都说基础很重要,如果你还不开始重视的话,那就没办法了,迟早有一天你会后悔的。


    忠言逆耳。只是很多人不甘心,我也属于那一类,最近考虑要不要离开这个行业

  93. 老赵
    admin
    链接

    老赵 2009-07-25 14:00:00

    @starfork
    任何一个行业要做好,都必须坚持

  94. starfork
    *.*.*.*
    链接

    starfork 2009-07-25 17:17:00

    Jeffrey Zhao:
    @starfork
    任何一个行业要做好,都必须坚持


    努力中

  95. HappyTony
    *.*.*.*
    链接

    HappyTony 2009-07-28 16:01:00

    老赵着篇文章的有些启发。

  96. gmailee
    *.*.*.*
    链接

    gmailee 2009-07-30 17:25:00

    受教了哇。。。知道基础的重要性啊。。。

  97. cherryjuanzi
    *.*.*.*
    链接

    cherryjuanzi 2009-08-14 19:52:00

    这篇帖子真的是很触动我,我就是一个还在迷茫的人-----一个即将步入大四的女生,近来学了一段时间c#了,试试自己是否适合做这行(起步确实晚了点儿),可是总感觉自己入不了门。我也不清楚自己是因为浮躁(毕竟即将毕业了),还是真的天分不够(例如我数学一直不太好)。常常是看一段别人看来很简单基础的代码(比如说冒泡算法)我都要看半天才能理解的了,更别说再难点的代码了。
    我也总觉得自己不适合这行,自己也不太感兴趣,可是作为一个计算机专业的女生,我也不知道自己适合做什么,将来能做什么,我也没有什么特长,又很怕将来找不到一份工作。所以生活就在这种迷茫与苦闷的痛苦中一点点度过,弄得自己心力憔悴,却还在坚持着,我也在“幻想”或许有一天我就“入道”了,也能找到一份工作了。
    针对我这种情况,特意恳切地向老赵您请求帮助,希望得到您的分析指导,能解除这种迷茫,或是能给我一个更清晰的方向。同时小妹也希望能得到园子里其他兄弟姐妹们的帮忙。不胜感激!

  98. 编程的孩子
    *.*.*.*
    链接

    编程的孩子 2009-08-21 17:55:00

    因为某些原因,回到学校了,是该找准机会提高基础了

  99. 小邓
    113.66.51.*
    链接

    小邓 2010-04-08 16:47:55

    老赵 如果你去教大学了 我就回去重读,呵呵 在学校的时候每次抱着开发大脑,卧薪尝胆来刻苦学习技术的时候总会有太多太多的消极诱惑(环境因素吧),和一些困难阻碍。 学校教学质量也是一个很大的问题,大学老师教书只是为了教书拿工资而教书,让学生混到毕业证就可以了。考试提供80%答案。这么2年半就这么在不断遗憾中度过了,不过我对自己的评价应该会比老赵评价培训的那些人高一点点,现在出来能从事本行的我们软件两个班好像就几个人,其他人尝试去从事的信心都没有。老赵说到大学,让我再一次汗一把自己的过去两年,再汗一下大专这样的教学制度。还有这些我不想在提到的没有责任心的老师(不是所有)。。。。 最后感谢老赵这些博文大餐。 无论从做人还是学习上 真的受益匪浅 感谢

  100. 链接

    twty1988 2010-07-26 11:55:35

    老赵看看,如果面试这样的,极合不?

    public static void test() {
        String s = "a b c d", split = " ";
        int count = 10000;
        long start = System.currentTimeMillis(), end;
    
        for (int i = 0; i < count; i++)
            split(s, split);
        System.out.println(Arrays.toString(split(s, split)));
    
        end = System.currentTimeMillis();
        System.out.println("1 = " + (end - start));
    
        start = System.currentTimeMillis();
    
        for (int i = 0; i < count; i++)
            s.split(split);
        System.out.println(Arrays.toString(s.split(split)));
    
        end = System.currentTimeMillis();
        System.out.println("2 = " + (end - start));
    
        int[] arr = {1, 2, 3, 4, 5};
    
        System.out.println(Arrays.toString(reverse(arr)));
    }
    
    public static String[] split(String s, String split) {
        if (s == null || "".equals(s) || split == null || "".equals(split))
            return new String[]{s};
    
        int len = s.length(), start = 0, index = -1, count = 0;
        String[] arr = new String[len / split.length()];
    
        while (start < len) {
            if ((index = s.indexOf(split, start)) > -1) {
                arr[count++] = s.substring(start, index);
                start = index + split.length();
            } else {
                arr[count++] = s.substring(start);
                break;
            }
        }
    
        String[] desc = new String[count];
        System.arraycopy(arr, 0, desc, 0, count);
    
        return desc;
    }
    
    public static int[] reverse(int[] arr) {
        if (arr == null || arr.length == 0)
            return arr;
    
        int len = arr.length;
        int[] desc = new int[len];
        for (int i = len; i > 0; i--)
            desc[len - i] = arr[i - 1];
    
        return desc;
    }
    
  101. 老赵
    admin
    链接

    老赵 2010-07-26 13:16:13

    @twty1988

    面试哪道题?

  102. 链接

    twty1988 2010-07-28 10:49:18

    @老赵

    就是你文章中最后一段提到的,你在面试中提到的问题:字符串分割、数组中所有元素反序一下。

    如果是这个回答,能不能及格的? 很想知道。

  103. 链接

    twty1988 2010-07-28 10:50:37

    没想到一年之后的文章别人有回复,你都会回复, 你的太用心了,佩服,向你学习中......

  104. 老赵
    admin
    链接

    老赵 2010-07-30 00:27:50

    @twty1988

    我都没写具体要求,你怎么就写了,能写对嘛……

  105. 链接

    2011-05-08 14:18:17

    一直都觉得自己的知识实在是太少了.努力吖..........

  106. zfh_2982822
    121.204.207.*
    链接

    zfh_2982822 2011-10-08 16:52:35

    同感!也感慨一下。 知识好比硬盘,思考好比cpu处理硬盘数据。如果硬盘没有数据,cpu再强大,也白搭;如果硬盘有海量数据,但是杂乱无章,cpu再强大,读取速度也很慢。从这个角度来看,人脑和电脑是相似的。人如何能拥有知识,而且这些知识是按顺序排放整齐的?人如何处理这些数据,让他们变得有点用?对于前者,应该通过阅读来丰富知识,阅读是广义的阅读,包括书本,人际,社会等等。如果海量阅读,从来没有处理过这些资料,放在脑海里,早晚是要被释放遗忘的。所以需要习惯性的思考。思考的过程让存储在脑海的数据变得有用。如果阅读和思考能达到平衡和完美,那么经验就有了。一个强大的自我就会出来。

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我