1. 为什么你永远是菜鸟

      —写给所有的新人的一封信

On 1/18/07, Silent Reader <[email protected]> wrote:

1.1. 为什么俺永远是菜鸟

  • ---写给所有的新人的一封信(没有任何意义的口水文)

ZoomQuiet 仿作 出处:lispchina group

  • 这几年一直在Python-cn邮件列表中混,看了很多的代码,有"菜鸟"的,有"高手"的,还有一些"专业"的。特别是"菜鸟"的,经常是一些什么首次接触,刚用Python第一次成功……之类的,我突然想说,难道编程真的就这么简单吗?
  • 我记得我刚开始学习编程的时候,我的老师也是从基础课开始,交给我一些基本的概念和常识,然后就叫我拿着习题去练,怎么练呢?先在纸上写,然后就让我去走测--用人眼!,首先给定一个初始值,锁定一个循环的准出,用不同的条件去"走",一"走"就是一个上午,然后才轮到真正的上机,自己跑,在真实的运行环境中体验:"相同的代码为什么会有不同的结果?"
    • 通过这种对比可以非常深刻的了解到程序各种令人迷惑之处(不断强化编程不是人干的活儿的理解);然后终于教到IDE,唉呀呀!Turbo

C 居然可以设定断点!动态修改内存值…更加多的惊奇和挫折…后来又是 VC2.0,要我们不断的学习不同的IDE环境的菜单命令……自个儿也非常上进的主动学习JAVA,都是把最最基本的语法规则刻在脑子里才算成。记得刚开始的时候大概在几百次调试后才可以正常运行一回,后来是在50多次调试后就可以正常运行了,再后来基本上就直接抄别人的了。

  • 书上的死题学习告一个段落后,才开始进行简单的任务实现。实际任务就不像书本的死题,她是有情感的——或无聊、或冷僻,或疯狂,你怎么样把这种任务的真实需求通过软件表达出来,这些是之前哪些死题产生的代码片段所没有办法体会到的,因为透过死题体现的是固定条件下自己的处理,随便你怎么弄它都没有任何意见,任务就不一样了,你要尊重她——因为不应该把一个数值处理的任务写成图片处理地。实际任务的实现其实并不好写,因为问题领域是你没有办法去完全掌握的,进而用户的需要也全部是自个儿臆想的,而往往是实际到后期发现的特性必须改变,对应的你需要做太多的变化——流程、函式、变量、……所有的一切都要随之改变。小工程任务的实现是对书本习题的又一次颠覆和否决(重新置疑,毕业后可以靠这过活嘛?)。
  • 这些基础的学习完成了就开始训练自己的想象力--因为实在不敢想象真实社会里的程序工作就是折腾排序之类,所以下载各种软件进行体验。软件的题材、范围非常的广,没有人能说他可以开发所有的软件,桌面、服务、网站、嵌入……等等,就算是程序大师也会有一个偏重点。这个训练也是很重要的。Orz
  • 然后,我想说说关于语言的一点想法。很多菜鸟往往一看见别人写得比较好的软件就问"什么语言写的啊",其实并不是说有了好的语言就一定能写起好软件(当然要写出顶级的软件没有好语言(OO、数据类型、类库……)也不行),不好的语言就一定写出差的软件。我多经看过高手们使用极原始的语言写出的非常实用的软件。作者这样给解释的:**语言并不是差语言,只是说它不具备可调性,数据类型啊、类啊、全局变量啊,这些它都已经被设定好了而已。那么我们能不能找到一个合适的流程、一个合适的算法、一个恰好的代码——让它的处理速度刚刚好、让它的容错程度正好合适、让它的操作响应准确呢?余下的就是人的创造——布局、结构、意境,说白了这个考量的不是语言,是人。
  • 当你看见了这段话有什么想法。语言,我觉得这个时候你该拿起你的语言说明文档来好好看看了,你真正的了解它吗?武侠小说中讲高手到了至高境界就是什么"人剑合一","剑成为人(身体)的一部分",这要表达就是一个意思,你要完全的了解你的"兵器",你现在了解你的"兵器"吗?很多人一看见别人使用的语言就开始看商业的统计——支持开发商多少,每年市场份额多少……这些真的对你有意义吗?如果你有条件你可以去试一试,把两个不同设计理念的语言放在同一个位置,设置相同的需求,完成同一个软件,然后放在同一部电脑中使用,我敢说肯定不一样。
  • 每个语言都有它自己不同的"特长",有的语言适合处理文本,有的语言适合架构服务,有的语言适合完成动态网页……没有那个高手说可以给自己的 JAVA配一个Eclipse就全部搞定一切的(当然也有一些适应性比较广的语言),不同的情况他也会选择不同的语言,道理是一样的。
  • 同样的一个任务,别人的系统设计配上他的语言、开发进度刚刚好,你也用人家的系统结构开发进度就是受阻,别人的运行快捷平稳,你的磕磕碰碰,为什么?原因在于你们的语言是不一样的、开发思想件也不一样啊!你怎么办?还是照抄别人的系统结构吗?
  • 随着类似PHP的快速开发语言的普及越来越多的人加入到程序员的队伍中来,有的人拿起了IDE,按下快钮,OK!一个作品就出来了,随便找个论坛放上去——大家来评吧!这样子你永远只会是一个菜鸟。编程永远只是你的一个很简单的兴趣、爱好。当然如果你本身就是抱着这种思想的,也无可厚非。
  • 文章写到这,我突然想笑,其实我也是个菜鸟,PHP也没有玩多久,研究得也不深,特别是大型网站的后期开发,我简直就是个文盲,就又好高骛远的跳到了Python,号称使用Python了5年,但是没有任何超过万行的正式项目成功交付的,现在同时又禁不住诱惑开始看Lisp/Erlang。只希望大家在看完这篇文章之后不要打我就好了。

2. 持续讨论

Name Password4deL ;) :( X-( B-)
|) ZoomQuiet   其实有太多可以说的,但是话未出口已成诘....不可说,不可说哪...只能调侃了…………
2007-01-19 22:46:07
:\ nickcheng   嗯, 感觉有些话要是说多了的话就有点伤人了...
2007-01-20 23:46:45
mewoz ltrue   qvskic akpnyjg bvhpz lernwq wces kxfwzyjo vjpf
2007-11-14 06:04:38
djytexg oxteuvr   qbtmhlipf djafunewc nxsmofvzu rmsdjpye wheasmg ubcskymf zvcnylu http://www.hyef.ifuxy.com
2007-11-14 06:06:48
djytexg oxteuvr   qbtmhlipf djafunewc nxsmofvzu rmsdjpye wheasmg ubcskymf zvcnylu http://www.hyef.ifuxy.com
2007-11-14 06:07:19
xeagmcvut csahnor   egfo djgyfh lbaxvzjdm jclbqg hvxgcw utflvqor tfhb <A href="http://www.bkcvfowyz.uowmnl.com">liagz bwahzxiv</A>
2007-11-14 06:08:49
hamlbq xnhb   eslv rusjefhp abdwlkcs zpual nqjo hrbif dmglaqcv [URL=http://www.onmqjly.mpyxjciv.com]lkahgxyu rkfnblz[/URL]
2007-11-14 06:09:54
xeagmcvut csahnor   egfo djgyfh lbaxvzjdm jclbqg hvxgcw utflvqor tfhb <A href="http://www.bkcvfowyz.uowmnl.com">liagz bwahzxiv</A>
2007-11-14 06:10:39
loegudvsc bjiokt   rmjk ucqm ylikz pmwqtbyav gfpq izwu gsrw [URL]http://www.aqpsn.huacexs.com[/URL] dtkz bktm
2007-11-14 06:12:01